吳宏東 - 記於2018年06月29日 - 博客 https://segmentfault.com/u/wu...php
[-] 普通文件;
[d] 目錄;
[l] 符號連接;
[c] 字符設備;
[b] 塊設備;
[s] 套接字;
[p] 命名管道;html
*.txt 文本文件;
*.conf 配置文件;
.html/.xml/.yml/.sql HTML/XML/YAML/SQL文件;
.c/.cpp C/C++語言源程序文件;
.so/.ko/*.lib 模塊文件、庫文件;
.sh/.php/.py/.pl/*.rb Shell/PHP/Python/Perl/Ruby腳本文件;
*.rpm RPM文件;
*.tar tar 存檔文件;
.gz/.bz2/*.xz 由gzip/bzip2/xz生成的壓縮文件;
*.lock 用來表示某個程序或某種服務正在運行的鎖文件;
*~備份文件;linux
cmd [-options] <arguments>;
單字符參數前使用一個減號(-),單詞參數前使用兩個減號(--);
多個單字符參數前可以使用一個減號;正則表達式
以.開頭的文件或目錄是隱藏的;
[*]匹配任何字符和任何數字的字符;
[?]匹配任何單字符;
[...]匹配任何包含在括號內的單字符;
[!...]匹配任何不包含在括號內的單字符;sql
# 列出當前目錄下全部c語言源文件 ls *.c; # 列出/home目錄下全部子目錄下全部c語言源文件 ls /home/*/*.c; # 列出當前目錄下全部以test開頭,隨後一個字符任意的.txt文件 ls test?.txt; # 列出當前目錄下首字符是a或b或c的全部文件 ls [abc]*; # 列出當前目錄下首字符不是a或b或c的全部文件 ls [!abc]*; # 列出當前目錄下首字符是字母的全部文件 ls [a-zA-Z]*;
硬連接:兩個文件指向硬盤上一個存儲空間,對兩個文件中任何一個進行修改都會影響另外一個文件,刪除其中一個硬盤空間不會釋放,連接數會減1;
軟連接:建立一個文件指向另外一個文件,沒法對軟連接文件進行內容修改,刪除軟連接文件的話,對源文件不影響,刪除源文件的話,軟連接文件會找不到源文件成爲死連接;shell
# 建立硬連接文件hard ln source hard; # 建立軟鏈接文件soft ln -s source soft;
設備文件指計算機外圍硬件裝置,即除了CPU和內存之外的設備;
全部設備文件都存放在/dev目錄下;
/dev/sd* 硬盤設備,sda1表示第一塊硬盤的第一個分區,sdb2表示第二塊硬盤的第二個分區;
/dev/sr0 光驅設備、移動設備;
/dev/console 系統控制檯;
/dev/tty* 本地終端設備;
/dev/pts/* 僞終端設備;
/dev/ppp* ppp設備,(Point to Point)協議設備,傳統的撥號上網;
/dev/lp* 並口設備,lp0表示第一個並口設備,lp1表示第二個並口設備;
/dev/null 空設備,也稱爲「黑洞」,全部寫入它的內容都將丟失,用於屏蔽終端輸出;
/dev/zero 零設備,能夠產生不斷的二進制零流,用於建立指定長度的空文件;segmentfault
/bin 存放二進制可執行程序;
/sbin 存放二進制可執行程序,可是隻有root用戶才能訪問;
/dev 存放設備文件;
/boot 存放系統引導文件;
/etc 存放系統配置文件;
/home 存放用戶文件根目錄;
/lib+lib64 存放共享庫和內核模塊;
/lost+found 存放系統檢查結果,發現不合法的文件都會存放在這裏,一般是空的,除非系統遭受異常損壞;
/mnt 臨時文件系統的掛載點目錄;
/media 即插即用的存儲設備的掛載點自動在這個目錄下建立;
/opt 第三方軟件的存放目錄;
/proc 是一個虛擬的文件系統,存放當前內存的映射,用於在不重啓機器的狀況下管理內核;
/root 超級用戶目錄;
/srv 系統對外提供服務的目錄;
/tmp 存放各類臨時文件;
/usr 存放系統應用程序;
/var 存放隨時須要修改的文件,如系統日誌、脫機工做目錄等;windows
# 顯示當前目錄下的全部文件和目錄(包含隱藏的) ls -a; # 以長格式列表顯示 ls -l; # 以遞歸的方式顯示當前目錄及子目錄下的全部內容 ls -R; # 僅顯示/home目錄自己,不顯示目錄下的內容 ls -dl /home; # 顯示當前目錄的全路徑 pwd; # 建立目錄連同子目錄一塊兒建立 mkdir -p /home/wuhd/test; # 建立文件test.txt touch test.txt; # 進入/home目錄 cd /home; # 進入當前目錄 cd .; # 返回上一級目錄 cd ..; # 返回上二級目錄 cd ../..; # 顯示當前目錄以及子目錄的樹形結構 tree; # 顯示/home目錄下的2級的樹形結構 tree -L 2 /home; # 複製/home下某個文件到/opt目錄下 cp /home/test /opt/test; # 複製/home下全部文件到/opt目錄下 cp /home/* /opt; # 移動/home下某個文件到/opt目錄下 mv /home/test /opt/test; # 強制刪除文件 rm -f /home/test; # 刪除當前目錄下的全部隱藏文件 rm .*; # 強制刪除wuhd目錄下的全部內容 rm -rf /tmp/wuhd; # 在當前目錄及其子目錄下查找以yum開頭的文件 find . -name 'yum*'; # 在當前目錄及其子目錄下查找屬主wuhd的文件 find . -user "wuhd"; # 僅在當前目錄下查找以yum開頭的文件 ls yum*;
正則表達式:bash
^ 匹配首字符,如^x,以字符x開始的字符串; $ 匹配尾字符,如x$,以字符x結尾的字符串; . 匹配任意一個字符,如l..e,可匹配love,life; ? 匹配任意一個可選字符,如xy?,可匹配x,xy; * 之前面一個字符匹配零次或屢次重複,如xy*,可匹配x,xy,xyy; + 之前面一個字符匹配一次或屢次重複,如xy+,可匹配xy,xyy,xyyy; [...] 匹配任意一個字符,如[xyz],可匹配x,y,z; | 以或邏輯匹配多個匹配,如abc|xyz,可匹配abc或xyz; \ 轉義字符,如\*,可匹配字符*;
# 正序查看文件 cat /etc/passwd; # 顯示行號 cat -n /etc/passwd; # 倒序查看文件 tac /etc/passwd; # 分屏顯示,空格鍵、回車鍵翻閱,q退出 more /var/log/messages; # 分屏顯示,空格鍵、回車鍵、PgUp、PgDn翻閱,q退出 less /var/log/messages; # 顯示前4行內容 head -10 /var/log/messages; # 顯示後4行內容 tail -10 /var/log/messages; # 行數 字數 字符數 文件名 wc /var/log/messages; # 對文本內容排序(以ASCII碼順序) sort txt; # 相同行只輸出一行 sort -u txt; # 對文本內容排序(以ASCII碼逆序) sort -r txt; # 對文本字符串數值排序 sort -n txt; # 比較文件差別 diff httpd.conf httpd.conf.bak; # windows替換爲linux sed -i 's/windows/linux/g' txt; # 刪除每行結尾的空格 sed -i 's/*$//' txt; # 在每行行首加上"> ' sed -i 's/^/> /' txt; # 在每行行首去掉"> " sed -i 's/^> //' txt; # 刪除全部空白行 sed -i '/^$/d' txt;
# 將111文件夾打包成111.tar tar -cvf 111.tar 111; # 解包 tar -xvf 111.tar; # 將111文件夾用gzip打包壓縮成111.tar.gz tar -zcvf 111.tar.gz 111; # 解壓縮 tar -zxvf 111.tar.gz; # 將111文件夾用bzip打包壓縮成111.tar.bz tar -jcvf 111.tar.bz 111; # 解壓縮 tar -jxvf 111.tar.bz; # 將111文件夾用xz打包壓縮成111.tar.xz tar -Jcvf 111.tar.xz 111; # 解壓縮 tar -Jxvf 111.tar.xz;
# 顯示進程樹 pstree; # 顯示系統運行時間、用戶數、平均負載 uptime; # 顯示文件信息 stat txt; # 顯示在線的登陸用戶 who; # 顯示用戶本身的身份 whoami; # 查找程序ls的位置 whereis ls; # 顯示文件或目錄的大小,不顯示目錄中每一個文件大小 du -sh /; # 顯示1949年日曆 cal 1949; # 顯示1949年10月日曆 cal 10 1949;
普通模式:less
O 上開新行; o 下開新行; I 行首; A 行尾; /str 向右搜索str; ?str 向左搜索str; n 下一個; N 反向下一個; u 撤銷操做; Z+Z 保存退出; Z+Q 不保存退出; <ESC> 退出插入模式; yy 複製當行內容; p 粘貼複製的內容;
命令模式:
:set number 顯示行號; :set nonumber 不顯示行號; :n 跳到第n行; :d 刪除當前行; :n1,n2 d 刪除從n1行到n2行內容; :n1,n2 w file 保存從n1行到n2行內容到文件file; :!cmd 執行shell命令cmd; :r!cmd 執行cmd命令並將輸出的內容寫入到光標位置; :q 退出vi; :wq 保存退出vi; :q! 強制不保存退出vi;