tree命令
tree -L 1 -d /用來查看目錄結構
-L 指定層數
-d 只查看目錄
/boot 跟內核有關的文件 grub 內核和BootLoader
├── bin 存放用戶使用的基本命令(可執行程序,二進制文件) 不能單獨分區的
├── boot 跟內核有關的文件 grub 內核和BootLoader
├── cgroup 用來資源限制資源隔離 docker 容器化
├── dev device 設備文件
b block device 塊設備 硬盤或者CD-rom 隨機讀寫
c character device 字符設備 傳真 鼠標 打字機 順序讀寫
├── etc 各種系統包括應用的配置文件 使用頻率超五星
├── home 每個用戶的家目錄 而且每個用戶默認的工作目錄
├── lib 程序包括系統所依賴的一些共享庫文件及內核所依賴的模塊文件
├── lib64 系統程序所依賴的庫文件 .so 結尾,(Windows .dll)
├── lost+found 垃圾回收站
├── media 光盤或者U盤掛載點 媒體介質掛載點
├── misc 雜項 不好歸類的東西
├── mnt 臨時文件文件掛載點 新建一個分區
├── net 網絡文件
├── opt 第三方的應用安裝位置 nginx tomcat Apache
├── proc 偽文件系統 硬盤不存在,只存在于內存中,記錄系統或者進程的運行 信息 cpuinfo
├── root root的家目錄
├── sbin 存放管理類命令 也不能單獨分區
├── selinux 與selinux相關文件或者記錄
├── srv 系統運行產生的一些文件
├── sys 偽文件系統 記錄系統硬件的一些運行信息
├── tmp 雜項,臨時文件以及應用產生的臨時文件 使用頻率 5星
├── usr 誤以為user,Unix software resource
/lib /lib64 存放庫文件
/bin /sbin 存放系統的一些二進制文件(可執行文件)
/local 用來存放第三方的應用
bin etc games lib lib64 libexec sbin share etc
/share 用于存放幫助
/etc/ 配置文件
/include 主要用來存放頭文件,對第三方應用做二次開發可能會用到
/tmp 臨時文件
└── var 日志存放以及應用產生的一些文件或者臨時文件 郵件隊列 (使用頻率非常高)
/var/log/message 系統日志
/var/log/boot.log 系統啟動時候產生的一些日志
/var/log/dmesg 輸出內核或者是硬件的一些有效信息,可以使用dmesg
/var/log/mail.log 郵件產生的日志
/var/log/cron 系統和我們自定義的計劃任務的日志
/var/log/btmp | wtmp用來記錄系統登錄成功或者失敗的用戶(跟系統安全相關的)
使用last(登錄成功的用戶及IP)和lasb(登錄失敗的用戶及IP)命令查看
/var/log/secure 記錄用戶登錄信息
/var/log/lastlog
/var/lib/mysql MySQL數據存放目錄
/var/mail 郵件存放目錄 由于郵件服務 此目錄可能會滿 rsync(命令)使用一個空目錄來同步有問題的目錄
/var/spool/cron 跟計劃任務相關的內容
dmesg 查看啟動時候的內核日志信息
last(登錄成功的用戶及IP)
lasb(登錄失敗的用戶及IP)
生產環境服務器暴露公網之中,經常會有網上的服務器去嘗試登錄我們的服務器,這時候需要用到lastb去查看哪些地址的服務器在掃我們的機器,然后把這些IP加入host_deny iptables 中。
CentOS 7上目錄變化:
bin和/usr/bin 目錄合并
lib和/usr/lib 目錄合并
lib64和/usr/lib64 目錄合并
sbin和/usr/sbin
二進制程序:/bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin
echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
庫文件:/lib, /lib64, /usr/lib, /usr/lib64, /usr/local/lib, /usr/local/lib64
配置文件:/etc, /etc/DIRECTORY, /usr/local/etc
幫助文件:/usr/share/man, /usr/share/doc, /usr/local/share/man, /usr/local/share/doc
文件類型:
-
普通文件
d directory目錄文件
b 塊兒設備 block
c 字符設備 character
l 符號鏈接文件
p 管道文件 pipe 進程間通信可能會管道
s 套接字文件socket 比如MySQL的套接字 本地客戶端和服務器端互相通信使用socket,避免通過網絡這種方式
pwd -L(默認)
如果當前目錄為鏈接路徑的話,則顯示鏈接路徑
[root@lyp bin]# cd /bin
[root@lyp bin]# pwd -L
/bin
(/bin鏈接到/usr/bin下面)
[root@lyp bin]# pwd -P 顯示真實物理路徑
/usr/bin
絕對路徑
cd /usr/local/etc/
相對路徑
不以根目錄為開始 以當前工作目錄或者是某個其他目錄為起始位置切換到另一個目錄去
. 代表當前目錄
.. 上級目錄
- 代表上一級工作目錄
pwd的兩個環境變量
echo $PWD
echo $OLDPWD
basename 腳本里獲取文件的存放位置或者文件的全名
[root@lyp etc]# dirname /usr/local/etc/my.cnf
/usr/local/etc
dirname 腳本里在指明路徑的時候一般使用時絕對路徑
[root@lyp etc]# basename /usr/local/etc/my.cnf
my.cnf
ls -l
d rwxr-xr-x. 2 root root 4096 Mar 22 22:23 Downloads
-
rw-r–r–. 1 root root 51 Mar 24 10:02 hello.sh
文件類型 文件權限 鏈接數量 屬主和屬組 文件大小 最近的修改日期(mtime) 文件名稱或者目錄名稱
PS 目錄占用4096B 4096是系統的block大小
常用選項:
-h 以人類可讀的方式將文件或者目錄大小顯示出來
-a 列出所有隱藏文件和目錄
-R 把當前目錄下的目錄的所有內容列出來(遞歸)
-d 顯示當前目錄的詳細信息,不顯示目錄下的內容
不常用選項:
-A 列出所有隱藏文件和目錄 除了.和..
-1 文件和目錄名分行顯示
-S 把文件目錄按照大小從大到小來排列
-t 把文件和目錄按照最近修改時間排列 從最新到最老的順序排列
-u -t
文件三個時間戳 mtime atime ctime
mtime 修改時間 Modify
atime 最近訪問時間 Access
ctime 最近改變時間 Change
文件創建之初,所有的時間戳都是一致的
正常的情況下是訪問一次,文件的atime就應該修改更新一次,系統加了一個新的特性 relatime
atime不會經常改變,只有在mtime比atime新的時候,再次訪問文件atime 才會發生改變
mtime都會造成ctime修改
修改文件的屬性 比如文件的屬主和屬組的時候 ctime的修改
使用編輯器打開文件也有可能造成atime的改變
使用touch -a修改文件(修改文件屬性)的訪問時間也會造成ctime的改變
mtime改變,ctime也會跟著改變
修改文件屬性或者權限,則ctime也會跟著改變
atime并不會時時發生改變,只有當mtime比atime新的時候才會改變
echo “111” >> magedu.log 修改文件內容
chown root magedu.log 修改文件元數據
stat magedu.log 查看文件的三個時間屬性
生產環境 mtime 只看文件的修改時間,使用ls -l查看文件或者目錄的最新修改時間
stat 查看文件時間戳
touch 原意是修改文件的時間戳,現在一般用來創建一個文件
-m 修改mtime 也會造成ctime改變
-c 修改ctime
-a 修改atime 會造成ctime改變
-t 結合-m 或 -c 或 -a 修改指定的時間
-c 如果文件不存在 則不予創建
文件通配符
*號 匹配任意所有字符的
[root@lyp ~]# ls h*
hello.sh hello.shbak
?號 匹配單個字符
ls ???? 查看四個字符命名的文件
[0-9]匹配數字
[a-z] 字母 字母的順序安裝 a A b B c C… z Z 匹配的a-z
[A-Z] 字母 字母的順序安裝 a A b B c C… z Z 匹配的A-Z 不要跟符號擴展混淆{A..Z}
[wang] 匹配列表中的任何的一個字符 ls [wang]* 匹配的是w* a* n* g*
[^wang] 匹配列表中的所有字符以外的字符 ls [^ab]* 查詢除了a或者b開頭的文件名
常用集中:
[:digit:] :任意數字,相當于0-9
[:lower:] :任意小寫字母
[:upper:] :任意大寫字母
[:alpha:] :任意大小字母
[:alnum:] :任意數字或字母
不常用的:
[:blank:]: 匹配水平空白字符 touch ‘a b’
[:punct:]: 匹配標點符號 touch ‘a..b’
[:print:]:可打印字符
[:cntrl:]:控制(非打印)字符
[:graph:]:圖形字符
[:xdigit:]:十六進制字符
cp
1 cp a b 復制一個文件并命名為b
2 cp a tmp/ 把a復制到tmp/ 目錄如果不存在會報錯,如果tmp目錄下a已經,則會提示是否覆蓋
cp: overwrite `tmp/a’? y
3 cp a b c tmp/ 把多個源文件復制到tmp目錄下
4 cp 目錄1 目錄2 -r 遞歸 拷貝目錄
如果目錄2不存在,則會把目錄1重新拷貝一份并且命名為目錄2
如果目錄2已經存在,則直接將目錄1拷貝到目錄2下面
-i 是否提示 默認支持 因為別名
-r -R 遞歸復制目錄及目錄里所有的內容
-d 復制的時候 如果目錄有鏈接文件,則只復制鏈接文件
-p –preserv 復制的時候將文件的屬性一起復制
-a = -pdr
-v 復制的時候顯示詳細過程
-f 強制復制,不管目標文件有沒有
生產最常用選項是 cp -av 源文件 目標文件
cp -avf 源文件 目標文件
注意: 任何刪除操作或者是任何的覆蓋操作之前要先執行cp進行備份
cp -avf a b 發現b已經存在,而且特別重要,所以在執行cp操作的時候一定要搞清楚想清楚在做什么
1 每天將/etc/目錄下所有文件,備份到/testdir獨立的子目錄下,并要求子目錄格式為 backupYYYY-mm-dd,備份過程可見
cp -av /etc/ /testdir/backup-date +%F/
mv 移動或者命名
mv a b 將a重命名成b a有可能是文件也有可能目錄
mv a bd/ 將源文件a移動到目錄db下面
-f 如果目標目錄已經存在同名文件,則強制移動過去,不提示
生產用的時候 mv -f 源文件 目標文件
mv 垃圾文件 backup/
rm -rf
-r 遞歸
-f 強制刪除
一般使用的時候就是rm -rf
mkdir 創建一個目錄
-p 同時創建父目錄和子目錄
-v 詳細信息
-m 直接指定目錄權限
mkdir -pv /tmp/a/b/c/
rmdir 刪除目錄
-p
-v
由rm -r 所取代, 遞歸刪除所有目錄和文件
索引節點 inode
索引式文件系統 根據inode去查找所有存放文件內容的塊
1 —> 3—–> 5—-> 10 鏈式
“操作系統” inode
inode 系統上的inode號會用滿 磁盤上存放的小文件非常多
inode 是在磁盤格式化的時候已經確定
為什么空間明明沒滿,但是我的數據寫不進去了?是因為小文件過多 造成inode用完了
數據拷出來,重新格式化分區,重新指定inode
一個文件只能有一個inode
cp 操作就是生成一個新的inode 然后把源文件的數據復制過去,同時把新的inode指過去
rm 刪除的時候只是刪除inode 數據還在
執行刪除操作之后 再存放一些垃圾文件
/dev/zero dd in=/dev/zero of=/dev/xxx
mv的時候如果在同一個分區 那么mv的時候只是修改了文件路徑 文件本身的inode沒變
如果目標和源文件位于不同的分區(文件系統),可以理解為從Windows的C盤挪到D盤
那么一般執行的是先cp后刪除操作
鏈接:硬鏈接、軟連接
硬鏈接
不能跨分區
不能指向目錄
不同的文件路徑指向同一塊數據存儲區域
任何一個路徑的刪除都影響另外一個
任何一方內容的修改 另外一方也會受到影響
只有系統中某些比較的老的文件會用到硬鏈接,生產環境不會使用
軟連接
可以跨分區 可以指向目錄或者是文件
軟連接里面存儲是原來的文件路徑
如果真實的文件路徑刪掉之后,那么鏈接文件也失效
存儲真實的文件名的大小
-f 強制鏈接 無論原來的鏈接文件是否存在,強制它指向一個新的位置
-n 把符號連接的目的目錄視為一般文件
ln -snvf b a
在版本發布的時候,可以使用軟連接的方式直接修改指向
目前來說 軟連接使用的比較多
file 用來查看某個文件的文件類型
-b 不顯示文件名稱
-f a.txt 列出a.txt文件中所記錄的文件對應的文件類型
file -f m23-hard2
-F 定義分隔符
-L 查看鏈接文件對應的文件
文件描述符
創建文件的時候內核或者內存產生一個記錄專門標識這個文件 fd(file descriptor)
生產常見的故障 開發 打開一個文件沒有執行關閉操作,文件描述符不停增加,內存可能會滿
文件描述符使用完了,這個時候就無法寫文件。
三種最常見的文件描述符去標識我們的三個設備
0 標準輸入(STDIN) 默認鍵盤(指令和數據)
1 標準輸出(STDOUT) 默認終端(顯示器)
2 標準錯誤輸出(STDERR) 默認終端(顯示器)
I/O(IN Out)重定向 指的改變默認輸入輸出的位置
標準輸出重定向
[root@lyp test]# date > date.log
[root@lyp test]# cat date.log
Tue Mar 28 01:30:46 CST 2017
標準錯誤輸出重定向
[root@lyp test]# fdfdfdfd > date.log
bash: fdfdfdfd: command not found…
[root@lyp test]# fdfdfdfd 2> date.log
[root@lyp test]# cat date.log
bash: fdfdfdfd: command not found…
追加重定向 >>
[root@lyp test]# fdfdfdfd 2>> date.log
[root@lyp test]# fdfdfdfd 2>> date.log
[root@lyp test]# fdfdfdfd 2>> date.log
[root@lyp test]# cat date.log
bash: fdfdfdfd: command not found…
bash: fdfdfdfd: command not found…
bash: fdfdfdfd: command not found…
bash: fdfdfdfd: command not found…
&>
[root@lyp test]# date &> date.log
[root@lyp test]# cat date.log
Tue Mar 28 01:33:55 CST 2017
[root@lyp test]# datefdfd &> date.log
[root@lyp test]# cat date.log
bash: datefdfd: command not found…
標準輸出重定向到date.log 標準錯誤輸出重定向到date2.log
[root@lyp test]# date22 > date.log 2> date2.log
&> &>> 將標準輸出和標準錯誤輸出(覆蓋|追加)同一個文件
[root@lyp test]# date &> date.log
[root@lyp test]# cat date.log
Tue Mar 28 01:40:48 CST 2017
[root@lyp test]# date &>> date.log
[root@lyp test]#
[root@lyp test]# cat date.log
Tue Mar 28 01:40:48 CST 2017
Tue Mar 28 01:41:14 CST 2017
[root@lyp test]# datefdfd &>> date.log
[root@lyp test]# cat date.log
Tue Mar 28 01:40:48 CST 2017
Tue Mar 28 01:41:14 CST 2017
bash: datefdfd: command not found…
(cal 2004;datefdfd) > date.log
標準錯誤輸出到終端 標準輸出到date.log中
2>
2>>
&>
&>>
2>&1
< 標準輸入重定向
tr命 使用頻率為1星
-d
[root@lyp test]# tr ‘a-z’ ‘A-Z’ < /etc/fstab > FSTASB.log
[root@lyp test]# tr -d ‘0-9’ < /etc/fstab
-c 取指定字符的補集
[root@lyp test]# tr -d -c ‘0-9’ < /etc/fstab
tr -d ‘0-9’ < ./fstab > ./fstab 是不會成功的
-s “s“ 對重復字符去重
cat >> beijing.log << EOF
將標準的輸入(下面的字)重定向到beijing.log
cat >> shanghai.log << ‘EOF’
where are you from,I’m from $SH
EOF
加引號與不加引號的區別
加引號(雙引號和單引號)輸入內容里面的變量是不會被替換
不加引號的話 輸入的內容里面變量會被替換
結束符不一定要使用EOF,可以使用其他任意字符。
寫一個腳本 腳本定義個配置文件,執行腳本的時候自動生成自定義的配置文件
set 控制bash的特性
set -C 禁止將內容覆蓋到已經有的文件 特殊保護機制
管道 將一個命令的輸出結果(標準輸出|錯誤輸出)作為另外一個命令輸入
通過管道我們整合很多命令提供非常強大的功能
取前面命令的一個輸出作為后面一個命令的輸入
比如將一個文件壓縮之后再解壓縮
tee
-a 對日志文件的追加操作
ls | tee -a baoding.log | tr ‘a-z’ ‘A-Z’
日志輸出 | tee -a /tmp/logfile
調試生產某個應用的時候,一方面我想要看標準輸入的日志,一方面想把日志保存到某個日志文件里便于日后的排查
rzsz 從本地機器上傳下載文件
yum install lszrz ——-> rzsz
直接使用xshell 新建文件傳輸功能
dos2unix 把dos格式的文檔轉換為unix格式
yum install dos2unix
unix2doc 把unix格式的文檔轉換成doc格式
useradd
-u 指定UID (默認500|1000開頭)
-o -u新建用戶前不檢查下指定的UID是否存在(一般不要使用這個選項)
useradd -u 250 -o yonggege
-g GID|組名 指明用戶所屬的基本組 (使用比較多)
-G 指明用戶所屬的附加組
-d 指定某個目錄作為家目錄,默認/home
-s 指明用戶默認的shell 默認/bin/bash 通常會指定/sbin/nologin(使用較多)
-c “ ” 指定用戶注釋信息
-r 新建系統用戶
-m 默認選項 創建用戶家目錄
-M 不創建用戶家目錄
useradd -D 改變新建用戶默認的選項
GROUP=100
HOME=/home 默認家目錄
INACTIVE=-1 密碼失效日期,shadow第7列
EXPIRE= 賬號失效日期 第8列
SHELL=/bin/bash
SKEL=/etc/skel 家目錄下面的隱藏文件的模板
CREATE_MAIL_SPOOL=yes 是否創建一個郵箱賬戶
u
/etc/login.defs 關于新建用戶的默認設置
newusers
chpasswd
for 循環
usermod 修改用戶的屬性
usermod
usermod -U 解鎖用戶 sarah
-L 鎖定用戶 (直接修改密碼文件,加感嘆號)
userdel 刪除用戶
-r 刪除用戶家目錄
id 顯示用戶信息
-u UID
-g GID
-G 附加組
su switch user 用戶切換
不加 – 某些環境變量可能不會切換過去,等于是人過去了,行李還沒過去 su xian
加 – 行李和人都過去 生產推薦使用 su – xian
su -l USER === su – USER
-c ’CMD‘ 以某個用戶的身份執行CMD命令
單引號和雙引號在執行單個命令的時候并沒有什么區別,所有執行的命令里面包含” 建議外面使用“”
使用root切換到其他普通的時候 是不需要密碼的
但是普通用戶切換到root或者切換到其他用戶的時候是需要密碼登錄的
su – root 用戶名可以省略 但是僅限于root用戶
如果想切換到root用戶不用輸密碼,可以只用visudoer編輯
xian ALL=(ALL) NOPASSWD: ALL
保存生效
在執行sudo su –
生產用的方式:登錄時候普通 如果用root
sudo su -切換過去
passwd: 修改自己的密碼
不常用選項:
-l:鎖定指定用戶
-u:解鎖指定用戶
-e:強制用戶下次登錄修改密碼
-n mindays: 指定最短使用期限
-x maxdays:最大使用期限
-w warndays:提前多少天開始警告
-i inactivedays:非活動期限
常用選項
–stdin:從標準輸入接收用戶密碼
echo “PASSWORD” | passwd –stdin USERNAME
echo “123456” | passwd –stdin xian
chage -d 0 xian 要求用戶在第一次登陸的時候必須強制一定要修改密碼
echo “P@w注意字符串有一個符號 會把后面的內容給替換成變量 而這個變量為空,所以切記改密碼的時候要使用單引號 強引用
要注意的事情是:改完密碼之后,當前的終端不能立即退出,改為先驗證下密碼是否改成功,如果成功再退出。
scp 命令
scp baoding.log 172.16.252.100:/tmp
命令 文件 IP:/tmp
scp -r test 172.16.252.100:/tmp
傳遞目錄的
-P 端口號
rsync -avz 源文件 目標地址:/tmp 基于SSH協議
rsync 以服務的形式運行
useradd -M
雖然/etc/passwd 有/home/username 這一項
但是家目錄下/home/username 這個目錄并不存在
一般用來創建一個系統管理用戶,不用登陸的,也不需要家目錄
useradd -s /sbin/nologin -M apache
useradd -D -s|b|g 一般很少改
usermod
id root (使用頻率4星)(先了解)
-u -g -G (寫腳本的時候使用)
寫腳本的時候必須有一個執行者 可以使用id
id -u
首先要判斷我的腳本的執行者是否是root
如果是腳本繼續執行
如果不是 則報錯退出,提示必須使用root用戶才能執行
USERID=id -u
echo $USERID
su
1 su – username 切換到某個用戶
2 su – zhengzhou -c ‘whoami’ 以某個用戶的身份去執行某個命令
sudo 機制
一個簡單的腳本
chage [OPTION]… LOGIN
-d LAST_DAY 最近一次更改密碼(3) (使用較多)
-E –expiredate EXPIRE_DATE賬號失效日期(8)
-I –inactive INACTIVE密碼失效日期(7)
-m –mindays MIN_DAYS最短使用天數(4)
-M –maxdays MAX_DAYS最大使用天數(5)
-W –warndays WARN_DAYS失效前警告時間(6)
groupadd 新建用戶組
-g -r
groupmod 修改組信息
-n 新的名字
-g 新的GID
groupdel 首先刪除對應的用戶 然后才能執行對應的組的刪除操作
gpasswd 給組新建一個秘密
[zhengzhou@CentOS68 ~]基本組和附加組newgrp root 切換基本組和附加組
[zhengzhou@CentOS68 ~] touch shangjie
[zhengzhou@CentOS68 ~]$ ll shangjie
-rw-r–r–. 1 zhengzhou root 0 Mar 31 11:07 shangjie
groupmems
-g 組 -a 用戶名
-g 組 -d 刪除
-g 組 -p 清空
-g 組 -l 列出組內所有的用戶
groupmems -g shanxi -a hanzhong
groupadd 添加一個組 相對多
rw- r– r–. 1 root root 0 Mar 27 11:34 Bbb
屬主 屬組 其他人
三種操作形式
讀 r read
寫 w write
執行 x excute
chown 修改文件的所有者
chown 用戶名 haerbin 修改文件的屬主
chown 用戶名:組名 haerbin 修改文件的屬主和屬組
chown 用戶名.組名 haerbin 修改文件的屬主和屬組
chown .組名 haerbin 修改文件的屬組
chown :組名 haerbin 修改文件的屬組
-R 用戶名:組名 目錄 遞歸修改目錄的權限以及目錄下所有的文件的權限
沒有 -r
chgrp 修改文件的屬組
針對文件來說
r 使用工具cat nano去看文件里面內容的權限
w 可以修改文件的內容
x 二進制程序以及腳本需要發起系統調用 去運行一個結果
windows .exe .vbs .bat可執行
針對目錄來說
r 是否可以查看目錄里面的內容 有r權限的話 可以使用ls -l
w 對目錄里面是否可以創建文件或者目錄 和是否可以刪除文件或者目錄
x 目錄的進入權限
rwx rwx rwx
屬主 屬組 其他人
u (user) g(group) o(other)
a(all)
u + r|w|x
g + r|w|x
o + r|w|x
a + r|w|x
chmod u+r
chmod a|u|g|o +|- r|w|x
chmod xxx(數字)
修改文件權限
-R遞歸修改
600 使用加密解密時候用到的key
以及生產web服務加密的時候用到的證書
目錄權限默認是755
文件權限默認是644
反掩碼
umask 永久生效 一般是去/etc/bashrc 文件(全局生效)
~/.bashrc (僅對當前用戶生效)
022
目錄 rwx rwx rwx
uamsk — -w- -w-
rwx r-x r-x
7 5 5
文件 rw- rw- rw-
umaks — -w- -w-
-rw –r –r
6 4 4
不能這么計算:
777-022=755
666-022=644
[root@CentOS68 ~]# umask -S
u=rwx,g=rx,o=rx
[root@CentOS68 ~]# umask -p
umask 0022
SUID (只能作用于文件) 特殊用戶權限
一旦某個文件(通常是可執行文件)有了特殊用戶權限(SUID)
那么其他用戶就可以以文件擁有者的身份去執行這個文件
chmod u+s install.log
chmod 4644 tianjin
注意 有s S 之分
s 原來文件已經有執行權限了,加SUID之后,那么文件的權限就是
-rwsr-xr-x. 1 root root 97 Mar 31 10:46 useradd.sh
S 如果原來的文件沒有執行權限,那么加上SUID之后,文件的權限就是
-rwSr–r–. 1 root root 57094 Mar 22 18:25 install.log
SGID (作用于文件或者目錄) 特殊組權限
對于文件來說 一旦某個文件(可執行)有了特殊組權限(SGID)
那么其他用戶可以以文件擁有組的身份去執行這個文件
對于目錄來說 可以實現團隊協作 (少用)
chmod g+s tianjin
chmod 2644 tianjin
sticky 黏滯位 作用于目錄
任何人可以對目錄里面的內容進行新建或者刪除的操作,但是只有文件的創建者才可以去刪除自己的文件
/tmp
說白了 誰干的誰可以清除 其他不行
t 在原來的可執行權限上加
T 原來沒有可執行權限
chmod o+t 目錄
chmod o-t 目錄
平時系統上 SUID 和Sticky兩種權限用的比較多
SGID 比較用的比較少
生產環境 SUID SGID sticky
cat 查看一個文件
-E: 顯示行結束符$
-n: 對顯示出的每一行進行編號
-A:顯示所有控制符
-b:非空行編號
-s:壓縮連續的空行成一行
cat -sn changping.log
頻繁使用的是 cat -An 文件名
tac 倒著看某個文件
more 分頁查看文件
less 一頁一頁查看文件內容
head -n 10 文件名
-10 文件名
cat 文件名 | head
tail 顯示文件后面的內容
tail -n 10
tail – 10
-f 實時查看文件的最新變化 排查故障的時候 =tailf
cut 切割文本按要求輸出文本
cut -d”:” -f1-5 /etc/passwd
df -h | awk ‘{print $3}’
echo “12345” | cut -c2-5
paste 把兩個文件合并成一個文件
-s 兩個文件的同一行合并成一行
wc
查看文件里面的內容有多少行 多少個字節 字符 字數
wc -l 會經常用到
[root@CentOS68 ~]# cat /etc/passwd | wc -l
50
[root@CentOS68 ~]# wc -l /etc/passwd
50 /etc/passwd
QPS 每秒的訪問次數
TPS 每秒的事務數
QPM 每分鐘的訪問次數
PV Page View
和UV User View
sort 把文本安裝順序來顯示
-r 逆序
-n 按照數字大寫
-f 忽略字符串大小寫
-t “c” 以后面的字符作為分隔符
-k 選擇某個字段 進行排序
uniq 去重
-c 顯示每行重復出現的次數
-d 僅顯示重復
-u 顯示不重復
diff 比較兩個文件的異同
diff -u a文件 b文件 > a.diff
path -b b < b.diff
diff -u foo.conf-broken foo.conf-works > foo.patch
$ patch -b foo.conf-broken foo.patch
原創文章,作者:木,如若轉載,請注明出處:http://www.www58058.com/72461
主要總結的linux 下基礎常用的一些命令,總結的非常詳細,如果排版能夠好一些,就更好了