1、 常見的文件管理命令及使用方法
mkdir創建目錄
使用mkdir創建一個叫做test的文件夾,使用ls –l查看test的信息,test的信息的第一位為d,表示是一個目錄。
而級聯創建目錄時,只需要加上一個-p選項,即可,即使你創建一個已存在的目錄,Linux也不會報錯的。
進入test文件夾,使用touch filename創建一個文本文件,使用ls –l查看文件屬性為–時,表示這個文件是一個普通的文本文件。
rmdir刪除空目錄
-p選項級聯刪除一大串空目錄了,但是有一個局限性是必須是空目錄,所以不怎么好用。
[root@localhost ~]# rmdir /tmp/test/
rmdir: 刪除 '/tmp/test/' 失敗: 目錄非空
[root@localhost ~]# rmdir /tmp/test/123
命令rm(remove)
也是刪除的命令,這里介紹一下常用的選項:
-r:刪除目錄的選項,等于rmdir
-f:強制刪除不提示,如果你在刪除一個不存在的目錄,加上-f不會報錯
有一點和rmdir不同的是,會詢問是否刪除,輸入y則刪除,輸入n則不刪除。而且,當目錄時非空的時候,也可以刪除。最常用的,就是rm –rf這兩個選項合用了,不管是文件還是目錄都可以不提示刪除。
cp命令
用來復制文件或者文件夾,語法格式:cp [選項] [源文件] [目標文件]
例如把test復制成test1
如果是復制目錄,則需要加-r選項即可。
移動和重命名mv
語法:mv [選項] [源文件] [目標文件]
mv命令有幾種情況需要注意:
(1) 目標文件是目錄,而且目標文件不存在;
(2) 目標文件是目錄,而且目標文件存在;
(3) 目標文件不是目錄不存在;
(4) 目標文件不是目錄存在;
目標文件是目錄,存在和不存在,移動的結果是不一樣的,如果存在,則會把源文件移動到目標文件目錄中。不存在的話移動完后,相當于重命名目錄。
如果目標文件不是目錄,且不存在,則會重命名文件,否則把文件移動到目錄中。
命令cat
即查看一個文件的內容并顯示在屏幕上,后面可以不加選項直接跟文件名,也可以加兩個常用選項:
-n:查看文件時,把行號也顯示到屏幕上
例子中出現了一個“>>”這個符號跟 “>”的作用都是重定向,即把前面輸出的東西輸入到后邊的文件中,只是“>>”是追加的意思,而用“>”如果文件中有內容則會刪除文件中內容,而“>>”則不會。
-A: 顯示所有東西出來,包括特殊字符
文件和目錄的屬性
上面我查看文件的時候,使用了ls –l的命令,一共有9列內容,各自的含義我介紹下:
(1) 第1列包含該文件類型和所有者、所屬組以及其他用戶對該文件的權限。第一列共11位有的文件是10位,沒有最后面的一位。 其中第一位用來描述該文件的類型。
d 表示該文件為目錄;
– 表示該文件為普通文件;
l 表示該文件為鏈接文件;
b 表示該文件為塊設備,比如/dev/sda就是這樣的文件;
c 表示該文件為串行端口設備,例如鍵盤、鼠標;
s 表示該文件為套接字文件(socket),用于進程間通信;
后邊的9位,每三個為一組,均為rwx三個參數的組合。其中r代表可讀,w代表可寫,x代表可執行。前三位為所有者(user)的權限,中間三位為所屬組(group)的權限,最后三位為其他非本群組(others)的權限。例如下面這個test.txt的意思就是該文件為一個普通文件,文件的擁有者可讀可寫,屬組和其他為可讀。
而第一列最后一個“.”,是因為新版本的ls把selinux或者acl的屬性加進來了,當文件或者目錄只使用了selinux context的屬性,這里是一個點。如果設置了acl,后面將是一個加號“+”。
(2) 表示為鏈接占用的節點(inode),如果是目錄,那這個數值與該目錄底下有多少一級子目錄有關系。
(3) 第3列,表示該文件的所有者。
(4) 第4列,表示該文件的所屬組。
(5) 第5列,表示該文件的大小。
(6) 第6列、第7列和第8列為該文件的最近的修改日期,分別為月份日期以及時間。
(7) 第9列,文件名。
chmod命令
上面介紹了文件的所有者、所屬組以及其他用戶對文件的權限,而命令“chmod”就是為了更改這些權限的,可以使用數字去代替rwx, 具體規則為r等于4,w等于2,x等于1,–等于0。如:“-rwxrwx—” 用數字表示就是770,具體是這樣來的:rwx=4+2+1=7;rwx=4+2+1=7;—=0+0+0=0。
語法:chmod [-R] xyz filename(xyz表示數字,及421)
-R選項作用表示級聯更改,級把目錄內的目錄或文件也一同更改。
chown、chgrp命令
更改文件或目錄的所屬主(chown)和所屬組(chgrp)
也可以不使用chgrp更改所屬組,如
2、 bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容
使用特殊變量“$?”表示最近一條命令的執行結果,0表示成功,1-255表示失敗。
命令行展開:
“~”表示展開成用戶的家目錄,{}可承載一個以逗號分隔的列表,并將其展開為多個路徑。
3、 請使用命令行展開功能來完成以下練習
(1) 創建/tmp目錄下的:a_c, a_d, b_c, b_d
(2) 創建/tmp/mylinux目錄下的:
可以使用如下命令完成:
[root@Hao tmp] # mkdir -p 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}}
4、 文件的元數據信息有哪些,分別表示什么含義,如何查看?如何修改文件的時間戳信息。
使用命令stat查看
使用touch filename修改時間戳信息
5、 如何定義一個命令的別名,如何在命令中引用另一個命令的執行結果?
用alias命令修改別名
命令引用:
name=`COMMAND`, name=$(COMMAND)
6、 顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間至少出現一位數字(可以有其它字符)的文件或目錄。
[root@Hao ~]# ls -d /var/l*[0-9]*[[:lower:]]
7、 顯示/etc目錄下,以任意一個數字開頭,且非數字結尾的文件或目錄。
# ls -d /etc/[0-9]*[^0-9]
8、 顯示/etc目錄下,以非字母開頭,后面跟了一個字母以及其它任意長度任意字符的文件或目錄。
# ls -d /etc/[^[:alpha:]][[:alpha:]]*
9、 在/tmp目錄下創建以tfile開頭,后跟當前日期和時間的文件,文件名形如:tfile-2016-05-27-09-32-22
[root@Hao ~]# touch tfile-`date +"%Y-%m-%d-%H-%M-%S"`
10、 復制/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中
[root@Hao ~]# cp -a /etc/p*[^0-9] /tmp/mytest1
11、 復制/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中
[root@Hao ~]# cp -a /etc/*.d /tmp/mytest2
12、 復制/etc/目錄下所有以l或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中
[root@Hao ~]# cp -a /etc/[l,m,n]*.conf /tmp/mytest3
原創文章,作者:Net19_口香糖,如若轉載,請注明出處:http://www.www58058.com/21581
寫的很好,可以注意一下排版問題,加油