1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。(1)目錄管理命令——ls:列出指定目錄下的內容格式:ls [OPTION]... [FILE]... -a:顯示所有文件包括隱藏文件 -A:顯示除.和..之外的所有文件 -l,--long:顯示文件的詳細屬性信息 -h:對 ...
1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。
(1)目錄管理命令
——ls:列出指定目錄下的內容
格式:ls [OPTION]... [FILE]...
-a:顯示所有文件包括隱藏文件
-A:顯示除.和..之外的所有文件
-l,--long:顯示文件的詳細屬性信息
-h:對文件大小進行單位換算,可能影響精度
-d:查看目錄本身而非其內部的文件
-r:逆序顯示文件
-R:遞歸顯示文件
示例:ls -lah / --詳細顯示/目錄下的所有文件(包括隱藏文件)
ls -ldh /etc --詳細顯示/etc目錄本身
ls -lhv / --倒序顯示/目錄下所有文件(包括隱藏文件)
ls -R /etc --遞歸顯示/etc下所有文件
——mkdir:創建目錄
格式:mkdir [OPTION]... DIRECTORY...
-p:自動按需創建父目錄
-m:創建目錄時給定許可權
示例:mkdir -p /data/test/A/B --在/data目錄下遞歸創建/test/A/B三個目錄
mkdir -m 711 -p /data/MODE/A --在/data目錄下遞歸創建MODE/A兩個目錄同時指定目錄A的許可權為711
——rmdir:刪除目錄
格式:rmdir [OPTION]... DIRECTORY...
-p:刪除目錄後如果其父目錄為空,則一併刪除
示例:rmdir -p /data/test/A --刪除A目錄後,test目錄為空,一併刪除
——cd:切換目錄
示例:cd ..:切換到上級目錄
cd ~:切換回自己的家目錄
cd -:在上一次目錄與當前目錄直接來回切換
——pwd:顯示當前目錄
(2)文件管理命令
——cp:複製
格式:單源複製:cp [OPTION]... [-T] SOURCE DEST(如果DEST不存在則創建,存在則覆蓋)
多源複製:cp [OPTION]... SOURCE... DIRECTORY(DEST必須為directory)
-i:互動式複製,即覆蓋前提醒用戶確認
-f:強制覆蓋目標文件
-r,-R:遞歸複製目錄
示例:cp -if /data/[1-3].txt /data/test --test必須為目錄,把三個文件一起複制到test中
cp -r /data /practice --把data目錄及目錄下的內容一起複制到practice中
——mv:剪切
格式:單源複製:mv [OPTION]... [-T] SOURCE DEST(如果DEST不存在則創建,存在則覆蓋)
多源複製:mv [OPTION]... SOURCE... DIRECTORY(DEST必須為directory)
-i:互動式複製,即覆蓋前提醒用戶確認
-f:強制覆蓋目標文件
示例:mv -i /data/[1-3].txt /practice --把/data目錄下三個txt文件剪切到/practice下
——rm:刪除
格式:rm [OPTION]... FILE...
-i:互動式複製,即覆蓋前提醒用戶確認
-f:強制覆蓋目標文件
-r,-R:遞歸處理,將制定目錄下的所有文件包括目錄一併刪除
示例:rm -rf /practice --遞歸刪除/practice目錄
(3)文本內容管理命令
——cat:正向查看文本內容
格式:cat [OPTION]... [FILE]...
-n:給顯示的文本行編號
-E:顯示行結束符號$
示例:cat -n /etc/fstab --查看/etc/fatab內容並顯示行號
——tac:倒敘查看文本內容
格式:tac [OPTION]... [FILE]...
示例:tac /etc/passwd --倒敘查看文本內容
——head:顯示文本內容,預設顯示頭10行
格式:head [OPTION]... [FILE]...
-n #:顯示文本頭#行內容
示例:head -5 /etc/passwd --顯示/etc/passwd文件頭5行內容
——tail:顯示文本內容,預設顯示後10行
格式:tail [OPTION]... [FILE]...
-n #:顯示文本後#行內容
-f:查看文件尾部內容結束後不退出,跟隨顯示新增的行
示例:tail -8 /etc/passwd --顯示/etc/passwd文件後8行內容
——more:分屏顯示文本內容,每次顯示一屏顯示完停止
格式:more [options] file [...]
Space鍵:顯示文本下一屏內容
Enter鍵:只顯示文本下一行內容
b鍵:顯示文本上一屏內容
q鍵:退出
——less:分屏顯示文本內容,不主動退出
格式:less [options] file [...]
Space鍵:顯示文本下一屏內容
Enter鍵:只顯示文本下一行內容
b鍵:顯示文本上一屏內容
q鍵:退出
2、bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容及其示例演示。
(1)bash命令執行後通過狀態返回值來確定執行結果:
成功:返回0
失敗:返回1-255
註意,命令執行完成後,其狀態返回值保存於bash的特殊變數“$?”中。
示例:
1 [root@bogon ~]# echo $? 2 0 3 [root@bogon ~]# lss / 4 bash: lss: 未找到命令... 5 相似命令是: 'ls' 6 [root@bogon ~]# echo $? 7 127
(2)bash命令行展開:
~:自動展開為當前用戶的家目錄
~USERNAME:自動展開為指定用戶的家目錄
{}:{}內容可為一個用,隔開的路徑列表,將其展開為多個路徑
示例:
1 [root@bogon ~]# cd ~walterhuang 2 [root@bogon walterhuang]# pwd 3 /home/walterhuang 4 [root@bogon walterhuang]# cd ~ 5 [root@bogon ~]# pwd 6 /root
1 [root@bogon data]# mkdir -pv {a,b}-{c,d} 2 mkdir: 已創建目錄 "a-c" 3 mkdir: 已創建目錄 "a-d" 4 mkdir: 已創建目錄 "b-c" 5 mkdir: 已創建目錄 "b-d" 6 [root@bogon data]# tree /data 7 /data 8 ├── a-c 9 ├── a-d 10 ├── b-c 11 └── b-d
3、請使用命令行展開功能來完成以下練習:
(1)、創建/tmp目錄下的:a_c, a_d, b_c, b_d
1 [root@bogon data]# mkdir -pv /tmp/{a,b}_{c,d} 2 mkdir: 已創建目錄 "/tmp/a_c" 3 mkdir: 已創建目錄 "/tmp/a_d" 4 mkdir: 已創建目錄 "/tmp/b_c" 5 mkdir: 已創建目錄 "/tmp/b_d" 6 [root@bogon data]# tree /tmp 7 /tmp 8 ├── a_c 9 ├── a_d 10 ├── anaconda.log 11 ├── b_c 12 ├── 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
1 [root@bogon data]# mkdir -p /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} 2 [root@bogon data]# tree /tmp/mylinux 3 /tmp/mylinux 4 ├── bin 5 ├── boot 6 │ └── grub 7 ├── dev 8 ├── etc 9 │ ├── network-scripts 10 │ ├── rc.d 11 │ │ └── init.d 12 │ └── sysconfig 13 ├── lib 14 │ └── modules 15 ├── lib64 16 ├── lock 17 ├── log 18 ├── proc 19 ├── run 20 ├── sbin 21 ├── sys 22 ├── tmp 23 ├── usr 24 │ ├── bin 25 │ ├── local 26 │ └── sbin 27 └── var
4、文件的元數據信息有哪些,分別表示什麼含義,如何查看?如何修改文件的時間戳信息。
(1)Linux文件的數據分為兩類,一類為數據,即文件的實際內容(數據本身);一類為元數據,用來描述文件的特征(描述數據的屬性)。
(2)通過 stat 命令可以查看文件的元數據,如圖:
可以看到文件的元數據包括文件名(File)、大小(Size)、數據塊(Blocks)、IO塊(IO Block)、設備(Device)、節點號(Inode)、硬鏈接(Links)、許可權(Access)、文件所屬主(Uid)、文件所屬組(Gid)、最近訪問時間(Access Time)、最近文件修改時間(Modify Time)、最近文件屬性更改時間(Change Time)。
(3)通過 touch 命令修改文件的時間戳信息,其中:
-c:指定的文件不存在時不予創建(所有時間都會改變);
-a:僅修改access time(實際change time會隨著改變);
-m:僅修改modify time(實際change time會隨著改變);
-t:使用指定的日期時間,格式[[CC]YY]MMDDhhmm[.ss](access time和modify time為指定時間,change time為當前系統時間)
示例:
1 [root@bogon data]# stat a-c 2 文件:"a-c" 3 大小:6 塊:0 IO 塊:4096 目錄 4 設備:fd00h/64768d Inode:136910832 硬鏈接:2 5 許可權:(0755/drwxr-xr-x) Uid:( 0/ root) Gid:( 0/ root) 6 環境:unconfined_u:object_r:default_t:s0 7 最近訪問:2018-03-01 10:51:30.172785209 +0800 8 最近更改:2018-03-01 10:51:23.398752434 +0800 9 最近改動:2018-03-01 10:51:23.398752434 +0800 10 創建時間:- 11 [root@bogon data]# touch -c a-c 12 [root@bogon data]# stat a-c 13 文件:"a-c" 14 大小:6 塊:0 IO 塊:4096 目錄 15 設備:fd00h/64768d Inode:136910832 硬鏈接:2 16 許可權:(0755/drwxr-xr-x) Uid:( 0/ root) Gid:( 0/ root) 17 環境:unconfined_u:object_r:default_t:s0 18 最近訪問:2018-03-01 11:46:07.375982195 +0800 19 最近更改:2018-03-01 11:46:07.375982195 +0800 20 最近改動:2018-03-01 11:46:07.375982195 +0800 21 創建時間:-
1 [root@bogon data]# stat a-c 2 文件:"a-c" 3 大小:6 塊:0 IO 塊:4096 目錄 4 設備:fd00h/64768d Inode:136910832 硬鏈接:2 5 許可權:(0755/drwxr-xr-x) Uid:( 0/ root) Gid:( 0/ root) 6 環境:unconfined_u:object_r:default_t:s0 7 最近訪問:2018-03-01 11:46:07.375982195 +0800 8 最近更改:2018-03-01 11:46:07.375982195 +0800 9 最近改動:2018-03-01 11:46:07.375982195 +0800 10 創建時間:- 11 [root@bogon data]# touch -a a-c 12 [root@bogon data]# stat a-c 13 文件:"a-c" 14 大小:6 塊:0 IO 塊:4096 目錄 15 設備:fd00h/64768d Inode:136910832 硬鏈接:2 16 許可權:(0755/drwxr-xr-x) Uid:( 0/ root) Gid:( 0/ root) 17 環境:unconfined_u:object_r:default_t:s0 18 最近訪問:2018-03-01 11:47:54.274485562 +0800 19 最近更改:2018-03-01 11:46:07.375982195 +0800 20 最近改動:2018-03-01 11:47:54.274485562 +0800 21 創建時間:-
1 [root@bogon data]# stat a-c 2 文件:"a-c" 3 大小:6 塊:0 IO 塊:4096 目錄 4 設備:fd00h/64768d Inode:136910832 硬鏈接:2 5 許可權:(0755/drwxr-xr-x) Uid:( 0/ root) Gid:( 0/ root) 6 環境:unconfined_u:object_r:default_t:s0 7 最近訪問:2018-03-01 11:47:54.274485562 +0800 8 最近更改:2018-03-01 11:46:07.375982195 +0800 9 最近改動:2018-03-01 11:47:54.274485562 +0800 10 創建時間:- 11 [root@bogon data]# touch -m a-c 12 [root@bogon data]# stat a-c 13 文件:"a-c" 14 大小:6 塊:0 IO 塊:4096 目錄 15 設備:fd00h/64768d Inode:136910832 硬鏈接:2 16 許可權:(0755/drwxr-xr-x) Uid:( 0/ root) Gid:( 0/ root) 17 環境:unconfined_u:object_r:default_t:s0 18 最近訪問:2018-03-01 11:47:54.274485562 +0800 19 最近更改:2018-03-01 11:50:37.090253619 +0800 20 最近改動:2018-03-01 11:50:37.090253619 +0800 21 創建時間:-
1 [root@bogon data]# touch -t 1705030503.53 a-c
2 [root@bogon data]# stat a-c
3 文件:"a-c"
4 大小:6 塊:0 IO 塊:4096 目錄
5 設備:fd00h/64768d Inode:136910832 硬鏈接:2
6 許可權:(0755/drwxr-xr-x) Uid:( 0/ root) Gid:( 0/ root)
7 環境:unconfined_u:object_r:default_t:s0
8 最近訪問:2017-05-03 05:03:53.000000000 +0800
9 最近更改:2017-05-03 05:03:53.000000000 +0800
10 最近改動:2018-03-01 11:50:37.090253619 +0800
11 創建時間:-
5、如何定義一個命令的別名,如何在命令中引用另一個命令的執行結果?
(1)通過 alias 命令可以查看所有命令的別名或者定義別名,定義別名格式:alias NAME=COMMAND(定義的別名只對當前shell終端有效)。
取消別名可通過命令 unalias。
示例:
1 [root@bogon data]# alias 2 alias cp='cp -i' 3 alias egrep='egrep --color=auto' 4 alias fgrep='fgrep --color=auto' 5 [root@bogon data]# alias copy='cp -ri' 6 [root@bogon data]# alias 7 alias copy='cp -ri' 8 alias cp='cp -i' 9 alias egrep='egrep --color=auto' 10 alias fgrep='fgrep --color=auto' 11 [root@bogon data]# unalias copy
(2)引用命令的執行結果可通過 $(COMMAND) 或者 `COMMAND` 兩種方式。
示例:
1 [root@bogon data]# echo $(date) 2 2018年 03月 01日 星期四 11:41:20 CST
6、顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間至少出現一位數字(可以有其它字元)的文件或目錄。
[root@bogon data]# ls -d /var/l*[[:digit:]]*[[:lower:]]
7、顯示/etc目錄下,以任意一個數字開頭,且以非數字結尾的文件或目錄。
[root@bogon data]# ls -d /etc/[0-9]*[^0-9]
或
[root@bogon data]# ls -d /etc/[[:digit:]]*[^[:digit:]]
8、顯示/etc目錄下,以非字母開頭,後面跟了一個字母以及其它任意長度任意字元的文件或目錄。
[root@bogon data]# ls -d /etc/[^[:alpha:]][[:alpha:]]*
9、在/tmp目錄下創建以tfile開頭,後跟當前日期和時間的文件,文件名形如:tfile-2016-05-27-09-32-22。
[root@bogon data]# touch /tmp/tfile-$(date '+%Y-%m-%d-%H-%M-%S')
10、複製/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中。
[root@bogon data]# cp -r /etc/p*[^[:digit:]] /tmp/mytest1
11、複製/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中。
[root@bogon data]# cp -r /etc/*.d /tmp/mytest2
12、複製/etc/目錄下所有以l或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中。
[root@bogon data]# cp -r /etc/[l,m,n]*.conf /tmp/mytest3