cat:查看文件文本内容
-n:显示行号 [root@study ~]# cat -n /etc/passwd 1 root:x:0:0:root:/root:/bin/bash 2 bin:x:1:1:bin:/bin:/sbin/nologin 3 daemon:x:2:2:daemon:/sbin:/sbin/nologin 4 adm:x:3:4:adm:/var/adm:/sbin/nologin 5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin 6 sync:x:5:0:sync:/sbin:/bin/sync 7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown 8 halt:x:7:0:halt:/sbin:/sbin/halt 9 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
cat还可以结合管道命令,把一段内容写到指定文件,多用于脚本
[root@study ~]# cat > test <<EOF > hello > world > EOF [root@study ~]# cat test hello world
more:查看文本内容,空格往后跳转,b往前跳转,但是跳至末端后,不能再往前跳转
less:与more相似,但跳至末端后,还能往前跳转
head:显示文件的头几行
[root@study ~]# head -3 /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin
tail:显示文件的末尾几行
[root@study ~]# tail -3 /etc/passwd postfix:x:89:89::/var/spool/postfix:/sbin/nologin sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin kang:x:1000:1000:kang:/home/kang:/bin/bash
其中tail还有一个很重要的参数f,能持续输出文件的末行。一般用于查看日志排错等。
mkdir:创建目录
mkdir -p 递归创建新目录 [root@study ~]# ll total 12 -rw-------. 1 root root 1170 Oct 26 08:08 anaconda-ks.cfg -rw-r--r--. 1 root root 17 Nov 3 01:54 test -rw-r--r--. 1 root root 16 Nov 3 01:40 uni-bank 例如在当前目录下创建目录/x/y/z [root@study ~]# mkdir -p x/y/z [root@study ~]# tree x x └── y └── z mkdir -m 可以在创建目录时指定目录权限,例如 [root@study ~]# mkdir -m 644 z drw-r--r--. 2 root root 6 Nov 7 02:44 z
rmdir:删除目录
cp:复制文件
-r:递归复制文件 -f:强制复制,一般用于覆盖已有文件
mv:移动文件,类似于剪切。在linux中也常用作改名字
[root@study ~]# ll total 12 -rw-------. 1 root root 1170 Oct 26 08:08 anaconda-ks.cfg -rw-r--r--. 1 root root 17 Nov 3 01:54 test -rw-r--r--. 1 root root 16 Nov 3 01:40 uni-bank drwxr-xr-x. 3 root root 14 Nov 7 02:52 x drw-r--r--. 3 root root 14 Nov 7 02:52 z 将z移到x目录下 [root@study ~]# mv z x [root@study ~]# tree -L 1 x x ├── y └── z 把x改名为y [root@study ~]# mv x y [root@study ~]# ll total 12 -rw-------. 1 root root 1170 Oct 26 08:08 anaconda-ks.cfg -rw-r--r--. 1 root root 17 Nov 3 01:54 test -rw-r--r--. 1 root root 16 Nov 3 01:40 uni-bank drwxr-xr-x. 4 root root 22 Nov 7 02:56 y
rm:删除文件,rm是Linux文件管理里面非常危险的一条的命令,如果删除了一个文件将无法恢复。尤其是在脚本中使用该命令时必须再三确认。例如rm -fr ./* 该命令是删除当前目录下所有文件,如果忘了加.,就会变成删除根目录。
-r:递归删除文件 -f:强制删除,不需要交互 [root@study ~]# rm -rf y 该命令会将上面创建的y目录及其子目录删除。
bash:一般用echo $?查看命令查看命令状态返回值,0为执行成功,1~255为执行失败。个人理解可用于脚本条件判断,同时可通过指定错误返回值,得知错误原因。
[root@study ~]# mkdir x [root@study ~]# echo $? 0 [root@study ~]# ll total 12 -rw-------. 1 root root 1170 Oct 26 08:08 anaconda-ks.cfg -rw-r--r--. 1 root root 17 Nov 3 01:54 test -rw-r--r--. 1 root root 16 Nov 3 01:40 uni-bank drwxr-xr-x. 2 root root 6 Nov 7 03:14 x 由上例可以看出状态返回值为0,x目录成功创建。如果删除一个不存在的目录y [root@study ~]# rm y rm: cannot remove ‘y’: No such file or directory [root@study ~]# echo $? 1
习题
1.请使用命令行展开功能来完成以下练习:
(1)创建/tmp目录下的:ac, ad, bc, bd
[root@study tmp]# mkdir -pv /tmp/{a_c,a_d,b_c,b_d} mkdir: created directory ‘/tmp/a_c’ mkdir: created directory ‘/tmp/a_d’ mkdir: created directory ‘/tmp/b_c’ mkdir: created directory ‘/tmp/b_d’
(2)、创建/tmp/mylinux目录下的:
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@study ~]# 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@study ~]# 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
(3)4、文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。
[root@study ~]# stat x File: ‘x’ Size: 6 Blocks: 0 IO Block: 4096 directory Device: fd00h/64768d Inode: 67551725 Links: 2 Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root) Context: unconfined_u:object_r:admin_home_t:s0 Access: 2016-11-07 03:14:10.716034498 +0800 Modify: 2016-11-07 03:14:10.716034498 +0800 Change: 2016-11-07 03:14:10.716034498 +0800 Birth: -
修改时间戳命令:stat。
-a change only the access time -m change only the modification time -t use [[CC]YY]MMDDhhmm[.ss] instead of current time 修改上述x的时间戳 [root@study ~]# stat x File: ‘x’ Size: 6 Blocks: 0 IO Block: 4096 directory Device: fd00h/64768d Inode: 67551725 Links: 2 Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root) Context: unconfined_u:object_r:admin_home_t:s0 Access: 2015-11-06 18:42:30.000000000 +0800 Modify: 2015-11-06 18:42:30.000000000 +0800 Change: 2016-11-07 03:36:10.077054798 +0800 Birth: - 上例可以看出,用stat指定时间戳不能修改ctime,可以用-m参数修改 [root@study ~]# touch -m 1511061842.30 x [root@study ~]# stat x File: ‘x’ Size: 6 Blocks: 0 IO Block: 4096 directory Device: fd00h/64768d Inode: 67551725 Links: 2 Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root) Context: unconfined_u:object_r:admin_home_t:s0 Access: 2015-11-06 18:42:30.000000000 +0800 Modify: 2016-11-07 03:38:52.620057299 +0800 Change: 2016-11-07 03:38:52.620057299 +0800 Birth: -
touch也可新建一个不存在的文件。
(4)如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果?
[root@study ~]# alias clear=cls 此时cls可以作为清屏命令
使用管道可以引用另一个命令的执行结果
[root@study ~]# top|grep Mem KiB Mem : 1001360 total, 739256 free, 119120 used, 142984 buff/cache
(5)显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录。
[root@study ~]# ls -ld /var/l*[0-9]*[a-z] drwxr-xr-x. 2 root root 6 Nov 7 03:50 /var/lda34a
(6)显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。
[root@study ~]# ls -ld /etc/[0-9]*[^0-9] drwxr-xr-x. 2 root root 6 Nov 7 03:53 /etc/1adb
(7)显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。
[root@study ~]# ls -ld /etc/[^a-z][a-z]* drwxr-xr-x. 2 root root 6 Nov 7 03:53 /etc/1adb
(8)在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22。
[root@study etc]# mkdir -pv /etc/tfile`date +%F-%H-%M-%S` mkdir: created directory ‘/etc/tfile2016-11-07-04-08-18’
(9)复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。
[root@study etc]# cp /etc/p*[^0-9] /tmp/mytest1 cp: omitting directory ‘/etc/pam.d’ cp: omitting directory ‘/etc/pki’ cp: omitting directory ‘/etc/plymouth’ cp: omitting directory ‘/etc/pm’ cp: omitting directory ‘/etc/popt.d’ cp: omitting directory ‘/etc/postfix’ cp: omitting directory ‘/etc/ppp’ cp: omitting directory ‘/etc/prelink.conf.d’ cp: omitting directory ‘/etc/profile.d’ cp: omitting directory ‘/etc/python’
(10)复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。
[root@study ~]# cp /etc/*.d /tmp/mytest2 cp: omitting directory ‘/etc/bash_completion.d’ cp: omitting directory ‘/etc/binfmt.d’ cp: omitting directory ‘/etc/chkconfig.d’ cp: omitting directory ‘/etc/cron.d’ cp: omitting directory ‘/etc/depmod.d’ cp: omitting directory ‘/etc/dnsmasq.d’ cp: omitting directory ‘/etc/dracut.conf.d’ cp: omitting directory ‘/etc/grub.d’ ……
(11)复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。
[root@study ~]# cp /etc/[lmp]*.conf /tmp/test3/ [root@study ~]# ll /tmp/test3/ total 32 -rw-r--r--. 1 root root 28 Nov 7 04:16 ld.so.conf -rw-r-----. 1 root root 191 Nov 7 04:16 libaudit.conf -rw-r--r--. 1 root root 2391 Nov 7 04:16 libuser.conf -rw-r--r--. 1 root root 19 Nov 7 04:16 locale.conf -rw-r--r--. 1 root root 662 Nov 7 04:16 logrotate.conf -rw-r--r--. 1 root root 5171 Nov 7 04:16 man_db.conf -rw-r--r--. 1 root root 936 Nov 7 04:16 mke2fs.conf
原创文章,作者:N24_小康,如若转载,请注明出处:http://www.178linux.com/58002
评论列表(1条)
总结的比较还是比较详细的,继续加油~