天天看點

Linux基礎第四課——檔案操作

檔案的建立 touch

sudo touch 檔案1 檔案2 檔案3 #支援批量建立檔案 
sudo rm -f 檔案1 檔案2 檔案3 #支援批量建立 也支援批量删除
echo '誰動誰輸,對不起我輸了,我心動了' > 2.txt # 2.txt如果沒有自動建立 root權限 
echo '告訴你一個壞消息,什麼壞消息,我對你的想法已經不單純了' > 2.txt 這樣會将之前的内容覆寫掉 
echo '誰動誰輸,對不起我輸了,我心動了' >> 2.txt 将内容追加到指定的檔案中           

複制

檔案的檢視

cat 檔案名 #輸出内容 從前往後 重點 
tac 檔案名 #輸出内容 從後往前 

head -n 3 2.txt # 3代表行數 檢視前3行 預設顯示前10行 重點

tail -n 3 2.txt #顯示後三行 重點 
tail -f cat 2.txt #時時檢視檔案後面的内容 多用來檢視日志 ctrl+c 終止 重點

watch -d -n 秒數 cat 檔案名 # 時時顯示 有高亮 ctrl+c 終止 重點 

sudo vim 檔案名 

more 檔案名 # 從前往後檢視 空格 翻頁 回車 換行 q退出 重點 
less 檔案名 #g 首頁 G尾頁 b 向前翻頁 空格 向後翻頁 q退出 
stat 檔案名 #顯示檔案的詳細資訊 


檔案的三個時間 
atime accesstime 通路時間 
mtime modifytime 修改時間 
ctime changetime 修改狀态時間 修改中繼資料           

複制

檔案删除 rm

sudo rm 檔案名 
sudo rm -i 檔案名 #删除之前先确認 
sudo rm -f 檔案名 #強制删除 
sudo rm -rf 目錄名 # 強制并遞歸删除 
rm -rf 一定慎用            

複制

檔案的移動 mv Linux 沒有擴充名區分

在一個目錄下面 mv 其實就是重命名 
cd ~ 
mv 1.txt 666.jpg #1.txt 被重命名成 666.jpg 

将檔案移動到其它目錄 
mv 666.jpg /tmp/ #這樣到tmp目錄下面 檔案名保持不變 

mv 666.jpg /tmp/kangbazi.jpg #這樣移動 檔案名發生變化 内容不變           

複制

檔案的拷貝 cp

cp kangbazi.jpg 888.rmvb #複制一個新的檔案 

複制目錄:
cp -r 目錄/ /tmp/ 将目錄複制到tmp 
 
cp test/* /tmp/ #表示将目錄下面所有的檔案 複制到 tmp目錄下 
cp -r test/* /tmp/ #表示将目錄下 所有的檔案及子目錄複制到 tmp 下           

複制

檔案查找 find

find [路徑] [參數] [檔案名]

 -name 按照檔案名查找 
 -iname 按照檔案名查找 不區分大小寫 
 -mtime +/-n -n表示 n天以内 +n 表示超過多少天 
 -user 按照檔案所屬的使用者查找 
 -size [+/-]n[c/k/m/g] + 大于 - 小于 c位元組 
 -perm 數值比如755 #按照檔案權限進行查找 
 -maxdepth #按照深度進行查找 
 -ls 以清單的形式展示 
 
 find / -name "111" 從根目錄進行查找 
 find . -name "111" 從目前目錄查找
 find -name "111" 從目前目錄查找
 find /tmp -mtime -3 #tmp目錄下面 修改時間在3天以内的 
 
 find / -perm 755 -maxdepth 1 -ls #根目錄權限在 755并且 一級目錄 并以清單的形式展示
 find / -size +10k -maxdepth 1 -ls #根目錄 大于10k 的 一級 并且以清單的形式展示            

複制

權限 chmod

rwxr-xrw- 
756 
擁有者 所屬組 其它使用者

r 4 讀
w 2 寫
x 1 執行


600 
644
755 

u #擁有着 user
g #所屬使用者組 group
o #其它使用者 other
a #所有人 all 
+ #在原來的基礎上 增權重限
- #在原來的技術上 減權限
= #重新賦權限 

chmod o+w 1.txt #給其它使用者增加一個寫入的權限 
chmod a=rwx 1.txt #給所有使用者可讀可寫可執行的權限 
chmod g-w,o-x 1.txt #給所屬組去掉寫入的權限 給 其它使用者去掉執行的權限 
chmod o=r 1.txt #給其他使用者 賦予隻讀的權限 

sudo chmod 755 目錄名 #隻修改目錄的權限 裡邊子目錄及檔案的權限 不被修改 
sudo chmod -R 755 目錄名 #遞歸修改權限 裡邊的子目錄及檔案 權限也會跟着更改           

複制

修改檔案的擁有者 chown

更改擁有者 擁有者必須在 /etc/passwd 清單裡邊 

chown 使用者名 檔案名/目錄名 #隻能更改擁有者 所屬組沒更改 
chown 使用者名:組名 檔案名或者目錄名 #更改所屬使用者及所屬的組 僅僅是改目錄 裡邊的檔案沒改 
chown -R 使用者名:組名 目錄名 #遞歸修改所屬使用者及組            

複制

修改使用者組 chgrp

chgrp 組名 檔案名 或者目錄名 
chgrp -R 目錄名 

chgrp -R 組名 tmp 

sudo chgrp -R yhq /tmp 将tmp目錄下所有的子目錄及檔案所屬組 改為 yhq           

複制

chattr /lsattr chmod後面的大boss 如果大boss 保護屬性 那麼我們沒法 chmod

+ 
- 
i 給檔案增加 或者去除 隻讀屬性 不能删除 不能改權限 不能寫入 不能修改連結 
a 隻能追加資料 不能修改和删除 

chattr +i 檔案名 給檔案增加保護屬性 
這時候不能修改權限 不能删除 不能寫入 這個寫入指的是 echo 'adf' >> 不是 vi/vim 

chattr -i 檔案名 取消檔案保護屬性 


chattr +a 檔案名 給檔案名增加保護的屬性 隻能 echo ‘阿道夫’>> 檔案名 不能删除 不能修改權限

chattr -a 檔案名 取消保護 


一般 +a 用來 保護日志檔案            

複制

查找指令所在的位置 如果我們寫腳本自動化運維 需要寫指令的絕對路徑 否則容易找不到

  • which
  • which chmod
  • whereis
  • whereis chmod