一、Linux常用文件管理命令及用法。
(1)、cat,由第一行开始显示内容,并将所有内容输出
用法:cat [OPTION]… [FILE]…
常用选项:
-n:对所有输出的行数编号
例如:
[root@iZ23fk44yhjZ ~]# cat -n /etc/inittab 1# inittab is only used by upstart for the default runlevel. 2# 3# ADDING OTHER CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM. 4# 5# System initialization is started by /etc/init/rcS.conf 6# 7# Individual runlevels are started by /etc/init/rc.conf 8# 9# Ctrl-Alt-Delete is handled by /etc/init/control-alt-delete.conf 10# 11# Terminal gettys are handled by /etc/init/tty.conf and /etc/init/serial.conf, 12# with configuration in /etc/sysconfig/init. 13# 14# For information on how to write upstart event handlers, or how 15# upstart works, see init(5), init(8), and initctl(8). 16# 17# Default runlevel. The runlevels used are: 18# 0 - halt (Do NOT set initdefault to this) 19# 1 - Single user mode 20# 2 - Multiuser, without NFS (The same as 3, if you do not have networking) 21# 3 - Full multiuser mode 22# 4 - unused 23# 5 - X11 24# 6 - reboot (Do NOT set initdefault to this) 25# 26id:3:initdefault: [root@iZ23fk44yhjZ ~]#
(2)、tac,从最后一行倒序显示内容,并将所有内容输出
用法:tac [OPTION]… [FILE]…
例如:
[root@iZ23fk44yhjZ ~]# tac /etc/inittab id:3:initdefault: # # 6 - reboot (Do NOT set initdefault to this) # 5 - X11 # 4 - unused # 3 - Full multiuser mode # 2 - Multiuser, without NFS (The same as 3, if you do not have networking) # 1 - Single user mode # 0 - halt (Do NOT set initdefault to this) # Default runlevel. The runlevels used are: # # upstart works, see init(5), init(8), and initctl(8). # For information on how to write upstart event handlers, or how # # with configuration in /etc/sysconfig/init. # Terminal gettys are handled by /etc/init/tty.conf and /etc/init/serial.conf, # # Ctrl-Alt-Delete is handled by /etc/init/control-alt-delete.conf # # Individual runlevels are started by /etc/init/rc.conf # # System initialization is started by /etc/init/rcS.conf # # ADDING OTHER CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM. # # inittab is only used by upstart for the default runlevel.
(3)、head,只显示头几行
用法:head [OPTION]… [FILE]…
常用选项:
-n #:用于获取前多少行
-q 获取多个文件的时候不显示文件头部
-v 获取多个文件的内容是显示头部,这是默认选项
–c # ,获取前#个字节的内容
例如:获取inittab前5行的内容
[root@iZ23fk44yhjZ ~]# head -n 5 /etc/inittab # inittab is only used by upstart for the default runlevel. # # ADDING OTHER CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM. # # System initialization is started by /etc/init/rcS.conf [root@iZ23fk44yhjZ ~]#
(4)、tail,只显示最后几行,不指定num,默认显示10行
用法:tail [OPTION]… [FILE]…
常用选项:
-f 该参数用于监视File文件增长
-c # 从 # 字节位置读取指定文件
-n # 从 # 行位置读取指定文件
-k # 从 # 表示的1KB块位置读取指定文件
-b # 从 # 表示的512字节块位置读取指定文件
例如:
[root@iZ23fk44yhjZ ~]# tail -n 5 /etc/inittab # 4 - unused # 5 - X11 # 6 - reboot (Do NOT set initdefault to this) # id:3:initdefault:
(5)、more,根据窗口大小,一页一页的现实文件内容
用法:more [-dlfpcsu] [-num] [+/pattern] [+linenum] [file …]
常用选项:
+num: 从第num行开始显示
-num 定义屏幕大小,为num行
+/pattern 从pattern 前两行开始显示
-c 从顶部清屏然后显示
-p 通过清除窗口而不是滚屏来对文件进行换页
-s 把连续的多个空行显示为一行
-u 把文件内容中的下划线去掉
q:退出
例如:
[root@iZ23fk44yhjZ ~]# more +15 /etc/inittab # upstart works, see init(5), init(8), and initctl(8). # # Default runlevel. The runlevels used are: # 0 - halt (Do NOT set initdefault to this) # 1 - Single user mode # 2 - Multiuser, without NFS (The same as 3, if you do not have networking) # 3 - Full multiuser mode # 4 - unused # 5 - X11 # 6 - reboot (Do NOT set initdefault to this) # id:3:initdefault:
(6)、less,和more类似,但其优点可以往前翻页,而且进行可以搜索字符
用法:less [option] File
常用选项:
-e:文件内容显示完毕后,自动退出
-f:强制显示文件
-g:不加亮显示搜索到的所有关键词,仅显示当前显示的关键字,以提高显示速度
-l:搜索时忽略大小写的差异
-N:每一行行首显示行号
-s:将连续多个空行压缩成一行显示
-S:在单行显示较长的内容,而不换行显示
例如:
[root@iZ23fk44yhjZ ~]# less -N /etc/inittab 1 # inittab is only used by upstart for the default runlevel. 2 # 3 # ADDING OTHER CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM. 4 # 5 # System initialization is started by /etc/init/rcS.conf 6 # 7 # Individual runlevels are started by /etc/init/rc.conf 8 # 9 # Ctrl-Alt-Delete is handled by /etc/init/control-alt-delete.conf 10 # 11 # Terminal gettys are handled by /etc/init/tty.conf and /etc/init/serial.conf, 12 # with configuration in /etc/sysconfig/init. 13 # 14 # For information on how to write upstart event handlers, or how 15 # upstart works, see init(5), init(8), and initctl(8). 16 # 17 # Default runlevel. The runlevels used are: 18 # 0 - halt (Do NOT set initdefault to this) 19 # 1 - Single user mode 20 # 2 - Multiuser, without NFS (The same as 3, if you do not have networking) 21 # 3 - Full multiuser mode 22 # 4 - unused 23 # 5 - X11 24 # 6 - reboot (Do NOT set initdefault to this) 25 # 26 id:3:initdefault: /etc/inittab (END)
(7)、cp命令,复制文件或目录
用法:
cp [OPTION]… [-T] SOURCE DEST
cp [OPTION]… SOURCE… DIRECTORY
cp [OPTION]… -t DIRECTORY SOURCE…
常用选项:
-a:该选项通常在拷贝目录时使用。它保留链接、文件属性,并递归地拷贝目录,其作用等于dpR选项的组合
-d:拷贝时保留链接
-f:删除已经存在的目标文件而不提示
-i:和f选项相反,在覆盖目标文件之前将给出提示要求用户确认,回答y时目标文件将被覆盖,是交互式拷贝
-p:此时cp除复制源文件的内容外,还将把其修改时间和访问权限也复制到新文件中
-r:若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件,此时目标文件必须为一个目录名
例如:
[root@iZ23fk44yhjZ ~]# cp -ar /etc/init.d/ a_c/ [root@iZ23fk44yhjZ ~]# ll a_c/init.d/ total 304 -rwxr-xr-x 1 root root 26 Aug 1 11:51 DbSecuritySpt -rwxr-xr-x 1 root root 23 Aug 1 11:51 VsystemsshMdt -rwxr-xr-x 1 root root 1288 May 12 04:43 abrt-ccpp -rwxr-xr-x 1 root root 1642 May 12 04:43 abrt-oops -rwxr-xr-x 1 root root 1628 May 12 04:43 abrtd -rwxr-xr-x 1 root root 1818 Feb 17 2016 acpid -rwxr-xr-x 1 root root 2265 Jan 5 2015 aegis
(8)、rm命令,删除文件或目录,不跟任何参数不能删除目录
用法:rm [OPTION]… FILE…
常用选项:
-f:强制删除
-i:和-f相反,在删除时会给出要求用户确认的提示,同cp -i
-r:递归删除,删除目录及目录下的文件
注意:rm -rf结合使用比较危险
例如:
[root@iZ23fk44yhjZ ~]# rm a_d #不能直接删目录 rm: cannot remove `a_d': Is a directory [root@iZ23fk44yhjZ ~]# rm -i lanmp_ins.log rm: remove regular file `lanmp_ins.log'? y #回答y就表示删除,回答n就表示不删 [root@iZ23fk44yhjZ ~]# rm -rf a_d #强制删除,并且不给任何提示,此操作危险,谨慎操作 [root@iZ23fk44yhjZ ~]# ls | grep a_d [root@iZ23fk44yhjZ ~]#
(9)、mv命令,移动文件或目录,默认等于mv -i,如果目标路径已存在相同文件或目录会提示是否覆盖,如果没有直接移动到目标路径
用法:
mv [OPTION]… [-T] SOURCE DEST
mv [OPTION]… SOURCE… DIRECTORY
mv [OPTION]… -t DIRECTORY SOURCE…
常用选项:
-i:交互式操作,在移动文件或目录时需要用户确认
-f:非交互式,强制移动并覆盖
-n:不覆盖目标路径已存在的文件或目录
例如:
[root@iZ23fk44yhjZ ~]# touch b_d/123.txt [root@iZ23fk44yhjZ ~]# touch 123.txt [root@iZ23fk44yhjZ ~]# mv 123.txt b_d/ mv: overwrite `b_d/123.txt'?
二、命令执行状态返回值以及命令展开
(1)命令返回状态结果
即命令的执行状态结果值,bash通过状态返回值来输出此结果,成功用0表示,失败则是1-255任意数字表示,命令执行完成之后,其状态返回值保存于bash的特殊变量$?中。
例如:返回值为0表示执行成功
[root@iZ23fk44yhjZ wwwroot]# ls 123.txt 5ucy_com biandang100_com feishuai_com log2_com log_com phpmyadmin test.zip test_com [root@iZ23fk44yhjZ wwwroot]# echo $? 0 [root@iZ23fk44yhjZ wwwroot]#
例如:返回值为非0表示执行失败
[root@iZ23fk44yhjZ wwwroot]# lss -bash: lss: command not found [root@iZ23fk44yhjZ wwwroot]# echo $? 127 [root@iZ23fk44yhjZ wwwroot]#
(2)命令行展开
~展开:自动展开为用户的家目录,或指定的用户的家目录
例如:
[root@iZ23fk44yhjZ ~]# echo ~ /root [root@iZ23fk44yhjZ ~]# echo ~root /root [root@iZ23fk44yhjZ ~]# echo ~user1 /home/user1 [root@iZ23fk44yhjZ ~]#
{}展开:可承载一个以逗号分隔的路径列表,并能够将其展开为个路径
例如:
[root@iZ23fk44yhjZ ~]# mkdir -pv /tmp/mytest/A/{x1/{a,b},x2} mkdir: created directory `/tmp/mytest/A' mkdir: created directory `/tmp/mytest/A/x1' mkdir: created directory `/tmp/mytest/A/x1/a' mkdir: created directory `/tmp/mytest/A/x1/b' mkdir: created directory `/tmp/mytest/A/x2' [root@iZ23fk44yhjZ ~]# tree /tmp/mytest/ /tmp/mytest/ `-- A |-- x1 | |-- a | `-- b `-- x2 5 directories, 0 files [root@iZ23fk44yhjZ ~]#
三、用命令展开完成练习题。
(1)、创建tmp目录下:a_c,a_d,b_c,b_d
[root@iZ23fk44yhjZ ~]# mkdir -pv /tmp/{a,b}_{c,d} mkdir: created directory `/tmp' mkdir: created directory `/tmp/a_c' mkdir: created directory `/tmp/a_d' mkdir: created directory `/tmp/b_c' mkdir: created directory `/tmp/b_d' [root@iZ23fk44yhjZ ~]# tree /tmp/ /tmp/ |-- a_c |-- a_d |-- b_c `-- b_d 4 directories, 0 files
(2)、创建tmp/mylinux下的多个目录
例如:
[root@iZ23fk44yhjZ ~]# mkdir -pv /tmp/mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/network-scripts},lib/modules,lib64,proc,sbin,sys,tmp,usr/local/{bin,sbin},var/{lock,log,run}} [root@iZ23fk44yhjZ ~]# tree /tmp/mylinux/ /tmp/mylinux/ |-- bin |-- boot | `-- grub |-- dev |-- etc | |-- rc.d | | `-- init.d | `-- sysconfig | `-- network-scripts |-- lib | `-- modules |-- lib64 |-- proc |-- sbin |-- sys |-- tmp |-- usr | `-- local | |-- bin | `-- sbin `-- var |-- lock |-- log `-- run 24 directories, 0 files
四、文件的元数据信息以及查看和修改时间戳。
(1)、查看,使用stat命令查看,例如:
[root@iZ23fk44yhjZ ~]# stat /etc/inittab File: `/etc/inittab' Size: 884 Blocks: 8 IO Block: 4096 regular file Device: fc01h/64513dInode: 918048 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2016-07-13 00:40:59.000000000 +0800 Modify: 2016-07-13 00:40:59.000000000 +0800 Change: 2016-08-20 12:20:02.502376240 +0800 [root@iZ23fk44yhjZ ~]#
(2)、元数据属性信息
File:文件名
Size:文件大小
Blocks:占据的块数(磁盘事先是被分隔成块的)
IO Block:IO块的大小,如上例,每个块大小是4096,共占据了8个块,就等于8*4096
Device:所在的设备号
Inode:索引节点号
Links:硬链接
Access:权限
Uid:属主以及它的UID号
Gid:属组以及它的GID号
Access:最近访问时间
Modify:最近更改
Change:最近改动
(3)、修改时间戳
touch命令,它可以用于修改文件的时间戳,默认只能修改最近访问和最近修改的时间戳
-a:仅修改访问时间
-m:仅修改最近修改时间
-c:指定的文件路径不存在时不予创建
-t:改为指定的时间戳,例如:
[root@iZ23fk44yhjZ ~]# touch -t 201508081818.00 /home/user1/public_html/index.html [root@iZ23fk44yhjZ ~]# stat /home/user1/public_html/index.html File: `/home/user1/public_html/index.html' Size: 2889 Blocks: 8 IO Block: 4096 regular file Device: fc01h/64513dInode: 655653 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 1001/ user1) Gid: ( 1002/ user1) Access: 2015-08-08 18:18:00.000000000 +0800 Modify: 2015-08-08 18:18:00.000000000 +0800 Change: 2016-08-20 20:36:45.314436811 +0800 此处默认只修改了最近访问和最近修改的时间戳
touch不跟任何参数,表示把所有时间戳修改为当前时间,例如:
[root@iZ23fk44yhjZ ~]# stat /home/user1/public_html/index.html File: `/home/user1/public_html/index.html' Size: 2889 Blocks: 8 IO Block: 4096 regular file Device: fc01h/64513dInode: 655653 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 1001/ user1) Gid: ( 1002/ user1) Access: 2015-08-08 18:18:00.000000000 +0800 Modify: 2015-08-08 18:18:00.000000000 +0800 Change: 2016-08-20 20:36:45.314436811 +0800 [root@iZ23fk44yhjZ ~]# [root@iZ23fk44yhjZ ~]# touch /home/user1/public_html/index.html [root@iZ23fk44yhjZ ~]# [root@iZ23fk44yhjZ ~]# stat /home/user1/public_html/index.html File: `/home/user1/public_html/index.html' Size: 2889 Blocks: 8 IO Block: 4096 regular file Device: fc01h/64513dInode: 655653 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 1001/ user1) Gid: ( 1002/ user1) Access: 2016-08-20 20:41:30.676436413 +0800 Modify: 2016-08-20 20:41:30.676436413 +0800 Change: 2016-08-20 20:41:30.676436413 +0800
五、如何定义一个命令别名以及引用命令的执行结果
(1)、定义别名需使用alias命令
语 法:alias[别名]=[指令名称],不跟任何参数时,默认显示已经定义的别名
例如:
[root@iZ23fk44yhjZ a_d]# alias md='mkdir ./123123' [root@iZ23fk44yhjZ a_d]# [root@iZ23fk44yhjZ a_d]# md [root@iZ23fk44yhjZ a_d]# ls 123123 [root@iZ23fk44yhjZ a_d]#
(2)、引用命令的执行结果(不知道如何解释,直接上示例吧)
例如:把命令的执行结果赋值给变量uid,取命令执行结果用 ` `这两个符号
[root@iZ23fk44yhjZ a_d]# uid=`id -u user1` [root@iZ23fk44yhjZ a_d]# echo $uid 1001 [root@iZ23fk44yhjZ a_d]#
六、显示/var下以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其他字符)的文件或目录
[root@iZ23fk44yhjZ ~]# ls -d /var/l[[:digit:]]*[[:lower:]] /var/l3,t /var/l4c [root@iZ23fk44yhjZ ~]#
七、显示/etc目录下,以非字母开头,后面跟了一个字母以及其他任意长度任意字符的文件或目录
[root@iZ23fk44yhjZ ~]# touch /etc/2t.txt [root@iZ23fk44yhjZ ~]# ls -d /etc/[^[:alpha:]][[:alpha:]].* /etc/1o.txt /etc/2t.txt [root@iZ23fk44yhjZ ~]#
八、显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录
[root@iZ23fk44yhjZ ~]# ls -d /etc/[0-9][^0-9] /etc/2t [root@iZ23fk44yhjZ ~]#
九、在tmp目录下创建以tfile开头,后跟当前日期和时间的文件
[root@iZ23fk44yhjZ ~]# time=`date +%Y-%m-%d-%H-%M-%S` [root@iZ23fk44yhjZ ~]# echo $time 2016-08-20-22-58-55 [root@iZ23fk44yhjZ ~]# touch /tmp/tfile-"$time" [root@iZ23fk44yhjZ ~]# ls /tmp/ a_c a_d b_c b_d mylinux tfile-2016-08-20-22-58-55 [root@iZ23fk44yhjZ ~]#
十、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到tmp/mytest1目录中
[root@iZ23fk44yhjZ ~]# mkdir /tmp/mytest1 [root@iZ23fk44yhjZ ~]# ls -d /etc/p*[^0-9] /etc/pam.d /etc/passwd- /etc/pki /etc/pm-utils-hd-apm-restore.conf /etc/ppp /etc/prelink.conf.d /etc/profile.d /etc/pango /etc/pcmcia /etc/plymouth /etc/popt.d /etc/prelink.cache /etc/printcap /etc/protocols /etc/passwd /etc/pinforc /etc/pm /etc/postfix /etc/prelink.conf /etc/profile /etc/pulse [root@iZ23fk44yhjZ ~]# cp -r /etc/p*[^0-9] /tmp/mytest1/ [root@iZ23fk44yhjZ ~]# ls /tmp/mytest1/ pam.d passwd pcmcia pki pm popt.d ppp prelink.conf printcap profile.d pulse pango passwd- pinforc plymouth pm-utils-hd-apm-restore.conf postfix prelink.cache prelink.conf.d profile protocols [root@iZ23fk44yhjZ ~]#
十一、复制/etc下以.d结尾的目录或文件至/tmp/mytest2中
[root@iZ23fk44yhjZ ~]# ls -d /etc/*.d /etc/bash_completion.d /etc/event.d /etc/lsb-release.d /etc/prelink.conf.d /etc/rc2.d /etc/rsyslog.d /etc/sysctl.d /etc/chkconfig.d /etc/init.d /etc/makedev.d /etc/profile.d /etc/rc3.d /etc/rwtab.d /etc/xinetd.d /etc/cron.d /etc/ld.so.conf.d /etc/modprobe.d /etc/rc.d /etc/rc4.d /etc/setuptool.d /etc/yum.repos.d /etc/depmod.d /etc/libibverbs.d /etc/pam.d /etc/rc0.d /etc/rc5.d /etc/statetab.d /etc/dracut.conf.d /etc/logrotate.d /etc/popt.d /etc/rc1.d /etc/rc6.d /etc/sudoers.d [root@iZ23fk44yhjZ ~]# [root@iZ23fk44yhjZ ~]# mkdir /tmp/mytest2 [root@iZ23fk44yhjZ ~]# cp -r /etc/*.d /tmp/mytest2/ [root@iZ23fk44yhjZ ~]# ls /tmp/mytest2/ bash_completion.d dracut.conf.d libibverbs.d modprobe.d profile.d rc2.d rc6.d statetab.d yum.repos.d chkconfig.d event.d logrotate.d pam.d rc.d rc3.d rsyslog.d sudoers.d cron.d init.d lsb-release.d popt.d rc0.d rc4.d rwtab.d sysctl.d depmod.d ld.so.conf.d makedev.d prelink.conf.d rc1.d rc5.d setuptool.d xinetd.d
十二、复制/etc下以l或m或n开头,以.conf结尾的文件至/tmp/mytest3中
[root@iZ23fk44yhjZ ~]# ls /etc/[lmn]*.conf /etc/ld.so.conf /etc/libuser.conf /etc/mke2fs.conf /etc/nsswitch.conf /etc/libaudit.conf /etc/logrotate.conf /etc/nscd.conf /etc/ntp.conf [root@iZ23fk44yhjZ ~]# mkdir /tmp/mytest3 [root@iZ23fk44yhjZ ~]# cp -r /etc/[lmn]*.conf /tmp/mytest3/ [root@iZ23fk44yhjZ ~]# ls /tmp/mytest3/ ld.so.conf libaudit.conf libuser.conf logrotate.conf mke2fs.conf nscd.conf nsswitch.conf ntp.conf
原创文章,作者:凸b男波万,如若转载,请注明出处:http://www.178linux.com/38036
评论列表(1条)
写的很好,排版也很棒,加油