1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。
cd:切換目錄命令
實例
cd [dirctory] 切換目錄 cd .. 返回上一級目錄 cd - 來回切換 cd ~ 切換到家目錄
pwd:顯示當前目錄
實例
pwd:顯示當前目錄
ls:列出目錄內容
實例與常見的使用方法
ls -ld [dirctory]或[file] ls -al 顯示所有文件包括隱藏文件 ls -i 顯示所有的文件的iNode 后面加文件名或目錄命只顯示單個iNode ls --color 以彩色形式顯示文件
alias:別名
實例
alias l='ls -l' 定義別名 alias alias=“command”
cat:查看文件的內容
實例和使用方法 cat filename 直接顯示這個文件 cat -n filename 對行進行編號 cat -b filename 對空白行不進行編號 cat > linuxsir.org.txt << EOF 注:創建linuxsir.org.txt文件; 輸入內容 EOF結束
more:查看文件的內容
用man來查看用法
less:查看文件的內容
用man來查看用法
tail:查看尾部文件內容
實例和使用方法
tail -n # filename 指定獲取后#行 tail -c # filename 指定獲取后#字節 tail -f filename 動態獲取后面追加的內容
head:查看頭部文件內容
實例和使用方法
head -n # filename 指定獲取后前#行 head -c # filename 指定獲取前#字節
split:分割文件
實例和使用方法
split -l 300 large_file.txt new_file_prefix 對與txt文本文件,可以通過指定分割后文件的行數來進行文件分割。 split -b 10m large_file.bin new_file_prefix 對于可執行文件等二進制文件,則不能通過文件行數來進行文件分割,此時我們可以指定分割大小來分隔文件。
cut:剪切命令
實例和使用方法
cut -d分隔符 -f指定字段
#: 第#個字段 #,#[,#]:離散的多個字段,例如1,3,6 #-#:連續的多個字段, 例如1-6 還可以混合使用 1-3,5 cut -b 指定字節 cut -c 指定字符
wc:統計指定文件中的字節數、字數、行數,并將統計結果顯示輸出。
實例和使用方法
wc -l filename 統計行數 wc -w filename 統計字數 wc -c filename 統計字符
sort:排序命令
實例和使用方法
sort -f filename 忽略字符大小寫 sort -r filename 逆序排序 sort -t DELIMITER filename 指定字段分隔符 sort -k# filename 以指定字段為標準排序 sort-n filename 以數值大小進行排序 sort -u filename uniq,排序后去重
uniq:去重命令
實例和使用方法
uniq -c filename 顯示每行重復出現的次數; uniq -d filename 僅顯示重復過的行; uniq -u filename 僅顯示不曾重復的行; Note: 連續且完全相同方為重復
mkdir:創建目錄
實例和使用方法
mkdir -p /dirctory/files 遞歸創建文件 mkdir -m [+-]mode files 指定權限創建文件
touch:創建文件
實例和使用方法
三個時間戳: access time:訪問時間,簡寫為atime,讀取文件內容 modify time: 修改時間, mtime,改變文件內容(數據) change time: 改變時間, ctime,元數據發生改變 touch -a file only atime touch -m file only mtime touch -t STAMP 使用指定時間,不是現在時間 [[CC]YY]MMDDhhmm[.ss] touch -c file 如果文件不存,則不予創建
mv:重命名
實例和使用方法
mv -b oldfilename newfilename 重命名之前先備份 mv oldfilename newfilename mv oldfielname1 oldfilename2 newdirctory mv -i oldfilename newfilename 目標文件已存在,覆蓋之前會詢問
cp:復制
實例和使用方法
cp file /tmp/file 復制file到/tmp下的file file可以重命名 cp -a 用來備份文件 cp -r dirctory dirctory 復制目錄的內容到另一個目錄
rm:刪除
實例和使用方法
rm -r dirctory 遞歸刪除 rm -f file 強制刪除 rm -i file 詢問刪除
ln:鏈接
實例和使用方法
ln -s file filelink 創建軟連接 ln file filehardlink 穿件硬連接
which:查看可執行文件的位置。
實例和使用方法
which command
whereis:查看文件的位置。
實例和使用方法
whereis ** 將和**文件相關的文件都查找出來 whereis -b ** 把二進制文件找出來 也就是可執行文件
locate:配合數據庫查看文件位置。并不是實時的
實例和使用方法
locate filename 會查找所有有filename的文件或目錄 用man 看
find:實際搜尋硬盤查詢文件名稱 實時
find:
實時查找工具,通過遍歷指定路徑下的文件系統完成文件查找;
語法: find [OPTION]... [查找路徑] [查找條件] [處理動作] 查找路徑:指定具體目標路徑;默認為當前目錄; 查找條件:指定的查找標準,可以文件名、大小、類型、權限等標準進行;默認為找出指定路徑下的所有文件; 處理動作:對符合條件的文件做什么操作;默認輸出至屏幕; 查找條件: 根據文件名查找: -name "文件名稱":支持使用glob *, ?, [], [^] -iname "文件名稱":不區分字母大小寫 -regex "PATTERN":以PATTERN匹配整個文件路徑字符串,而不僅僅是文件名稱; 根據屬主、屬組查找: -user USERNAME:查找屬主為指定用戶的文件; -group GRPNAME: 查找屬組為指定組的文件; -uid UserID:查找屬主為指定的UID號的文件; -gid GroupID:查找屬組為指定的GID號的文件; -nouser:查找沒有屬主的文件; -nogroup:查找沒有屬組的文件; 根據文件類型查找: -type TYPE: f: 普通文件 d: 目錄文件 l: 符號鏈接文件 s:套接字文件 b: 塊設備文件 c: 字符設備文件 p: 管道文件 組合條件: 與:-a 或:-o 非:-not, ! !A -a !B = !(A -o B) !A -o !B = !(A -a B) 找出/tmp目錄下,屬主不是root,且文件名不是fstab的文件; find /tmp \( -not -user root -a -not -name 'fstab' \) -ls find /tmp -not \( -user root -o -name 'fstab' \) -ls 根據文件大小來查找: -size [+|-]#UNIT 常用單位:k, M, G #UNIT: (#-1, #] -#UNIT:[0,#-1] +#UNIT:(#,oo) 根據時間戳: 以“天”為單位; -atime [+|-]#, #: [#,#+1) +#: [#+1,oo] -#: [0,#) -mtime -ctime 以“分鐘”為單位: -amin -mmin -cmin 根據權限查找: -perm [/|-]MODE MODE: 精確權限匹配 /MODE:任何一類(u,g,o)對象的權限中只要能一位匹配即可; -MODE:每一類對象都必須同時擁有為其指定的權限標準; 處理動作: -print:默認的處理動作,顯示至屏幕; -ls:類似于對查找到的文件執行“ls -l”命令; -delete:刪除查找到的文件; -fls /path/to/somefile:查找到的所有文件的長格式信息保存至指定文件中; -ok COMMAND {} \; 對查找到的每個文件執行由COMMAND指定的命令; 對于每個文件執行命令之前,都會交互式要求用戶確認; -exec COMMAND {} \; 對查找到的每個文件執行由COMMAND指定的命令; {}: 用于引用查找到的文件名稱自身; 注意:find傳遞查找到的文件至后面指定的命令時,查找到所有符合條件的文件一次性傳遞給后面的命令; 有些命令不能接受過多參數,此時命令執行可能會失?。涣硪环N方式可規避此問題: find | xargs COMMAND
2、bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容及其示例演示。
bash的工作特性之命令執行狀態返回值
成功:0 失?。?-255 使用echo $! 查看
命令行展開
~: 展開為用戶的主目錄 ~USERNAME:展開為指定用戶的主目錄 {}:可承載一個以逗號分隔的列表,并將其展開為多個路徑 /tmp/{a,b} = /tmp/a, /tmp/b /tmp/{tom,jerry}/hi = /tmp/tom/hi, /tmp/jerry/hi
3、請使用命令行展開功能來完成以下練習:
(1)、創建/tmp目錄下的:a_c, a_d, b_c, b_d
mkdir -r {a,b}_{c,d}
(2)、創建/tmp/mylinux目錄下的:
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}}
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、文件的元數據信息有哪些,分別表示什么含義,如何查看?如何修改文件的時間戳信息。
[root@king-liu mylinux]# stat bin 使用stat查看 File: `bin' 文件 Size: 4096 大小 Blocks: 8 塊大小 IO Block: 4096 輸入輸出塊大小 directory Device: 802h/2050d設備 Inode: 2883666 iNode號 Links: 2 鏈接 Access: (0755/drwxr-xr-x) 權限 Uid: ( 0/ root) Gid: ( 0/ root) Access: 2016-06-19 06:42:46.032726013 +0800 Modify: 2016-06-19 06:42:46.032726013 +0800 Change: 2016-06-19 06:42:46.032726013 +0800 三個時間戳: access time:訪問時間,簡寫為atime,讀取文件內容 modify time: 修改時間, mtime,改變文件內容(數據) change time: 改變時間, ctime,元數據發生改變 touch -a :僅更新Access time(同時更新Change為current time) touch -m:僅更新Modify time(同時更新Change為current time) touch -c:不創建新文件 touch -t:使用指定的時間更新時間戳(僅更改Access time與Modify time,Change time更新為current time) 例:touch -t [[CC]YY]MMDDhhmm[.ss] filename
5、如何定義一個命令的別名,如何在命令中引用另一個命令的執行結果?
alias commandname=“command option ....” | 使用管道命令可以引用另一個命令
6、顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間至少出現一位數字(可以有其它字符)的文件或目錄。
ls -d /var/l*[0-9]*[[:lower:]]
7、顯示/etc目錄下,以任意一個數字開頭,且以非數字結尾的文件或目錄。
ls -d /etc/[0-9]*[^0-9]
8、顯示/etc目錄下,以非字母開頭,后面跟了一個字母以及其它任意長度任意字符的文件或目錄。
ls -d /etc/[^a-z][a-z]*
9、在/tmp目錄下創建以tfile開頭,后跟當前日期和時間的文件,文件名形如:tfile-2016-05-27-09-32-22。
touch tfile-"$(date +%F-%H-%M-%S)"
10、復制/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中。
cp -r /etc/p*[^0-9] /tmp/mytest1
11、復制/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中。
cp -r /etc/*.d /tmp/mytest2
12、復制/etc/目錄下所有以l或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中。
cp /etc/[1mn]*.conf /tmp/mytest3
原創文章,作者:N19_king,如若轉載,請注明出處:http://www.www58058.com/18607
排版很好,如果可以在寫一些例子說明一下會更好,加油!