基础命令之cd,mkdir,cp,ls

时间:2023-01-26 12:32:34

只记录一下自己不太熟的命令。

cd (change directory)切换目录命令.。直接用cd则输入到用户家目录下,cd ~和cd一样。cd ~sunjiebin则代表切换到sunjiebin用户的家目录下。cd - 代表切换到上次切换的目录下。相当于windows中后退效果,只不过只能后退一次。

pwd (print working directory)显示当前所在目录。pwd -P 可以显示绝对路径,而不是链接目录的路径。如/var/mail目录实际是链接到/var/spool/mail目录下的。我们在/var/mail目录下用pwd显示的是/var/mail。而用pwd -P则会显示真正的路径/var/spool/mail目录。

mkdir (make directory)建立目录。mkdir -m 700 test 建立文件夹test,并设立权限为700。mkdir -p test/test1/test2一次性递归创建目录。如果当前目录下没有test目录,则一次性建立test,并在test下建立test1目录,再在test1下建立test2目录。如果当前test目录已经存在,那么此命令则会直接在现有的test目录下建立test1目录。如果当前test目录存在且test目录下还存在了test1文件而不是文件夹,那么在用-p命令的时候就会出现无法创建的错误提示。.因为linux下目录名和文件名是不能同名的。

rmdir (remove directory)删除目录。但这个命令只能删除空目录。可以使用rmdir -p来一次性删除多个指定的空目录。如删除开始建立的test/test1/test2。rmdir -p test/test1/test2 即可。如果要删除非空目录,可用rm -rf test即可将test目录删除。

$PATH环境变量。可以用echo $PATH来查看当前的环境变量。我们在执行一个程序时,系统会先在环境变量下指定的路径去查找是否有此执行文件,有则执行。如ls命令,我们执行时,系统就会在/bin/下找到ls。可以用which ls 来看看ls在哪个环境变量的目录下面。默认情况下$PATH会查找以下目录:/bin,/sbin,/usr/bin,/usr/sbin,~/bin,/usr/local/bin,/usr/local/sbin。所以,当我们执行一个可执行文件时,如果指定目录下没有,那么就必需指定文件路径才行。如存在/home/sjb/test.sh文件,那么我们在/home/sjb目录下执行test.sh就需要./test.sh或/home/sjb/test.sh才会正确执行此命令。我们如果想要直接执行此命令,可以将test.sh复制到$PATH所指定的任何一个目录下即可。或者也可以将此目录加入到$PATH变量中也行 PATH="$PATH":~/sjb 即表示将sjb目录加入到搜索变量中,那么下次执行命令时,系统就会在~/sjb目录下搜寻是否有可执行文件。如test.sh就可以直接执行了。只不过这个定义只对本次登录有效,注销后就没有了。如果/bin /sbin中有两个相同的ls命令,那会先执行哪个呢?那就得看$PATH搜寻的顺序了。先找到者先使用。

ls (list)查看目录。-A显示隐藏文件但不显示. ..两个目录。-d只列出目录本身,而不列出目录下的文档。如我们要看一个目录test的权限,就可以用ls -dl test来查看test目录的权限。-h将档案大小以直观的方式显示出来。要配合-l来使用。比如我用ll test,所列出的test目录下的文档大小都是以B的大小来显示的。这样很不直观。用 ll -h test之后,文件大小就会以k,M,G来显示,这样就很容易看懂文件大小是多少。-i列出inode号码。-R连同子目录一起显示。-S按大小排序。-t按时间排序。--color=none/never 均可让其不显示各类文件类型的颜色。--full-time显示完整的时间信息。

cp (copy)复制命令。-a复制目录及目录下的文件,且不改变文件的权限,如果是链接文件,则复制其链接文件属性,而不是链接文件本身。-a=-pdr -p代表连同本身的权限一起复制过去。-d只复制链接文件属性。-r递归复制,即复制目录及子目录。如果同时复制多个文件,那么最后一个文件必需是目录,即代表将前面所有文件复制到那个目录下去。-i如果遇到同名文件,则提示确认信息,默认情况下是直接覆盖掉同名文件的。-u如果目标文件夹中有同名文件,且比现有文件要旧,则复制。只覆盖掉旧的文件。这个在更新数据备份时很有用。-l硬链接,-s软链接。

注意,在普通用户sunjiebin下执行cp -a /var/log/wtmp ~/test/ 时,所复制过来的wtmp文档的拥有者自动变为了sunjiebin,不能保持原来的属性!因为/var/log/wtmp对sunjiebin用户只有只读的权限,所以在普通用户下即使用-a选项也是没有效果的!

本文出自 “小子无名” 博客,请务必保留此出处http://linuxroad.blog.51cto.com/765922/683715