ls cd pwd mkdir rm rmdir mv cp touch cat
1、ls [选项] [目录名]
功能:(ls是list的缩写)
列出目标目录中所有的子目录和文件
选项:
-a:显示所有档案及目录(ls内定将档案名或目录名称为“.”的视为影藏,不会列出);
-A:显示除影藏文件“.”和“..”以外的所有文件列表;
-C:多列显示输出结果。这是默认选项;
-l:与“-C”选项功能相反,所有输出信息用单列格式输出,不输出为多列;
-F:在每个输出项后追加文件的类型标识符,具体含义:“*”表示具有可执行权限的普通文件,“/”表示目录,“@”表示符号链接,“|”表示命令管道FIFO,“=”表示sockets套接字。当文件为普通文件时,不输出任何标识符;
-b:将文件中的不可输出的字符以反斜线“”加字符编码的方式输出;
-c:与“-lt”选项连用时,按照文件状态时间排序输出目录内容,排序的依据是文件的索引节点中的ctime字段。与“-l”选项连用时,则排序的一句是文件的状态改变时间;
-d:仅显示目录名,而不显示目录下的内容列表。显示符号链接文件本身,而不显示其所指向的目录列表;
-f:此参数的效果和同时指定“aU”参数相同,并关闭“lst”参数的效果;
-i:显示文件索引节点号(inode)。一个索引节点代表一个文件;
--file-type:与“-F”选项的功能相同,但是不显示“*”;
-k:以KB(千字节)为单位显示文件大小;
-l:以长格式显示目录下的内容列表。输出的信息从左到右依次包括文件名,文件类型、权限模式、硬连接数、所有者、组、文件大小和文件的最后修改时间等; -m:用“,”号区隔每个文件和目录的名称;
-n:以用户识别码和群组识别码替代其名称;
-r:以文件名反序排列并输出目录内容列表;
-s:显示文件和目录的大小,以区块为单位;
-t:用文件和目录的更改时间排序;
-L:如果遇到性质为符号链接的文件或目录,直接列出该链接所指向的原始文件或目录;
-R:递归处理,将指定目录下的所有文件及子目录一并处理;
--full-time:列出完整的日期与时间;
--color[=WHEN]:使用不同的颜色高亮显示不同类型的。
使用:
(1)列出/home/peidachang文件夹下的所有文件和目录的详细资料
命令:ls -l -R /home/peidachang
在命令提示符后,首先是命令的关键字,接下来是命令参数,在命令参数之前要有一短横线“-”,所有的命令参数都有特定的作用,可以根据需要选用一个或者多个参数,在命令参数的后面是命令的操作对象。
如果命令的操作对象位于当前目录中,可以直接对操作对象进行操作;如果不在当前目录则需要给出操作对象的完整路径。
在命令格式中,方括号内的内容都是可以省略的,对于命令ls而言,如果省略命令参数和操作对象,直接输入“ls”,则将会列出当前工作目录的内容清单。
“ls”是命令关键字,“-l -R”是参数,“/home/peidachang”是命令的操作对象。在这条命令中,使用到了两个参数,分别为“l”和“R”,当然,也可以把他们放在一起使用,即 ls -lR /home/peidachang
当前文件夹是peidachang文件夹,对home文件夹下的peidachang文件进行操作,可以直接输入ls -lR peidachang,也可以用ls -lR /home/peidachang。
(2)列出当前目录中所有以“t”开头的目录的详细内容
命令:ls -l t*
(3)只列出文件下的子目录
命令:ls -F /opt/soft |grep /$ 列出 /opt/soft 文件下面的子目录
命令:ls -l /opt/soft |grep "^d" 列出 /opt/soft 文件下面的子目录详细情况
(4)列出目前工作目录下所有名称是s开头的档案,越新的排越后面
命令:ls -ltr s*
(5)列出目前工作目录下所有档案及目录,目录于名称后加"/",可执行档案于名称后加"*"
命令:ls -AF
(6)计算当前目录下的文件数和目录数
命令:ls -l * |grep "^-"|wc -l ---文件个数
ls -l * |grep "^d"|wc -l ---目录个数
(7)在ls中列出文件的绝对路径
命令:ls | sed "s:^:`pwd`/:"
(8)列出当前目录下的所有文件(包括隐藏文件)的绝对路径,对目录不做递归
命令:find $PWD -maxdepth 1 | xargs ls -ld
(9)递归列出当前目录下的所有文件(包括隐藏文件)的绝对路径
命令: find $PWD | xargs ls -ld
(10)指定文件时间输出格式
命令:ls -tl --time-style=full-iso
ls -ctl --time-style=long-iso
(11)显示彩色目录列表
打开/etc/bashrc, 加入alias ls="ls --color"下次启动bash时就可以像在Slackware里那样显示彩色的目录列表了, 其中颜色的含义如下:
1. 蓝色-->目录
2. 绿色-->可执行文件
3. 红色-->压缩文件
4. 浅蓝色-->链接文件
5. 灰色-->其他文件
2、cd [目录名]
功能:
切换当前目录至dirName。其中dirName表示法可为绝对路径或相对路径。
选项:
-p 如果要切换到的目标目录是一个符号连接,直接切换到符号连接指向的目标目录
-L 如果要切换的目标目录是一个符号的连接,直接切换到字符连接名代表的目录,而非符号连接所指向的目标目录。
- 当仅实用"-"一个选项时,当前工作目录将被切换到环境变量"OLDPWD"所表示的目录。
使用:
cd 进入用户主目录;
cd ~ 进入用户主目录;
cd - 返回进入此目录之前所在的目录;
cd .. 返回上级目录(若当前目录为“/“,则执行完后还在“/";".."为上级目录的意思);
cd ../.. 返回上两级目录;
cd !$ 把上个命令的参数作为cd参数使用。
3、pwd [选项]
功能:
查看”当前工作目录“的完整路径。(print working directory)
选项:
--help:显示帮助信息;
--version:显示版本信息。
使用:
(1)用 pwd 命令查看默认工作目录的完整路径
(2)使用 pwd 命令查看指定文件夹
(3)目录连接链接时,pwd -P 显示出实际路径,而非使用连接(link)路径;pwd显示的是连接路径。
命令:pwd -P
(4)命令:/bin/pwd [选项]
-L 目录连接链接时,输出连接路径
-P 输出物理路径
(5)当前目录被删除了,而pwd命令仍然显示那个目录
4、mkdir [选项] 目录...
功能:
用来创建指定的名称的目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录。
选项:
-Z:设置安全上下文,当使用SELinux时有效;
-m<目标属性>或--mode<目标属性>建立目录的同时设置目录的权限;
-p或--parents 若所要建立目录的上层目录目前尚未建立,则会一并建立上层目录;
--version 显示版本信息。
使用:
(1)创建一个空目录
命令:mkdir test1
(2)递归创建多个目录
命令:mkdir -p test2/test22
(3)创建权限为777的目录
命令:mkdir -m 777 test3
说明:test3 的权限为rwxrwxrwx
(4)创建新目录都显示信息
命令:mkdir -v test4
(5)一个命令创建项目的目录结构
命令:mkdir -vp scf/{lib/,bin/,doc/{info,product},logs/{info,product},service/deploy/{info,product}}
5、rm [选项] 文件...
功能:
rm命令可以删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下属的所有文件及其子目录均删除掉。对于链接文件,只是删除整个链接文件,原有文件不变。
使用rm命令要格外小心。因为一旦删除了一个文件,就无法再恢复它。所以,在删除文件之前,最好再看一下文件的内容,确定是否真要删除。
rm命令可以-i选项,这个选项使用文件扩展名字符删除多个文件时特别有用。使用这个选项,系统会要求你逐一确定是否要删除。这时,必须输入y并按Enter键,才能删除文
件。仅按Enter键或其他字符,文件不会被删除。
选项:
-d:直接把欲删除的目录的硬连接数据删除成0,删除该目录;
-f:强制删除文件或目录;
-i:删除已有文件或目录之前先询问用户;
-r或-R:递归处理,将指定目录下的所有文件与子目录一并处理;
--preserve-root:不对根目录进行递归操作;
-v:显示指令的详细执行过程。
使用:
(1)删除文件file,系统会先询问是否删除。
命令:rm 文件名
说明:输入rm log.log命令后,系统会询问是否删除,输入y后就会删除文件,不想删除则数据n。
(2)强行删除file,系统不再提示。
命令:rm -f log1.log
(3)删除任何.log文件;删除前逐一询问确认
命令:rm -i *.log
(4)将 test1子目录及子目录中所有档案删除
命令:rm -r test1
(5)rm -rf test2命令会将 test2 子目录及子目录中所有档案删除,并且不用一一确认
命令:rm -rf test2
(6)删除以 -f 开头的文件
命令:rm -- -f
(7)自定义回收站功能
命令:myrm(){ D=/tmp/$(date +%Y%m%d%H%M%S); mkdir -p $D; mv "$@" $D && echo "moved to $D ok"; }
说明:上面的操作过程模拟了回收站的效果,即删除文件的时候只是把文件放到一个临时目录中,这样在需要的时候还可以恢复过来。
6、rmdir [选项] 目录
功能:
删除空目录,一个目录被删除之前必须是空的。(注意,rm - r dir命令可代替rmdir,但是有很大危险性。)删除某目录时也必须具有对父目录的写权限。
当目录不再被使用时,或者磁盘空间已到达使用限定值,就需要删除失去使用价值的目录。
当删除多个空目录时,目录名之间使用空格隔开。
选项:
-p或--parents:删除指定目录后,若该目录的上层目录已变成空目录,则将其一并删除;
--ignore-fail-on-non-empty:此选项使rmdir命令忽略由于删除非空目录时导致的错误信息;
-v或-verboes:显示命令的详细执行过程;
--help:显示命令的帮助信息;
--version:显示命令的版本信息。
使用:
(1)rmdir 不能删除非空目录
命令:rmdir doc
(2)rmdir -p 当子目录被删除后使它也成为空目录的话,则顺便一并删除
命令:rmdir -p logs
7、mv [选项] 源文件或目录 目标文件或目录
功能:
用来对文件或目录重新命名,或者将文件从一个目录移到另一个目录中。source表示源文件或目录,target表示目标文件或目录。如果将一个文件移到一个已经存在的目标文
件中,则目标文件的内容将被覆盖。 mv命令可以用来将源文件移至一个目标文件中,或将一组文件移至一个目标目录中。
源文件被移至目标文件有两种不同的结果:
如果目标文件是到某一目录文件的路径,源文件会被移到此目录下,且文件名不变。 如果目标文件不是目录文件,则源文件名(只能有一个)会变为此目标文件名,并覆盖己
存在的同名文件。如果源文件和目标文件在同一个目录下,mv的作用就是改文件名。当目标文件是目录文件时,源文件或目录参数可以有多个,则所有的源文件都会被移至目
标文件中。所有移到该目录下的文件都将保留以前的文件名。
mv与cp的结果不同,mv好像文件“搬家”,文件个数并未增加。而cp对文件进行复制,文件个数增加了。
选项:
--backup=<备份模式>:若需覆盖文件,则覆盖前先行备份;
-b:当文件存在时,覆盖前,为其创建一个备份;
-f:若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录;
-i:交互式操作,覆盖前先行询问用户,如果源文件与目标文件或目标目录中的文件同名,则询问用户是否覆盖目标文件。用户输入”y”,表示将覆盖目标文件;输入”n”,表示
取消对源文件的移动。这样可以避免误将文件覆盖。
--strip-trailing-slashes:删除源文件中的斜杠“/”;
-S<后缀>:为备份文件指定后缀,而不使用默认的后缀;
--target-directory=<目录>:指定源文件要移动到目标目录;
-u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。
使用:
(1)文件改名,将文件test.log重命名为test1.txt
命令:mv test.log test1.txt
(2)移动文件,将test1.txt文件移到目录test3中
命令:mv test1.txt test3
(3)将文件log1.txt,log2.txt,log3.txt移动到目录test3中。
命令:
mv log1.txt log2.txt log3.txt test3
mv -t /opt/soft/test/test4/ log1.txt log2.txt log3.txt
说明:
mv log1.txt log2.txt log3.txt test3 命令将log1.txt ,log2.txt, log3.txt 三个文件移到 test3目录中去,mv -t /opt/soft/test/test4/ log1.txt log2.txt log3.txt 命令又将三个文件移动到test4目录中去
(4)将文件file1改名为file2,如果file2已经存在,则询问是否覆盖
命令:mv -i log1.txt log2.txt
(5)将文件file1改名为file2,即使file2存在,也是直接覆盖掉。
命令:mv -f log3.txt log2.txt
说明:
log3.txt的内容直接覆盖了log2.txt内容,-f 这是个危险的选项,使用的时候一定要保持头脑清晰,一般情况下最好不用加上它。
(6)目录的移动
命令:mv dir1 dir2
说明:
如果目录dir2不存在,将目录dir1改名为dir2;否则,将dir1移动到dir2中。
(7)移动当前文件夹下的所有文件到上一级目录
命令:mv * ../
(8)把当前目录的一个子目录里的文件移动到另一个子目录里
命令:mv test3/*.txt test5
(9)文件被覆盖前做简单备份,前面加参数-b
命令:mv log1.txt -b log2.txt
8、cp [选项] 源 目的
功能:
用来将一个或多个源文件或者目录复制到指定的目的文件或目录。它可以将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下。cp命令还支持同时复制多个文件,当一次复制多个文件时,目标文件参数必须是一个已经存在的目录,否则将出现错误。
选项:
-a:此参数的效果和同时指定"-dpR"参数相同;
-d:当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录;
-f:强行复制文件或目录,不论目标文件或目录是否已存在;
-i:覆盖既有文件之前先询问用户;
-l:对源文件建立硬连接,而非复制文件;
-p:保留源文件或目录的属性;
-R/r:递归处理,将指定目录下的所有文件与子目录一并处理;
-s:对源文件建立符号连接,而非复制文件;
-u:使用这项参数后只会在源文件的更改时间较目标文件更新时或是名称相互对应的目标文件并不存在时,才复制文件;
-S:在备份文件时,用指定的后缀“SUFFIX”代替文件的默认后缀;
-b:覆盖已存在的文件目标前将目标文件备份;
-v:详细显示命令执行的操作。
使用:
(1)复制单个文件到目标目录,文件在目标文件中不存在
命令:cp log.log test5
说明:在没有带-a参数时,两个文件的时间是不一样的。在带了-a参数时,两个文件的时间是一致的。
(2)目标文件存在时,会询问是否覆盖
命令:cp log.log test5
说明:目标文件存在时,会询问是否覆盖。这是因为cp是cp -i的别名。目标文件存在时,即使加了-f标志,也还会询问是否覆盖。
(3)复制整个目录
命令:cp -a test3 test5
说明:注意目标目录存在与否结果是不一样的。目标目录存在时,整个源目录被复制到目标目录里面。
(4)复制的 log.log 建立一个连结档 log_link.log
命令:cp -s log.log log_link.log
说明:那个 log_link.log 是由 -s 的参数造成的,建立的是一个『快捷方式』,所以会看到在文件的最右边,会显示这个文件是『连结』到哪里去的
9、touch [选项] 文件
功能:
有两个功能:一是用于把已存在文件的时间标签更新为系统当前的时间(默认方式),它们的数据将原封不动地保留下来;二是用来创建新的空文件。
选项:
-a:或--time=atime或--time=access或--time=use 只更改存取时间;
-c:或--no-create 不建立任何文件;
-d:<时间日期> 使用指定的日期时间,而非现在的时间;
-f:此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题;
-m:或--time=mtime或--time=modify 只更该变动时间;
-r:<参考文件或目录> 把指定文件或目录的日期时间,统统设成和参考文件或目录的日期时间相同;
-t:<日期时间> 使用指定的日期时间,而非现在的时间;
--help:在线帮助;
--version:显示版本信息。
使用:
(1)创建不存在的文件
命令:touch log2012.log log2013.log
(2)更新log.log的时间和log2012.log时间戳相同
命令:touch -r log.log log2012.log
(3)设定文件的时间戳
命令:touch -t 201211142234.50 log.log
说明:-t time 使用指定的时间值 time 作为指定文件相应时间戳记的新值.此处的 time规定为如下形式的十进制数: [[CC]YY]MMDDhhmm[.SS]
这里,CC为年数中的前两位,即”世纪数”;YY为年数的后两位,即某世纪中的年数.如果不给出CC的值,则touch 将把年数CCYY限定在1969--2068之内.MM为月数,DD为天将把年数CCYY限定在1969--2068之内.MM为月数,DD为天数,hh 为小时数(几点),mm为分钟数,SS为秒数.此处秒的设定范围是0--61,这样可以处理闰秒.这些数字组成的时间是环境变量TZ指定的时区中的一个时 间.由于系统的限制,早于1970年1月1日的时间是错误的。
10、cat [选项] [文件]
功能:
连接文件并打印到标准输出设备上,常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用。
选项:
-n或-number:有1开始对所有输出的行数编号;
-b或--number-nonblank:和-n相似,只不过对于空白行不编号;
-s或--squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行;
-A:显示不可打印字符,行尾显示“$”;
-e:等价于"-vE"选项;
-t:等价于"-vT"选项;
使用:
(1)把 log2012.log 的文件内容加上行号后输入 log2013.log 这个文件里
命令:cat -n log2012.log log2013.log
(2)把 log2012.log 和 log2013.log 的文件内容加上行号(空白行不加)之后将内容附加到 log.log 里。
命令:cat -b log2012.log log2013.log log.log
(3)tac (反向列示)
命令:tac log.txt
说明:tac 是将 cat 反写过来,所以他的功能就跟 cat 相反, cat 是由第一行到最后一行连续显示在萤幕上,而 tac 则是由最后一行到第一行反向在萤幕上显示出来