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.www58058.com/58002
總結的比較還是比較詳細的,繼續加油~