這篇文檔實用性很強,它不是講某個命令的參數具體含義,而是從實際
工作的角度來考慮,完成什麼工作需要什麼指令。
文件系統操作是最基本的操作,沒有文件系統,操作系統根本就運行不了。
下面是我們經常要做的一些事情。在下面具體參數意義不解釋,要了解這些
可以查詢該命令幫助文檔
1. 創建目錄
mkdir
NO1. 在當前路徑創建一級目錄
[root@rehat root]# mkdir test
NO2. 在當前路徑創建多級目錄
[root@rehat root]# mkdir -p mytest/test1/test1_1
NO3. 在創建目錄的同時給新建的目錄賦權限
[root@rehat root]# mkdir -m 777 testmod
這樣任何人對此目錄都有任何權限
2. 復制文件與文件夾
cp
NO1. 復制指定目錄的文件到當前目錄,並重命名
[root@rehat root]# cp ~/.bashrc bashrc_bak
NO2. 強制復制指定目錄的文件到當前目錄,而不管當前目錄是否含有該文件
[root@rehat root]# cp -f ~/.bashrc bashrc
NO2. 復制指定目錄到當前目錄
[root@rehat root]# cp -r /root/test .
[root@rehat root]# cp -r /root/test/ .
兩者效果一樣,在復制目錄時,會將源路徑的最後一級目錄全部復制過去,包括它本身。
NO3. 復制指定目錄的文件到指定目錄
[root@rehat root]# cp ~/.bashrc /bak/.bashrc
NO4. 在復制時將源文件的全部屬性也復制過來。若不指定參數,則目標文件與源文件屬性可能不一致。
[root@rehat root]# cp -a ~/.bashrc /bak/.bashrc
NO5. 若兩個文件夾要保證同步,一個文件的改了,另一個文件也跟著改,但是要保證兩個文件的文件都是最新的。
[root@rehat root]# cp -u /src/.bashrc /bak_src/bashrc
3. 建立鏈接文件,包括硬鏈接與軟鏈接
ln
NO1. 建立類似於 Windows 的快捷方式
[root@rehat root]# ln -s test.txt test.txt_slnk
NO2. 當想備份一個文件,但空間又不夠,則可以為該文件建立一個硬連接。這樣,就算原文件刪除了,只要該
鏈接文件沒被刪除,則在存儲空間裡還是沒有被刪除。
[root@rehat root]# ln -l test.txt test.txt_hlnk
4. 刪除文件
rm
NO1. 刪除當前目錄的文件
[root@rehat root]# rm test.txt
NO2. 強制刪除當前目錄的文件,不彈出提示
[root@rehat root]# rm -f test.txt
NO3. 強制刪除整個目錄,包括目錄與文件全部刪除,需要管理員權限
[root@rehat root]# rm -r -f test
5. 刪除文件夾
rmdir
NO1. 刪除一個空目錄
[root@rehat root]# rmdir emptydir
NO2. 刪除多級空目錄
[root@rehat root]# rmdir -p emptydir/d1/d11
6. 掛載文件系統與卸載文件系統
mount / umount
NO1. 掛載光驅
[root@rehat root]# mount -t iso9660 /dev/cdrom /mnt/cdrom
NO2. 掛載光驅,支持中文
[root@rehat root]# mount -t iso9660 -o codepage=936,iocharset=cp936 /dev/cdrom /mnt/cdrom
NO3. 掛載 Windows 分區,FAT文件系統
[root@rehat root]# mount -t vfat /dev/hda3 /mnt/cdrom
NO4. 掛載 Windows 分區,NTFS文件系統
[root@rehat root]# mount -t ntfs -o iocharset=cp936 /dev/hda7 /mnt/had7
No5. 掛載 ISO 文件
[root@rehat root]# mount -o loop /abc.iso /mnt/cdrom
NO6. 掛載 軟驅
[root@rehat root]# mount /dev/fd0 /mnt/floppy
NO7. 掛載閃盤
[root@rehat root]# mount /dev/sda1 /mnt/cdrom
NO8. 掛載 Windows 操作系統共享的文件夾
[root@rehat root]# mount -t smbfs -o username=guest,password=guest //machine/path /mnt/cdrom
NO9. 顯示掛載的文件系統
[root@rehat root]# mount
[root@rehat root]# cat /etc/fstab 顯示系統啟動自動加載的文件系統
[root@rehat root]# cat /etc/mtab 顯示當前加載的文件系統
7. 檢查磁盤空間
df
NO1. 顯示所有存儲系統空間使用情況,同時顯示存儲系統的文件系統類型s
[root@rehat root]# df -aT
NO2. 顯示指定文件系統的空間使用情況
[root@rehat root]# df -t ext3
NO3. 人性化顯示各存儲空間大小
[root@rehat root]# df -ah
NO4. 有時候掛載了網絡文件系統,若只想看本機的文件系統用如下命令
[root@rehat root]# df -ahlT
NO5. 查看某個文件系統的磁盤使用情況
[root@rehat root]# df -h /dev/cdrom
8. 檢查目錄空間大小
du
NO1. 查看當前文件夾大小
[root@rehat root]# du -sh
NO2. 查看當前文件及文件中包含的子文件夾大小
[root@rehat root]# du -ch
NO3. 查看文件的大小
[root@rehat root]# du -h test1.txt
NO4. 同時查看多個文件的大小
[root@rehat root]# du -h test1.txt test2.txt
9. 磁盤碎片整理
linux 下基本上不用碎片整理,它每隔一段時間會自動整理
10. 創建/改變文件系統
NO1. 創建文件系統類型
[root@rehat root]# umount /dev/sdb1
[root@rehat root]# mkfs -t ext3 /dev/db1
[root@rehat root]# mount /dev/sdb1 /practice
11. 改變文件或文件夾權限
chmod
NO1. 將自己的筆記設為只有自己才能看
[root@rehat root]# chmod go-rwx test.txt
或者
[root@rehat root]# chmod 700 test.txt
NO2. 同時修改多個文件的權限
[root@rehat root]# chmod 700 test1.txt test2.txt
NO3. 修改一個目錄的權限,包括其子目錄及文件
[root@rehat root]# chmod 700 -R test
12. 改變文件或文件夾擁有者
chown 該命令只有 root 才能使用
NO1. 更改某個文件的擁有者
[root@rehat root]# chown jim:usergroup test.txt
NO2. 更改某個目錄的擁有者,並包含子目錄
[root@rehat root]# chown jim:usergroup -R test
13. 查看文本文件內容
cat
NO1. 查看文件內容,並在每行前面加上行號
[root@rehat root]# cat -n test.txt
NO2. 查看文件內容,在不是空行的前面加上行號
[root@rehat root]# cat -b test.txt
NO3. 合並兩個文件的內容
[root@rehat root]# cat test1.txt test2.txt > test_new.txt
NO4. 全並兩具文件的內容,並追回到一個文件
[root@rehat root]# cat test1.txt test2.txt >> test_total.txt
NO5. 清空某個文件的內容
[root@rehat root]# cat /dev/null > test.txt
NO6. 創建一個新的文件
[root@rehat root]# cat > new.txt 按 CTR
L + C 結束錄入
14. 編輯文件文件
vi
NO1. 新建檔案文件
[root@rehat root]# vi newfile.txt
NO2. 修改檔案文件
[root@rehat root]# vi test.txt test.txt 已存在
NO3. vi 的兩種工作模式:命令模式,編輯模式
NO4. 進入 vi 後為命令模式,按 Insrt 鍵進入編輯模式
按 ESC 進入命令模式,在命令模式不能編輯,只能輸入命令
NO5. 命令模式常用命令
:w 保存當前文檔
:q 直接退出 vi
:wq 先保存後退出
15. 路徑操作
cd pwd
NO1. 顯示當前路徑
[root@rehat root]# pwd
NO2. 返回用戶主目錄
[root@rehat root]# cd
NO3. 改變到其它路徑
[root@rehat root]# cd /etc
NO4. 返回到上一級目錄
[root@rehat root]# cd ..
NO5. 返回到根目錄
[root@rehat root]# cd /
16. 查詢文件或文件夾
find
NO1. 查找當前用戶主目錄下的所有文件
[root@rehat root]# find ~
NO2. 讓當前目錄中文件屬主具有讀、寫權限,並且文件所屬組的用戶和其他用戶具有讀權限的文件;
[root@rehat root]# find . -perm 644 -exec ls -l {} \;
NO3. 為了查找系統中所有文件長度為0的普通文件,並列出它們的完整路徑;
[root@rehat root]# find / size 0 -type f -exec ls -l {} \;
NO4. 查找/var/logs目錄中更改時間在7日以前的普通文件,並在刪除之前詢問它們;
[root@rehat root]# find /var/logs -mtime +7 -type f -ok rm -i {} \;
NO5. 為/找系統中所有屬於root組的文件;
[root@rehat root]# find / -group root -exec ls -l {} \;
NO6. find命令將刪除當目錄中訪問時間在7日以來、含有數字後綴的admin.log文件
[root@rehat root]# find . -name "admin.log[0-9][0-9][0-9]" -atime -7 -ok rm { } \;
NO7. 為了查找當前文件系統中的所有目錄並排序
[root@rehat root]# find . -type d | sort
NO8. 為了查找系統中所有的rmt磁帶設備
[root@rehat root]# find /dev/rmt
17. 顯示文件/文件夾清單
ls / dir
NO1. 顯示所有文件,包括以.開頭的隱含文件
[root@rehat root]# ls -a
NO2. 顯示文件的詳細信息
[root@rehat root]# ls -l
NO3. 顯示當前目錄及所有子目錄信息
[root@rehat root]# ls -Rl
NO4. 以時間排序顯示目錄,這在找最新文件有用
[root@rehat root]# ls -tl
NO5. 以文件大小排序
[root@rehat root]# ls -Sl
NO6. 顯示文件大小,並按大小排序
[root@rehat root]# ls -s -l -S
18. 移動或更改文件/文件夾名稱
mv 與 cp命令用法相似
NO1. 若移動目標文件已存在,要在移動之前,先備份原來的目錄文件
[root@rehat root]# mv -b test.txt test2/
這樣在 test2 下將有兩個文件 test.txt 及 text.txt~
其中 test.txt~ 是備份文件,test.txt是新的文件
NO2. 若移動目標文件已存在,但不想彈出是否覆蓋的提示,直接覆蓋
[root@rehat root]# mv -f test.txt test2/
NO3. 當源與目標都擁有同一個文件,若源文件比目標新則移動,否則不移動
[root@rehat root]# mv -u test.txt test2/
NO4. 更改文件名稱
[root@rehat root]# mv test.txt test2.txt
NO5. 更改目錄名稱
[root@rehat root]# mv /test2 /test2_2