一、cd命令
1、功能
用來進行不同目錄間的切換,屬于內部命令。
2、語法
cd [-L|-P] [dir]
-L : 如果要切換到的目錄是一個符號鏈接,就直接切換到符號鏈接名表示的目錄(默認)。
-P : 如果要切換到的目錄是一個符號鏈接,直接接切換到符號鏈接指向的目標目錄。
3、用法說明
cd 或 cd ~ :進入當前用戶的主目錄(“~ ”表示主目錄)。
cd – : 進入此目錄之前所在的目錄。
cd .. :返回上級目錄(“..”表示上級目錄,“.”表示當前目錄)
4、補充
相關的環境變量
$PWD:保存了當前目錄路徑 $OLDPWD:保存了上一次所在的目錄路徑
二、ls命令
1、功能
列出當前目錄(文件)或指定目錄(文件)的信息,是一個別名。
2、語法
ls [OPTION]… [FILE]…
-a:顯示所有文件,包括隱藏文件(以“.”開頭的文件 )
-A:顯示所有文件,包括隱藏文件但“ . 和 .. ”兩個文件除外
-l:以長格式顯示文件信息(包括屬性和權限等)
-h:以便于理解的數據大小單位顯示(k\m\g\t…)
-t:以文件的最后修改時間(ctime)排序顯示
-F:顯示文件類型(/ :表示目錄 ;* :表示可以執行文件 ;= :表示socket文件 |:表示FIFO文件)
-d:僅列出目錄本身,而不是列出目錄內的文件數據(要列出目錄下的內容可以在目錄后加 * 號)
-i:列出文件的inode號
-r:將文件由小到大排列輸出
-R:連同子目錄的內容一起列出,即遞歸顯示
-m:以逗號分隔文件
-1(數字1):將文件顯示成豎列(一行只輸出一個文件)
3、示例
顯示主目錄下的所有內容,包括屬性權限等
[root@localhost ~]# ls -al ~
total 232
dr-xr-x—. 25 root root 4096 Jul 29 08:23 .
-rw-r–r–. 1 root root 100 Sep 23 2004 .cshrc
drwxr-xr-x. 2 root root 4096 Jul 20 17:51 .abrt
drwxr-xr-x. 2 root root 4096 Jul 20 17:51 Desktop
以逗號分隔文件
[root@localhost yum]# ls -m
pluginconf.d, protected.d, vars, version-groups.conf
三、stat命令
1、功能
用于顯示文件的狀態信息
2、語法
stat [OPTION]… FILE…
-L:顯示硬鏈接的數據
-f:顯示文件系統狀態而非文件狀態
-t:以簡潔的方式顯示信息
3、示例
顯示CentOS 7 的/bin目錄的信息
四、touch命令
1、功能
用于改變文件的時間戳和創建空白文件
2、語法
touch [OPTION]… FILE…
-a:僅修改訪問時間(atime)
-c:僅修改文件的時間,若文件不存在不創建任何文件
-m:僅修改變動時間mtime
-d:用指定的時間代替當前時間
-t:用指定時間[[CC]YY]MMDDhhmm[.ss]的格式代替當前時間
3、示例
創建空白文件test.txt
[root@localhost ~]# touch test.txt
將test.txt文件改為3天前
[root@localhost ~]# touch -d “3 day ago” test.txt
五、cp命令
1、功能
復制文件和目錄
2、語法
cp [OPTION]… [-T] SOURCE DEST
cp [OPTION]… SOURCE… DIRECTORY
cp [OPTION]… -t DIRECTORY SOURCE…
-a:用于備份,相當于 -dR –preserve=all
-d:若原文件為鏈接文件,則復制鏈接文件的屬性而非文件本身
-f:若文件已經存在但無法打開,則刪除后再嘗試創建并復制
-i:覆蓋已有文件之前先詢問用戶
-l:對源文件創建硬鏈接,而非復制文件
-p:保留源文件的屬性,等同于–preserve=mode,ownership,timestamps
-r,-R:遞歸復制
-s:復制成為符號鏈接(symbolic link)
-v:顯示復制的詳細信息
-u:源文件比目標文件新才會執行復制操作
3、說明
4、示例
用root身份將主目錄下的.bashrc文件復制到/tmp下,并重命名為bashrc
cp /root/.bashrc /tmp/bashrc
備份/var/log/wtmp文件到主目錄下,并保持其所有屬性不變
cp /var/log/wtmp ~
六、mv命令
1、功能
移動或重命名文件,當文件在同目錄下使用mv命令時即為重命名文件
2、語法
mv [OPTION]… [-T] SOURCE DEST
mv [OPTION]… SOURCE… DIRECTORY
mv [OPTION]… -t DIRECTORY SOURCE…
-i:若文件已存在,詢問是否覆蓋
-f:若文件已存在,不詢問,直接強制覆蓋
-u:文件存在,且源文件(source)比較新,才會更新
3、示例
將文件test.txt命名為text
[root@localhost ~]# mv test.txt text
將文件text移動到/etc目錄下
[root@localhost ~]# mv text /etc
七、rm命令
1、功能
刪除文件或目錄
2、語法
rm [OPTION]… FILE…
-f:強制刪除
-i:操作前詢問是否刪除
-r:遞歸刪除
3、示例
強制刪除/test目錄
rm -rf /test
八、file命令
1、功能
查看文件的文件類型
2、語法
file [options] <filename>…
-b:列出文件辨識結果,不顯示文件名稱
-c:詳細顯示指令執行過程,便于排錯或分析程序執行
-f:列出文件中文件名的文件類型
-F:使用指定的分隔符號輸出文件名,默認分隔符為“:”
-L:顯示軟連接所指向文件的類型
-z:嘗試解讀壓縮文件的內容
-v:顯示版本信息
3、示例
[root@localhost ~]# file /bin
/bin: directory
[root@localhost ~]# file -b /bin
directory
九、tree命令
1、功能
以樹狀圖結構列出目錄的內容,包括子目錄的內容
2、語法
tree [options] <filename>…
-d:只顯示目錄
-L:指定顯示的層級數目
-P:只顯示符合指定樣式的文件和目錄名稱
-s:列出文件和目錄大小
十、 mkdir命令
1、功能
創建新目錄
2、語法
mkdir [OPTION]… DIRECTORY…
-p:連同父目錄一起創建,遞歸創建
-m:創建目錄的同時設置目錄的權限
-v:顯示詳細信息
3、示例
在主目錄下創建目錄test/test1/test2,并設定權限位700
十一、rmdir命令
1、功能
刪除空目錄
2、語法
rmdir [OPTION]… DIRECTORY…
-p:連同空的父目錄一起刪除
-v:顯示命令執行的詳細過程
3、示例
刪除目錄test/test1/test2
[root@localhost ~]# rmdir -p test/test1/test2/
十二、alias命令
1.功能
創建命令的別名,可以簡化工作中常用命令的輸入。用戶必須使用單引號將原來的命令引起來,防止特殊字符導致錯誤。可以用unalias命令刪除別名
2、語法
alias [-p] [name[=value] … ]
-p:打印已經設置的命令別名(默認)
3、示例
創建一個命令別名
alias lm=’ls -al | more’(輸入lm則會分頁顯示)
刪除別名lm
unalias lm
4、補充
(a)在命令行中定義的別名,僅對當前shell有效,如要永久生效,需要定義在配置文件中:~/.bashrc (此文件定義的只對當前用戶有效);/etc/bashrc(對所有用戶有效)。編輯的配置不會立即生效需要shell重新讀配置文件: . ~/.bashrc
(b)別名同原命令同名,若要執行原命令,可使用以下3種方法:“\COMMAND” ;’COMMAND’ ;/PATH/COMMAND(絕對路徑)
十三、索引節點inode
1、什么是inode
操作系統(Operating System)的文件數據除了文件的實際內容外,還包含了很多的文件屬性。通常文件系統會把這些實際的內容存放在date block中,而文件屬性存放在inode(索引節點)中。inode就是一個記錄文件屬性以及文件實際數據存放在那幾個block的容器。
2、inode的內容
l 文件的訪問權限;
l 文件的屬主和屬組;
l inode編號;
l 文件的大??;
l 文件的時間戳(ctime/atime/mtime);
l 文件真正內容的所存放數據塊指向;
l 等等其他相關屬性。
文件的inode內容可以使用“stat”命令查看:如下圖
3、inode的大小
inode的數量和大小一般在文件系統格式化時已經固定了。每個inode節點大小一般是128字節或256字節,每個文件都僅會占用一個inode,因此文件系統能創建文件數量跟inode數量有關。date block的大小通常分為1k、2k、4k三種,因此一個文件數據大小要是小于數據塊,那么就會造成磁盤的浪費。
使用命令“df -i”可以查看文件系統的inode使用情況:如下圖
4、inode號碼與directory
每個文件都有一個inode號碼,組成了inode表,操作系統讀取文件是需要找到其inode號,并分析inode所記錄的權限與用戶是否符合,只有符合了才會實際讀取date block里的內容。
directory也是一種文件,其內容包括兩部分:directory下文件(子目錄)的文件名和該文件名對應的inode號碼。假如根的字母目錄A下有一個文件B,那么讀取B文件內容的系統操作如下,系統從inode表中找到目錄A的inode號(假如1000),打開A目錄文件,并讀取文件B的inode號(假如20000),然后回到inode表找到與文件B對應的inode號(20000),再通過找到的inode號(20000)來讀取其所指向的date block內容。
使用命令“ls -i”可以查看文件的inode號,如下圖
5、inode的結構
我們知道inode的大小只有128byte或256byte,而inode的記錄一個date block號就要占用4個byte,如果一個400MB的文件,數據塊大小為4KB,那么至少有10萬條block號碼的記錄,inode哪有這么大的空間記錄信息?因此系統會將inode記錄block號碼的區域定義為12個直接塊指針,一個間接塊指針,一個雙重間接塊指針,一個三重間接塊指針記錄區。如下圖
十四、ln命令
1、功能
用來為文件創件連接,連接類型分為硬連接和符號連接兩種,默認的連接類型是硬連接。如果要創建符號連接必須使用"-s"選項。
2、語法
ln [OPTION]… TARGET LINK_NAME
-s:創建軟連接(符號鏈接)
-f:強行建立文件或目錄的鏈接
3、示例
為/root/install.log文件創建硬鏈接
[root@localhost ~]# ln /root/install.log /etc
為/root目錄創建軟連接
[root@localhost ~]# ln -s /root /etc/root1
4、硬鏈接特性
硬鏈接不能跨文件系統;
目錄不能創建硬鏈接;
硬鏈接會影響文件的鏈接數(ls -l 查看);
源文件刪除了,其硬鏈接不受影響;
源文件和硬鏈接文件的inode號相同,hard link只是在某個目錄下新建一條文件名鏈接到某inode號碼的關聯記錄而已。
5、軟連接特性
軟連接可以跨文件系統;
目錄可以創建軟連接;
軟連接不影響文件鏈接數
源文件刪除了,軟鏈就會失效;
symbolic link創建的文件為一個獨立的新文件,因此會占用掉inode與block,即軟連接是一個獨立的文件。
十五、作業
1、將/etc/issue文件中的內容轉換為大寫后保存至/tmp/issue.out文件中
tr '[a-z]' '[A-Z]' < /etc/issue > /tmp/issue.out
2、將當前系統登錄用戶的信息轉換為大寫后保存至/tmp/who.out文件中
w | tr '[a-z]' '[A-Z]' > /tmp/who.out
3、一個linux用戶給root發郵件,要求郵件標題為”help”,郵件正文如下:
Hello, I am 用戶名,the system version is here,pleasehelp me to check it ,thanks!
操作系統版本信息
echo -e "Hello, I am `echo $USER`,the system version is here,pleasehelp me to check it ,thanks! \n`cat /etc/centos-release`" | mail -s "help" root
4、將/root/下文件列表,顯示成一行,并文件名之間用空格隔開
ls -m | tr "," " "
5、file1文件的內容為:”1 2 3 4 5 6 7 8 9 10” 計算出所有數字的總和
echo "1 2 3 4 5 6 7 8 9 10" > file
echo $(tr ' ' '+' <file) | bc
6、刪除Windows文本文件中的'^M'字符
先上傳一個Windows文本Windows.txt
cat Windows.txt | tr -d "\r" > new_file
7、處理字符串“xt.,l 1 jr#!$mn2 c*/fe3 uz4”,只保留其中的數字和空格
echo xt.,l 1 jr#!$mn2 c*/fe3 uz4 | tr -c -d '[:digit:][:space:]'
8、將PATH變量每個目錄顯示在獨立的一行
echo $PATH | tr ':' '\n'
9、刪除指定文件的空行
grep -v '^$' file > file.new
10、將文件中每個單詞(字母)顯示在獨立的一行,并無空行
單詞
[root@localhost ~]# cat touch.txt
hello linux ni hao linux pao
[root@localhost ~]# cat touch.txt | tr " " "\n"
字母
[root@localhost ~]# cat touch.txt | tr -d ' ' | grep -oP "."
原創文章,作者:pao,如若轉載,請注明出處:http://www.www58058.com/26971