Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關實例演示
理論上,linux一切皆文件,對于linux的管理命令均算是文件管理命令。
Linux文件類型常見的有:常規文件、目錄文件、塊設備文件、字符設備文件、符號鏈接文件、命名管道、套接字文件等。
-:常規文件
[root@iZ25c28fe7fZ ~]# ls -lh checkmount.sh?-rwxr-x,r-x 1 root root 304 Jun ?5 ?2016 checkmount.sh
類似于這種以-開頭的就是常規文件
d:directory,目錄文件
[root@xlgoo /]# ls -lhdrwxr-xr-x ? ?9 root root 4.0K Jun 17 21:54 alidata
類似于這種以d開頭的就是目錄文件
b:block device,塊設備文件,支持以block為單位進行隨機訪問
[root@xlgoo dev]# ll /dev/loop1brw-rw—- 1 root disk 7, 1 Aug 30 16:39 /dev/loop1
類似于這種以b開頭的就是塊設備文件。比如硬盤、光驅等設備
c:character device,字符設備文件,支持以character為單位進行線性訪問
[root@xlgoo /]# ls -la /dev/ttycrw-rw-rw- 1 root tty 5, 0 Sep 18 17:00 /dev/tty
類似于這種以c開頭的就是字符設備文件。比如貓等串口設備
設備文件包含以下兩種設備號
Major number:主設備號,用于標識設備類型,進而確定要加載的驅動程序
Minor number:次設備號,用于標識同一類型中的不同設備
L:symblock link,符號鏈接文件
[root@xlgoo /]# ls -la /dev
lrwxrwxrwx 1 root root ? ? ? ? ?15 Aug 30 16:39 stderr -> /proc/self/fd/2
類似于這種以l開頭的就是符號鏈接文件,是通過ln -s 源文件名 新文件名產生的
P:pipe,命名管道
S:socker,套接字文件
[root@xlgoo /]# ls -lh /var/lib/mysql/mysql.sock
srwxrwxrwx 1 mysql mysql 304 Jun ?5 ?2016 /var/lib/mysql/mysql.sock
類似于這種以s開頭的就是套接字文件
了解了命令類型以后,開始說linux的文件管理類命令
pwd:printing working directory
顯示工作目錄
cd:change directory
cd [/PATH/TO/SOMEDIR]
cd:切換回家目錄
注意:bash中,~表示家目錄
cd ~:切換回自己的家目錄
cd ~USERNAME:切換至指定目錄的家目錄
cd -:在上一次所在目錄與當前目錄之間來回切換
PWD:當前工作目錄
OLDPWD:上一次的工作目錄
ls:list,列出指定目錄下的內容
ls [OPTION]… [FILE]… -a:顯示所有文件,包括隱藏文件
-A:顯示除 . ..以外的所有文件
-l:–long,長格式列表,即顯示文件的詳細屬性信息
-rw-r–r– 1 root root 1671
-:文件類型, -,d,b,c,l,s,p
rw-r–r–
rw-:文件屬主的權限
r–:文件屬組的權限
r–:其他用戶(非屬主、非屬組)的權限
1:數字表示文件被硬鏈接的次數
root:文件的屬主
root:文件的屬組 1
671:數字表示文件的大小,單位是字節
Mar 22 19:25:文件最近一次的被修改的時間
AliAqsInstall_64.sh:文件名
-h –human-readable:對文件大小單位換算,換算后的結果可能非精確值
-d:查看目錄自身而非其內部的文件列表
-r:reverse,逆序顯示
-R:recursive,遞歸顯示
cp命令:copy
源文件:目標文件
單源復制:cp [OPTION]… [-T] SOURCE DEST
多源復制:cp [OPTION]… SOURCE… DIRECTORY
cp [OPTION]… -t DIRECTORY SOURCE…
單源復制:cp [OPTION]…[-T] SOURCE DEST
如果DEST不存在,則事先創建此文件,并復制源文件的數據流至DEST中
如果DEST存在:
如果DEST是非目錄文件:則覆蓋目標文件
如果DEST是目錄文件,則先在DEST目錄下創建一個與源文件同名的文件,并復制其數據流
多源復制:cp [OPTION]… SOURCE… DIRECTORY
cp [OPTION]… -t DIRECTORY SOURCE…
如果DEST不存在,錯誤
如果DEST存在:
如果DEST是非目錄文件:錯誤
如果DEST是目錄文件,分別復制每個文件至目標目錄中,并保持原名
常用選項:
-i:交互式復制,即覆蓋之前提示用戶確認
-f:強制覆蓋目標文件
-r(-R ):遞歸復制目錄
-d:復制符號鏈接文件本身,而非其指向的源文件
-a:-dR –preserve=all,archive,用于實現歸檔
–preserv
mode:權限
ownership:屬主和屬組
timestamps:時間戳
context:安全標簽
xattr:擴展屬性
links:符號鏈接
all:上述所有屬性
mv命令:move
mv [OPTION]… [-T] SOURCE DEST
mv [OPTION]… SOURCE… DIRECTORY
mv [OPTION]… -t DIRECTORY SOURCE…
常用選項:
-i:交互式
-f:force
rm命令:remove
rm – remove files or directories
常用選項:
-i:interactive
-f:force
-r:recursive
刪除目錄:rm -rf /PATH/TO/DIR
危險操作:rm -rf /
注意:所有不用的文件建議不要直接刪除,而是移動至某個專用目錄(模擬回收站)
chmod命令
chmod [OPTION]… MODE[,MODE]… FILE…
chmod [OPTION]… OCTAL-MODE FILE…
chmod [OPTION]… –reference=RFILE FILE…
三類用戶:
u:屬主
g:屬組
o:其他
a:所有
(1)chmod [OPTION]… MODE[,MODE]… FILE…
MODE表示法:
賦權表示法:直接操作一類用戶的所有權限位
授權表示法:直接操作一類用戶的一個權限位
(2)chmod [OPTION]… OCTAL-MODE FILE…
(3)chmod [OPTION]… –reference=RFILE FILE…
選項:
-R –recursive:遞歸修改
注意:用戶僅能修改屬主為自己的那些文件權限
chown命令:
chown [OPTION]… [OWNER][:[GROUP]] FILE…
chown [OPTION]… –reference=RFILE FILE…
選項:? ? ? ? ? ? ? ? ? ? ? ?-R:遞歸修改
chgrp命令:
chgrp [OPTION]… GROUP FILE…
chgrp [OPTION]… –reference=RFILE FILE…
注意:僅管理員可修改文件的屬主和屬組
umask:文件的權限反向掩碼,遮罩碼
文件:
666-umask
目錄:
777-umask
注意:之所以文件用666去減,表示文件默認不能擁有執行權限.如果減得的結果中有執行權限,則+1
umask:023
666-023=644
777-023=754
umask命令:
umask:查看當前umask
umask MASK:設置umask
install命令
install – copy files and set attributes
單源復制:? ? ? ? ? ? install [OPTION]… [-T] SOURCE DEST
多源復制:
install [OPTION]… SOURCE… DIRECTORY
install [OPTION]… -t DIRECTORY SOURCE…
創建目錄:
install [OPTION]… -d DIRECTORY…
常用選項:
-m –mode=MODE:設定目標文件權限,默認為755
-o –owner=OWNER:設定目標文件屬主
-g –group=GROUP:設定目標文件屬組
mktemp命令:
mktemp – create a temporary file or directory
mktemp [option]… [TEMPLATE]
選項:
-d:創建臨時目錄
Bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容及其實例演示
當命令或程序執行后一般會有兩類結果
1)命令執行狀態返回值
命令或程序的返回值
舉例:輸出echo “hello wyh”,查看輸出結果
[root@xlgoo ~]# echo “hello wyh”
hello wyh
命令或程序的執行狀態結果(成功或失?。?,可通過bash的特殊變量$?查看
成功時返回:0
舉例:創建一個文件夾wyh,查看執行狀態
[root@xlgoo ~]# mkdir wyh;echo $?
0
錯誤時返回:1-255
舉例:再次創建一個文件夾wyh,查看執行狀態
[root@xlgoo ~]# mkdir wyh;echo $?
mkdir: cannot create directory `wyh’: File exists
1
2)命令行展開
~:展開為用戶的家目錄
舉例:
[root@xlgoo ~]# cd ~
[root@xlgoo ~]# pwd
/root
{}:展開為多個路徑
舉例:
[root@xlgoo ~]# mkdir -p /tmp/wyh/wyh{1,2,3}
[root@xlgoo ~]# ls /tmp/wyh/
wyh1 ?wyh2 ?wyh3
3、請使用命令行展開功能來完成以下練習:
(1)、創建/tmp目錄下的:a_c, a_d, b_c, b_d
[root@xlgoo /]# mkdir -pv {a,b}_{c,d}
mkdir: created directory `a_c’
mkdir: created directory `a_d’
mkdir: created directory `b_c’
mkdir: created directory `b_d’
(2)創建/tmp/mylinux目錄下的:
mylinux/ 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
[root@xlgoo /]# mkdir -pv /tmp/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.文件的元數據信息有哪些,分別表示什么含義,如何查看?如何修改文件的時間戳信息
文件包含兩類數據,一類叫做元數據(metadata),一類叫做數據(data)。簡單的說,數據就是文件的實際數據,而元數據就是’data about data’,關于數據的數據,它是一種結構化的數據。一般是從文件中抽取出來,用來說明文件的特征、內容等一般可用命令stat來查看文件的元數據
stat
語法:stat(選項)(參數)
選項:
-L:支持符號連接;
-f:顯示文件系統狀態而非文件狀態;
-t:以簡潔方式輸出信息;
–help:顯示指令的幫助信息;
–version:顯示指令的版本信息
參數:
文件:指定要顯示信息的普通文件或者文件系統對應的設備文件名
舉例:
File(文件名): `mylinux/’
Size(大?。? 4096 ? ? ? Blocks(文件塊數): 8 ? ? ? ? ?IO Block(IO塊大?。? 4096 ? directoryDevice(設備號): fc00h/64512d Inode(索引節點): 145940 ? ? ?Links(鏈接次數): 14
Access: (0755/drwxr-xr-x) ?Uid: ( ? ?0/ ? ?root) ? Gid: ( ? ?0/ ? ?root)
Access: 2017-09-24 16:29:10.444469896 +0800(最近訪問的時間)
Modify: 2017-09-24 16:28:44.178469896 +0800(最近改變數據的時間)
Change: 2017-09-24 16:28:44.178469896 +0800(最近改變元數據的時間)
至于修改時間戳,一般使用touch命令
touch – change file timestamps
touch [OPTION]… FILE…
-c:指定的文件路徑不存在時不予創建
-a:僅修改access time
-m:僅修改modify time
-t:STAMP
[[CC]YY]MMDDhhmm[.ss]
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/87565