【魔德科技】【Linux學習筆記】第2章 文件、目錄管理

本筆記由魔德科技(http://modekeji.cn)提供


2.1系統目錄結構(上)
每個用戶都有一個家目錄,root用戶家目錄/root/
密鑰登錄時,應該在相應家目錄下創建authorized_keys文件,普通用戶家目錄爲:/home/username/,則創建/home/username/.ssh/authorized_keys,root用戶家目錄爲/root/,則創建/root/.ssh/authorized_keys。其中文件名anthorized_keys原則上是不能更改的,若非要換成其他的文件名,需要去到配置文件/etc/ssh/sshd_config中更改定義。
useradd username創建新用戶。
tree 樹形顯示目錄及子目錄(先要安裝yum install -y tree)。
man command 獲得command的幫助信息。
/bin/:/sbin/:/usr/bin/:/usr/sbin/ 存放常用命令,PATH環境變量。
/sbin/(superbin) 存放root用戶使用的命令。
/boot/ 系統啓動相關的文件,如grab。
/dev/ Linux系統中特有的一些設備文件,如光盤、鼠標、鍵盤等。
/etc/ 系統配置文件。
/home/ 用戶家目錄。
/lib/:/lib64/ 存放系統庫文件,類似於windows中的.dll文件。
ldd command 查看command命令所依賴的庫文件,如ldd /bin/ls。


2.2系統目錄結構(下)
從centos7開始,不再區分32位和64位,都是64位。Centos6及之前版本有版本位的區別。
/media/ 媒介目錄,默認爲空。
/mnt/ 臨時掛載目錄,默認爲空。
/opt/ 空目錄。
/proc/ 系統啓動進程。會生成PID(進程ID),每一個進程都有一個目錄。cwd進程路徑。
/root/ root用戶的家目錄。
/run/ 進程產生的一些臨時文件,關機就消失。
/srv/ 空目錄,存放一些服務service產生的文件。
/sys/ 存放一些系統內核相關的文件,平時不關注。
/tmp/ 臨時目錄,權限很大,任何用戶都可以寫、刪、更改。
/usr/ 用戶的一些文件,用戶的一些服務會存放在/usr/local/下。
/var/
/var/log/ 存放系統日誌。/var/log/messages存放系統總日誌。
/var/run/ 存放進程PID。


2.3ls命令
參數:
-l 列出文件詳細信息。
-i 列出inode號碼(硬鏈接)。
-h 更易讀地顯示文件大小。
-a 顯示全部的文件,包括隱藏文件(以 . 開頭的文件)。
-t 依時間排序,而不是用文件名排序。
-d 只列出目錄本身,不列出目錄內的文件數據。
man ls查看系統提供的ls說明文件。
ll<=>ls -l
which ll 查看,得到:
alias ll=’ls -l --color=auto’ alias別名。


2.4文件類型
ls -l查看文件,得到:
---------- 1 root root 2134 3月25 20:35 install.log
文件權限 連接數 所有者 所屬組 大小 最後被修改時間 文件名
文件權限(10位):----------
第一位:
d表示目錄。
_表示文件,普通文件可用cat查看。
c表示字符串設備(鼠標、鍵盤等)。
l表示軟鏈接文件,指向真正的文件,相當於windows的快捷方式。
b表示塊(block)設備,光盤、磁盤等。
s表示socket文件,用於系統不同進程之間的通信。tcpip(ip+端口)用於兩臺機器之間的通信,而socket文件用於同一機器兩個進程之間的通信。


2.5alias命令
which filename 查看filename文件所在路徑。
which command 查看命令所在路徑,可查看別名。
alias 查看系統中所有的別名。
echo $PATH 查看PATH環境變量所包含路徑。
which 是在$PATH所包含的路徑中去查詢。
alias name=’command’,命名別名,如alias ll=’ls -l --color=auto’
unalias name 取消別名,如unalias ll


2.6相對和絕對路徑
絕對路徑:從根開始。
相對路徑:相對於當前路徑。
pwd顯示當前路徑
cd change directory改變目錄


2.7cd命令
cd -返回上次目錄。
cd <=>cd ~ 進入當前用戶的家目錄。
cd .. 進入上級目錄


2.8創建和刪除目錄mkdir rmdir
mkdir 參數 dirname創建目錄。
參數:
-p:級聯創建所需要的目錄。
rmdir 參數 dirname刪除目錄。
參數:
-p:級聯刪除空目錄。
tree dirname樹形顯示目錄。


2.9rm命令
touch filename可創建新文件。
rm 參數 filename刪除文件。
參數:
-f 強制刪除,不報錯。
-r 級聯刪除目錄及文件。
-v 可看到刪除過程。
!tree使用命令歷史裏上一次以 tree開頭的命令。


2.10環境變量PATH
PATH環境變量是which查找的路徑。
直接定義的變量,如PATH=$PATH:/tmp/,關機後失效。若要使其永久生效,需要將PATH=$PATH:/tmp/配置到/etc/profile中。


2.11cp命令
cp 參數 源文件(源目錄) 目標文件(目標目錄)
參數:
-r 可拷貝目錄(拷貝目錄的時候末尾加斜槓)。
-i 交互,會詢問,安全選項。
which cp
alias cp=’cp -i’
/usr/bin/cp
若不要詢問,用/usr/bin/cp命令。
!$:表示上一條命令的最後一個參數。如:
cd /tmp/
tree !$<=>tree /tmp/
拷貝目錄的時候,若目標目錄已經存在時,將源目錄直接放到目標目錄下去,會詢問是否覆蓋;若目標目錄不存在,將源目錄拷貝過來,並改名字。


2.12mv命令
mv 參數 源文件(源目錄) 目標文件(目標目錄)
源文件與目標文件在同一目錄時,相當於重命名。
若目標已經存在時,詢問是否覆蓋。
移動目錄:
目標目錄不存在時,相當於改名字。
目標目錄存在時,將源目錄放到目標目錄之下去。


2.13文檔查看cat more less head tail
cat 查看文內容.
tac 反向查找的文件內容。
wc -l filename 查看文件行數。
>> 追加重定向,將前面的內容追加到後面文件裏。
more filename Ctrl+F/空格Space往下翻頁,Ctrl+B往上翻頁。
less filename Ctrl+F/空格Space往下翻頁,Ctrl+B往上翻頁。支持方向鍵上下移動。
在查看文件內,
/char,從前往後定位char;
?char,從後往前定位char。
n繼續往下定位;N繼續往反方向定位。
g定位到行首;G定位到行尾。
head -n X fileneme 查看文件前X行(head fileneme 默認10行)。
tail -n X filename 查看文件後X行(tail fileneme 默認10行)。
tail -f fileneme 動態顯示文件內容。


2.14文件或目錄權限chmod
— | — — — | — — — | — — — | .(有點受制/無點不受制)
文件類型|所有者權限|所屬組權限|其他人權限|是否受制於selinux
權限位:— — —對應於rwx
可讀r=4,可寫w=2,可執行x=1,相加得到相應用戶或組的權限。
chmod (參數) XXX filename/dir 修改文件/目錄權限爲XXX。XXX也可以表示爲:u=rwx,g=rw,o=rw,根據實際情況設置相應權限位。也可以用a+x(o+x,g+x,o+x)表示:a=all(ugo),指在所有的權限上都加上x權限。同時a-x,也是可以使用的。
參數:
-R 遞歸更改目錄及其子目錄權限。


2.15更改所有者和所屬組chown
chown username filename 更改所有者
chgrp group filename 更改所屬組
chown username:group filename 同時更改所有者和所屬組,可省略所有者,只更改所屬組(冒號:不能省略)。
可添加-R參數,目錄遞歸更改。


2.16umask
默認權限umask,默認0022(022)
文件666(rw-rw-rw-)-022(----wx-wx)
目錄777(rwxrwxrwx)-022(----wx--wx)
運行umask,可查看當前用戶的umask值,可添加-S參數。
umask 0XXX 可設置umask值,前面的0可省略。


2.17隱藏權限lsattr_chattr
chattr [+-=]參數 filename/dir 增加隱藏權限。
lsattr [+-=]參數 filename/dir 查看隱藏權限(可添加-R參數目錄遞歸查看)。
+:增加一個隱藏權限。
-:減去一個隱藏權限。
=:更改爲後面接的隱藏權限。
參數:
i 使文件不能刪除,改名,寫入等操作,僅root可設置該屬性。
a 使文件只能增加數據,不能刪除,不能修改,僅root可設置該屬性。


2.18特殊權限set_uid
set_uid權限(S權限),使用戶在操作文件的瞬間,臨時擁有所有者的身份,只有二進制文件設置該權限纔有意義。系統中只有/etc/passwd具有該屬性,顯示在所有者權限的x位,顯示爲S或s。
S:無x權限
s:S+x
其實S本身也具有x的權限。


2.19特殊權限set_gid
set_gid權限(S權限),使用戶在操作文件的瞬間,臨時擁有所屬組的身份,可作用於文件或目錄。該屬性顯示在所屬組權限的x位,顯示爲S或s。
當給目錄設置了set_gid之後,在該目錄下創建文件或目錄時,所創建的文件或子目錄的所屬組會跟隨父級目錄。


2.20特殊權限stick_bit
stick_bit權限(t權限),防刪除位。作用於目錄的權限,在該目錄下,誰的文件誰做主,除了所有者和root用戶外,其他用戶可以更改但無法刪除。系統中/tmp/具有該屬性。該屬性顯示在其他人權限的x位,顯示爲t。該權限由父級目錄決定(對文件或目錄的刪除權限由父級目錄決定)


2.21軟鏈接文件
ln -s 源文件 目標文件 設置源文件的軟鏈接文件。
做軟鏈接儘量使用絕對路徑


2.22硬鏈接文件
ln 源文件 目標文件 相當於創建了一個具有相同inode號的文件,源文件與目標文件相互爲硬鏈接。不會佔用多餘的空間。
只能對文件做硬鏈接,不支持目錄,且做硬鏈接不能跨分區。


2.23find命令(上)
查找:which、whereis、locate
updatedb 可手動更新locate查詢數據庫
快捷鍵:
Ctrl+C:取消執行。
Ctrl+L:光標定位到第一行。
Ctrl+D:往後一個一個刪除。
Ctrl+U:往前全部刪除。
Ctrl+E:光標跳到最後面,同End鍵。
Ctrl+A:光標跳到最開始,同Home鍵。


2.24find命令(中)
find PATH 參數條件 查找符合條件的文件或目錄。
參數:
-type 後接類型:文件f,目錄d,連接文件l,設備文件b或c等。
-name 後接文件名,支持正則。
-mtime modification time,最近的文件內容被更改的時間。
-ctime status time,最近的文件狀態被更改的時間。
-atime access time,最近的文件內容被訪問的時間。
對於幾個時間參數均有下列用法:
-mtime -1 指文件被更改時間在一天以內。
-mtime +1 指文件被更改時間在一天以上。
-mmin -60 指文件被更改時間在60min以內。
可跟連續多個判斷條件,表示並且;用-o連接,表示或者。
-size [+-] SIZE 查找比SIZE還大(+)或還小(-)的文件。c表示byte,k表示kb(1024bytes),M表示Mb。
stat filename 查看文件信息。


2.25find命令(下)
找文件的硬鏈接(文件(非目錄),inode號大於等於2):
ls -i filename,獲得文件的inode號。
find / -inum inode號 獲得該inode號所指向的所有文件,也就是文件硬鏈接。
find PATH 參數條件 -exec ls -l {} \; 將find找到的文件放到exec後面命令的{}處執行。{}表示find找到的文件列表。本處指ls -l {}顯示find找到的文件詳細信息。注意\;不能省略,其中\表示後面是脫義字符。


2.26文件名後綴
文件名後綴不代表文件類型,權限位前的符號才表示文件類型。相同類型文件可以不具備相同後綴名,後綴名本身沒有任何意義,只是爲了方便認識。


2.27Linux和windows互傳文件
yum install -y lrzsz,需要安裝lrzsz包之後,用Xshell或者securecrt才能互傳文件。
sz filename 將文件從linux傳到windows,彈出對話框選擇目標路徑。
rz 將文件從windows傳到linux上的當前目錄下,彈出對話框選擇文件。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章