第一次考試總結
第一大題
1.文件權限
2.mkdir命令
3.tar命令
4.chmod命令
5.Linux查看文件的命令
6.ps命令
7.useradd命令
1>文件權限:
user | group | other
4 2 1| 4 2 1 | 4 2 1
r w x| r w x | r w x
rwx-
r 4 --只讀
w 2 --寫
x 1 --執行
- 0 --無權限
------------------------
7 rwx
6 rw-
5 r-x
4 r--
3 -wx
2 -w-
1 --x
0 ---
[[email protected] 桌面]# ll -d qa
drwxr-xr-x. 2 root root 4096 8月 9 14:28 qa
d--文件夾(LINUX中的七種文件類型:
d 目錄文件。
l 符號鏈接
s 套接字文件。
b 塊設備文件,二進制文件。
c 字符設備文件。
p 命名管道文件。
- 普通文件,或更準確地說,不屬於以上幾種類型的文件)
rwx --擁有者的權限
r-x ---屬組(主組)的權限
r-x --除了擁有者/屬組以外用戶的權限(其它用戶)
root ---擁有者
root --屬組
---------------------------------------------
2>mkdir
在Linux系統中,mkdir命令用來創建一個目錄或一個級聯目錄。
1. 命令格式
mkdir [選項] 目錄名
2. 命令選項
-m=mode 為目錄指定訪問權限,與chmod類似。
-p 如果目錄已經存在,則不會有錯誤提示。若父目錄不存在,將會創建父目錄。該選項常用於創建級聯目錄。
-v 為每個目錄顯示提示信息。
demo1:創建多個目錄
[[email protected] 桌面]# mkdir qaz wsx edc
[[email protected] 桌面]# ls
edc qa qaz wsx
或
[[email protected] 桌面]# mkdir {1,2,3}
[[email protected]
1 2 3 edc qa qaz wsx
拓展:rmdir 該命令用用來刪除空目錄,如果目錄非空,則會出現錯誤。可以使用rm刪除目錄中的文件後,使用rmdir刪除目錄。也可以使用rm -rf替代rmdir命令。
3>tar
tar 打包壓縮多個文件,不會改變文件的屬性與權限
用法:
tar option 打包壓縮後的文件 需要打包壓縮的文件
選項:
-c 創建tar包
-f 指定包名
-v 顯示詳細信息
-z 使用gzip工具壓縮
-j 使用bzip2工具壓縮
-J 使用xz工具壓縮
-t 查看tar包內容
-x 解壓tar包
-C 指定解壓路徑
-r 追加文件到tar包
說明:
參數前面的“-”可有可無
4>chmod
與之有關的兩個命令:chown/chgrp
chown --修改文件的擁有者/屬組/其它用戶的權限
chown [-R] <username>.<group> /<path>/filename
chown <username>:<group> /<path>/filename
chown <username> /<path>/filename>
chown :<group> /<path>/filename
chown -R alex:alex alex/
chonw alex.alex alex/
chgrp 更改文件或者目錄的工作組所有權
chgrp -R groupname filename
chgrp kk alex
drwxr-xr-x 2 root kk 4096 Apr 14 06:09 alex
[[email protected] tmp]# chown .kiki xx -- 改變所屬組(chgrp kiki xx)
[[email protected] tmp]# chown kiki. xx ---改變所有屬性 (chown kiki:kki xx)
5>linux查看文件的命令
1.列出文件清單命令:ls
ls命令能夠列出當前目錄下的所有內容。ls 命令的執行方式為:
# ls [-選項] [文件名或者目錄名]
進入到Linux命令行中後,我們至少要知道當前所處的位置有哪些內容,這些信息就可以使用ls命令來獲得。
在Linux中,ls命令是最常使用的命令之一,因為在命令行下要隨時查看目錄內容。如果不加任何選項的話,ls命令僅列出當前目錄下的文件和目錄名,例如,想要查看/etc目錄下的內容,可以使用下列命令:
# ls /etc
如果想要列出當前目錄下所有文件,則可以使用下列命令:
# ls -a
2、cat命令
功能:在標準輸出上顯示文件。
語法:cat [-vTEuAte] 文件
例子: cat example.txt
cat -A exam2.txt
cat file1 file2 > file2
3、more命令
功能:在終端屏幕按屏顯示文本文件。
語法: more [-pcdls] 文件
例子: more example.c
more -dc example.c
more -c -10 example.c
4、less命令
less命令的功能幾乎和more命令一樣,也是用來按頁顯示文件,不同之處在於less命令在顯示文件時允許用戶既
可以向前又可以向後翻閱文件。
5、head命令
功能:顯示指定文件的前若幹行。缺省設置為顯示10行
語法:head [-n] 文件
例子: head example.c
head -3 example.c
6、tail命令
功能:顯示指定文件的末尾若幹行。缺省設置為顯示10行
語法:tail [+ / - num ] [參數] 文件
+num 從第num行以後開始顯示。- num 從距文件尾num行處開始顯示。
例子: tail example.c
tail -4 example.c
6>ps
進程的狀態:
R 運行
S 可中斷睡眠 Sleep
D 不可中斷睡眠
T 停止的進程
Z 僵屍進程
X 死掉的進程 【看不見】
靜態查看進程——ps:
ps:用來查看進程信息,功能強大,用法也比較復雜,最常用用的參數有:ps aux ,ps -ef ,ps -ely
選項說明如下:
a:顯示現行終端機下的所有進程,包括其他用戶的進程;
u:顯示進程擁有者、狀態、資源占用等的詳細信息(註意有“-”和無“-”的區別)。
x:顯示沒有控制終端的進程。通常與 a 這個參數一起使用,可列出較完整信息。
-e:顯示所有進程。
-f:完整輸出顯示進程之間的父子關系
-l:較長、較詳細的將該 PID 的的信息列出;
註:ps -aux 不同於 ps aux
意思是:
請註意"ps -aux"不同於"ps aux"。POSIX和UNIX的標準要求"ps -aux"打印用戶名為"x"的用戶的所有進程,以及打印所有將由-a選項選擇的過程。
如果用戶名為"x"不存在,ps的將會解釋為"ps aux",而且會打印一個警告。這種行為是為了幫助轉換舊腳本和習慣。
它是脆弱的,即將更改,因此不應依賴。
[[email protected] ~]# ps aux|head
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 19356 1432 ? Ss 19:41 0:03 /sbin/init
USER: 運行進程的用戶
PID: 進程ID
%CPU: CPU占用率
%MEM: 內存占用率
VSZ: 占用虛擬內存
RSS: 占用實際內存 駐留內存
TTY: 進程運行的終端
STAT: 進程狀態 man ps (/STATE)
R 運行
S 可中斷睡眠 Sleep
D 不可中斷睡眠
T 停止的進程
Z 僵屍進程
X 死掉的進程
Ss s進程的領導者,父進程
S< <優先級較高的進程
SN N優先級較低的進程
R+ +表示是前臺的進程組
Sl 以線程的方式運行
START: 進程的啟動時間
TIME: 進程占用CPU的總時間
COMMAND: 進程文件,進程名
拓展:top
動態查看進程——top
在top的執行過程中,還可以使用以下的按鍵命令:
h|? 幫助
M 按內存的使用排序
P 按CPU使用排序
N 以PID的大小排序
R 對排序進行反轉
f 自定義顯示字段
1 顯示當前系統的cpu的邏輯數量
T:按該進程使用的CPU時間累積排序
k:給某個PID一個信號(signal),默認值是信號15
r:重新安排一個進程的優先級別
s:改變兩次刷新之間的時間。默認是5秒
q:退出程序。
< 向前
> 向後
z 彩色
W 保存top環境設置
top命令常用的選項:
-d:後面可以接秒數,指定每兩次屏幕信息刷新之間的時間間隔;
-p:指定某個進程來進行監控;
-b -n:以批處理方式執行top命令。通常使用數據流重定向,將處理結果輸出為文件;
[[email protected] ~]# top
[[email protected] ~]# top -d 1
[[email protected] ~]# top -d 1 -p 10126 查看指定進程的動態信息
[[email protected] ~]# top -d 1 -u apache 查看指定用戶的進程
[[email protected] ~]# top -d 1 -b -n 2 > top.txt 將2次top信息寫入到文件
7>useradd
useradd --新建用戶
useradd username
useradd [-c|-d|-g|-G|-s|-u|-m|-M]
-c 新建用戶時添加註解
-d 指定用戶的家目錄
-g 指定用戶的主組
-G 輔助組
-s 指定用戶的shell
-u 指定用戶ID
-m 新建用戶時要創建家目錄
-M 新建用戶時不創建家目
-r 指定定程序用戶
useradd -u 10005 test05 -d /dev/null -M -c "這是一個程序用戶5" -g kkk -G root,bin -s /sbin/nologin
# cat /etc/passwd
用戶配置文件:
/etc/passwd --存放用戶信息
man 5 passwd
/etc/shadow --存放密碼,賬號的時間設置
man 5 shadow
/etc/group --組信息
/etc/gshadow --組密碼
/etc/login.defs --創建用戶時使用的模板
/etc/skel/* --用戶配置文件模板
user1001:X:110:120:這是一個手工創建的用戶:/home/user1001:/bin/bash
用戶名 :密碼:uid:gid:註釋:家目錄:shell
#vim /etc/shadow
user1001$1$SefNk95S$OY4g7fMVcRNvcxLJWwW.91:14940:0:99999:7:0:14950:
每一行9個字段,以冒號分隔,
1)user1001 --> 用戶名
2)$1$SefNk95S$OY4g7fMVcRNvcxLJWwW.91 --> md5 加密密碼
3)14940 --> 從 1970-01-01 計算經過天數 (2010-11-27)
4)用戶最後修改密碼限期 0 --> 密碼最小修改限期, 假如 3 --> 14943 <- 從現在開始到 2010-11-30 才允許修改密碼
5)99999 --> 密碼修改最大限期 假如15 --> 每 15 天必須改密碼一次
\--修改 15 後 --> 14940 + 15 = 14955 = 2010-12-12 前必須修改密碼
6)7 --> 密碼過期前 7 天開始警告
7)0 --> 當密碼過期後,拒絕用戶登錄 (3) 過期後三天內還允許修改密碼,過了三天拒絕登錄
8)14500 ---> ( 1970-01-01 ) 過了 14950 天 (2011-03-01) <- 從開始用戶帳號鎖定
9)保留標誌,目前沒有意義
拓展:usermod/userdel
usermod
-d 修改用戶家目錄
-e 設置用戶密碼的過期時間
-g gid
-G GROUP
-l 新的用戶登錄名 # usermod -l keke test01
-L 用戶鎖定
-s /bin/bash ....
-u uid
-U 解鎖
userdel --刪除一個用戶
userdel <username>
userdel -r <username> --刪除用戶時把家目錄一起刪除
usermod -g <group1> -G <group2,group3> <username>
userdel -r ----刪除用戶的家目錄,郵件池
# usermod -g root -G kiki02 kiki01
#id kiki01
uid=2022(kiki01) gid=0(root) groups=0(root),10006(kiki02) context=root:system_r:unconfined_t:SystemLow-SystemHigh
usermod --修改一個已經存在的用戶,跟useradd的參數是一樣的。
usermod -c "你不是程序用戶" test04
usermod -s /sbin/nologin test04
usermod -L <username> 鎖定用戶
usermod -U <username> 解鎖用戶
useradd -l 修改用戶名字
第二大題
1>通配符
2>vim
1>通配符
通配符:
* --匹配一個或者任意多個字符,也就是*代表所有
? --匹配一個字符
$ --引用變量
ls /etc/*.conf
[[email protected] ~]# ls /etc/?conf
echo $PATH
2>vim
三種模式
命令模式
iIaAoO|ESC / \:|ESC
輸入模式 末行模式
1.命令模式():
yy 3yy shift+6 shift+4 p/P
復制一行 3行 光標行首 光標行尾 行後粘貼/行前粘貼
dd 3dd HOME END
u(undo) --撤消
yw 選定光標所在行復制
行內快跳:home/end 或 shift+^ shift+$
行間快跳:gg:跳到第一行 G:跳到最後一行
10gg:跳到10行
刪除,復制,粘貼
x 向後刪除一個字符 = delete
X 往前刪除一個字符 =
--dd 直接刪除光標所在行 ndd (n代表數字,刪除n行)
--yy 復制光標所在行 nyy (n代表數字,復制n行)
--p 粘貼
--u 回退上一次操作 按一次u只能回退一次
移動相關:
--ctrl+b 向上翻頁 = page up
--ctrl+f 向下翻頁 = page down
ctrl+d 向下移動半頁
ctrl+u 向上移動半頁
--G 移動到頁末 =shift +g
--gg 移動到頁頭
--0 移動到行頭 = home
--$ 移動到行末 = end
n(代表數字)+回車 向下移動N行
h 左<--
l 右-->
k 上
j 下
2.模式行模式:
命令模式-(:)->末行模式
查找:/關鍵字,向下匹配按n,向上匹配按N
?關鍵字,反向查找
:set number [set nu] --設置編碼 (set nonumber)
# vim /etc/vimrc
set number --在一個空白的地方加上(不要加到代碼段裏去了),以後使用vim打開任意文件,都會自動顯示行號
:w --保存
:wq --保存退出
:wq! -- 強制保存退出
:q! --不保存退出
:e! -可以撤消所有的修改至打開文件的
:w /tmp/a.txt --另存為 強制保存 w! /tmp/a.txt
:1,10w /tmp/b.txt --1到10行另存為
:r /etc/passwd --從另一個文件中read入
:%s/root/ROOT --在整個文件中搜索每一行的第一個this替換that
:%s/root/ROOT/g --在整個文件中搜索每一行this替換that
:%s/this/that/gc
:%s#/sbin/nologin#/xbin/login#g
10,20s#/bin/bash#/sbin/nologin#
--在整個文件中搜索每一行this替換that,每一個都需要確認
3.輸入模式:
命令模式-(iIaAoO)->輸入模式
i --在當前光標處進入輸入模式
I --在行首進入輸入模式
a --在當前光標的後一個位進入輸入模式
A --在當前行末進入輸入模式
o --在當前光標的下一行插入空行並進入輸入模式
O --在當前光標的上一行插入空行並進入輸入模式
r --替換光標所在的字符
R --從光標處向後一直替換
總結:打開文件-->命令模式-(iIaAoO)-->輸入模式(輸入用戶自定義內容)-(ESC)->命令模式-(:)->末行模式-(:wq)-》保存退出
vim -o /tmp/a.txt /tmp/b.txt ...
vim -O /tmp/a.txt /tmp/b.txt ... 切換ctrl+ww
--當兩個終端同時打開的話,會產生一個.swap文件
如:你打開/tmp/passwd文件,會產生/tmp/.passwd.swap
解決方法是:直接刪除掉它就可以了
rm /tmp/.passwd.swp
第三大題
1.文件鏈接
2.kill
1>文件鏈接
鏈接命令:ln 生成鏈接文件
ln [源文件] [目標目錄] :
- 創建硬鏈接
- -s:創建軟鏈接
硬鏈接特征:(ln )
1.擁有相同的i節點和存儲block快,可以看做是同一個文件
2.可通過i節點識別
3.不能跨分區
4.不能針對目錄使用,僅對文件有效
軟鏈接特征:(ln -s)
1.類似windows的快捷方式
2.軟鏈接擁有自己的I節點和Block塊,但是數據塊中只保存原文件的文件名和I節點號,並沒有實際的文件數據
3.修改任意一個文件,另一個都會改變
4.刪除源文件,則軟鏈接無法使用
5.軟鏈接的文件權限都為rwxrwxrwx(文件權限以原文件為準)
註意事項:
若要創建軟鏈接,則創建的源文件必須使用絕對路徑,否則在使用軟鏈接時會報錯
軟鏈接和硬鏈接區別:
若將源文件刪除,硬鏈接依舊有效,而軟鏈接會無效,即找不到源文件
ln 源文件 目標文件
ln -sf /etc/passwd /passwd ###-s 軟連接 -f 強制建立連接
-s 是代號(symbolic)的意思。
ln -sf /data/u01 /u01
2>kill
1.命令格式:
kill[參數][進程號]
2.命令功能:
發送指定的信號到相應進程。不指定型號將發送SIGTERM(15)終止指定進程。如果任無法終止該程序可用“-KILL” 參數,其發送的信號為SIGKILL(9) ,將強制結束進程,使用ps命令或者jobs 命令可以查看進程號。root用戶將影響用戶的進程,非root用戶只能影響自己的進程。
3.命令參數:
-l 信號,若果不加信號的編號參數,則使用“-l”參數會列出全部的信號名稱
-a 當處理當前進程時,不限制命令名和進程號的對應關系
-p 指定kill 命令只打印相關進程的進程號,而不發送任何信號
-s 指定發送信號
-u 指定用戶
註意:
1、kill命令可以帶信號號碼選項,也可以不帶。如果沒有信號號碼,kill命令就會發出終止信號(15),這個信號可以被進程捕獲,使得進程在退出之前可以清理並釋放資源。也可以用kill向進程發送特定的信號。例如:
kill -2 123
它的效果等同於在前臺運行PID為123的進程時按下Ctrl+C鍵。但是,普通用戶只能使用不帶signal參數的kill命令或最多使用-9信號。
2、kill可以帶有進程ID號作為參數。當用kill向這些進程發送信號時,必須是這些進程的主人。如果試圖撤銷一個沒有權限撤銷的進程或撤銷一個不存在的進程,就會得到一個錯誤信息。
3、可以向多個進程發信號或終止它們。
4、當kill成功地發送了信號後,shell會在屏幕上顯示出進程的終止信息。有時這個信息不會馬上顯示,只有當按下Enter鍵使shell的命令提示符再次出現時,才會顯示出來。
5、應註意,信號使進程強行終止,這常會帶來一些副作用,如數據丟失或者終端無法恢復到正常狀態。發送信號時必須小心,只有在萬不得已時,才用kill信號(9),因為進程不能首先捕獲它。要撤銷所有的後臺作業,可以輸入kill 0。因為有些在後臺運行的命令會啟動多個進程,跟蹤並找到所有要殺掉的進程的PID是件很麻煩的事。這時,使用kill 0來終止所有由當前shell啟動的進程,是個有效的方法。
第四大題
1.小工具的使用
2.文件查找命令
1>小工具的使用:
管道(|):連接多個命令的工具,進程之間通訊的一種方式
命令1 | 命令2 | 命令3....
grep工具:行過濾
用法:grep 選項 關鍵字 文件
OPTIONS:
-i: 不區分大小寫
-v: 查找不包含指定內容的行,反向選擇
-w: 按單詞搜索
-c: 統計匹配到的次數[行數]
-n: 顯示行號
-r: 逐層遍歷目錄查找
-A: 顯示匹配行及前面多少行
-B: 顯示匹配行及後面多少行
-C: 顯示匹配行前後多少行
--color=auto :可以將找到的關鍵詞部分加上顏色的顯示
-l:只列出匹配的文件名
-L:列出不匹配的文件名
-e: 使用正則搜索 grep -e xxx =egrep xxx
-o:
^key:以什麽開頭
key$:以什麽結尾
每次過濾都顯示顏色:
vim ~/.bashrc
alias grep=‘grep --color=auto‘
source ~/.bashrc
cut工具:截取某一個字符,列過濾
-c :以字符為單位進行分割。
-d :自定義分隔符,默認為制表符。
-f :與-d一起使用,指定顯示哪個區域。
# cut -d: -f1,3,6 passwd|head
# cut -d: -f1 passwd|head
# cut -c10,15 passwd |head
# cut -c10-15 passwd |head
# cut -c10- passwd |head
註意:
cut的-d選項的默認間隔符就是制表符,所以當你就是要使用制表符的時候,完全就可以省略-d選項,而直接用-f來取域就可以。
-b和-c選項,-n表示從第一個字節到第n個字節,而n-表示從第n個字節到行尾
sort工具: 排序,將文件的每一行作為一個單位,從首字符向後,依次按ASCII碼值進行比較,最後將他們按升序輸出。
-u :去除重復行
-r :降序排列,默認是升序
-o :將排序結果輸出到文件中
-n :以數字排序,默認是按字符排序
-t :分隔符
-k :第N列
-b :忽略前導空格。
-R :隨機排序,每次運行的結果均不同。
uniq 去除連續重復行,不連續不去除
-i: 忽略大小寫
-c: 統計重復行次數
-d:只顯示重復行
tee:從標準輸入讀取並寫入標準輸出和文件
tee 雙向覆蓋重定向<屏幕輸出|文本輸入>
tee -a 雙向追加重定向<屏幕輸出|文本輸入>
paste 合並文件行
-d:自定義間隔符,默認是tab
-s:串行處理,非並行
tr 替換 接收輸入流文件
tr用來從標準輸入中通過替換或刪除操作進行字符轉換。tr主要用於刪除文件中控制字符或進行字符轉換。
使用tr時要轉換兩個字符串:字符串1用於查詢,字符串2用於處理各種轉換。
-d 刪除字符串1中所有輸入字符。
-s 刪除所有重復出現字符序列,只保留第一個;即將重復出現字符串壓縮為一個字符串。
a-z 任意小寫
A-Z 任意大寫
0-9 任意數字
[:alnum:] all letters and digits//所有字母和數字
[:alpha:] all letters//所有字母
[:blank:] all horizontal whitespace//所有水平空白
[:cntrl:] all control characters//所有控制字符
\b Ctrl-H 退格符
\f Ctrl-L 走行換頁
\n Ctrl-J 新行
\r Ctrl-M 回車
\t Ctrl-I tab鍵
[:digit:] all digits//所有數字
[:graph:] all printable characters, not including space//所有可打印的字符,不包含空格
[:lower:] all lower case letters//所有小寫字母
[:print:] all printable characters, including space//所有可打印的字符,包含空格
[:punct:] all punctuation characters//所有的標點符號
[:space:] all horizontal or vertical whitespace//所有水平或垂直的空格
[:upper:] all upper case letters//所有大寫字母
[:xdigit:] all hexadecimal digits//所有十六進制數字
[=CHAR=] all characters which are equivalent to CHAR//所有字符
diff 比較文件的差異
1、正常格式(normal diff)
2、上下文格式(context diff) -c參數
3、合並格式(unified diff) -u參數
-i:忽略大小寫
-B:忽略空行
-b:忽略空格
[[email protected] Desktop]# cat file1
a
b
c
3
e
[[email protected] Desktop]# cat file2
a
b
c
d
e
8
[[email protected] Desktop]# diff file1 file2
4c4
< 3
---
> d
6c6
<
---
> 8
[[email protected] Desktop]# diff file2 file1
4c4
< d
---
> 3
6c6
< 8
---
>
[[email protected] Desktop]# diff -c file2 file1
*** file2 2017-04-21 17:25:58.448733455 +0800
--- file1 2017-04-21 17:24:46.026733277 +0800
***************
*** 1,6 ****
a
b
c
! d
e
! 8
--- 1,6 ----
a
b
c
! 3
e
!
[[email protected] Desktop]# diff -u file2 file1
--- file2 2017-04-21 17:25:58.448733455 +0800
+++ file1 2017-04-21 17:24:46.026733277 +0800
@@ -1,6 +1,6 @@
a
b
c
-d
+3
e
-8
+
[[email protected] Desktop]# diff -u file1 file2
--- file1 2017-04-21 17:24:46.026733277 +0800
+++ file2 2017-04-21 17:25:58.448733455 +0800
@@ -1,6 +1,6 @@
a
b
c
-3
+d
e
-
+8
[[email protected] Desktop]#
wc工具: 統計行 字符 單詞數
-l:打印行數
-c:打印字節數
-m:打印字符數
-w:打印單詞數
-L:打印最長行的長度
擴展:
(一)“字節”的定義
字節(Byte)是一種計量單位,表示數據量多少,它是計算機信息技術用於計量存儲容量的一種計量單位。
(二)“字符”的定義
字符是指計算機中使用的文字和符號,比如1、2、3、A、B、C、~!·#¥%……—*()——+、等等。
(三)“字節”與“字符”
不同編碼裏,字符和字節的對應關系不同:
①ASCII碼中,一個英文字母(不分大小寫)占一個字節的空間,一個中文漢字占兩個字節的空間。
②UTF-8編碼中,一個英文字符等於一個字節,一個中文(含繁體)等於三個字節。
③Unicode編碼中,一個英文等於兩個字節,一個中文(含繁體)等於兩個字節。
符號:英文標點占一個字節,中文標點占兩個字節。舉例:英文句號“.”占1個字節的大小,中文句號“。”占2個字節的大小。
④UTF-16編碼中,一個英文字母字符或一個漢字字符存儲都需要2個字節(Unicode擴展區的一些漢字存儲需要4個字節)。
⑤UTF-32編碼中,世界上任何字符的存儲都需要4個字節。
du和df工具:
du:統計目錄或文件大小
-h:以人性化的方式查看 KB、MB、GB
-s:顯示總和
df:查看文件系統的使用情況
-h:以人性化的方式查看 KB、MB、GB
-H:使用1000位進制單位,而不是1024
-T:顯示文件系統類型
-i:列出inode信息
2>文件查找命令
文件查找命令:
命令文件 # which ls //從PATH環境變量 (echo $PATH) # whereis vim 任意文件 A. locate (查詢的數據庫: /var/lib/mlocate/mlocate.db) /etc/cron.daily/mlocate.cron 速度快,缺點:忽略臨時目錄/tmp /var/tmp 需要手動更新數據庫:updatedb B、find 精確查找,磁盤搜索, io讀寫,cpu開銷大 命令格式: find path option key 默認會將查找的結果輸出到屏幕 find path option key [ -exec 或者 -ok shell command {} \;] 將找出來的文件執行某個shell命令 命令功能: 用於在文件樹種查找文件,並作出相應的處理 path:查找範圍 / /etc ... 命令選項: -name 按照文件名查找文件 -iname 按照文件名忽略大小寫查找 -perm 按照文件權限來查找文件 -size 按照文件大小來查找 +size -size size -type 按照文件類型來查找 f d b c l s p -user |-nouser 屬主|沒有uid -group |-nogroup 屬組|沒有gid -mtime +n 按文件更改時間來查找文件,-n指n天以內,+n指n天以前 -atime -n 按文件訪問時間來查 -ctime n 按文件創建時間來查找文件,-n指n天以內,+n指n天以前 -regex 正則表達式 .* 任意多個字符 [0-9] 任意一個數字 # find /etc -regex ‘.*ifcfg-eth[0-9]‘ 動作: -ls -print -delete -exec command 執行參數後面的shell命令,不提示直接執行 -ok command 執行參數後面的shell命令,詢問式 引申: |:管道 將上一條命令所執行的結果(標準輸出)作為下一個命令的輸入 命令1 |命令2 |命令3... xargs命令:將上一條命令所執行的結果作為下一個命令的參數 # echo --help|cat # echo --help|xargs cat # find /var/log -name *.log |ls -l # find /var/log -name *.log |xargs ls -l 參數: -t 表示先打印命令,然後再執行。 -i 將xargs的每項名稱,一般是一行一行賦值給{},可以用{}代替。 統一重命名 # find test/ -name file*|xargs -ti mv {} {}.bak
第五、六大題
1.yumg工具安裝rpm包
2.磁盤劃分
3.acl策略
4.重定向
5,特殊權限
1>配置yum思路:
1》需要有一個倉庫(有很多軟件包,並且存放了軟件包的依賴關系)
2》 告訴yum工具去哪個倉庫裏找相應的軟件包
2>磁盤劃分
1》需要有一塊硬盤
2》使用劃分工具對硬盤進行分區(fdisk)
3》格式化分區
4》掛載使用
3>acl策略
ACL訪問控制策略:
setfacl 命令設置acl策略
-m:修改acl策略
-R:遞歸修改,針對目錄,目錄下的老文件會有acl策略,新建的文件沒有
-d:遞歸修改,默認acl策略,針對目錄 目錄下的老文件不會有acl策略,新建的文件有acl策略
-x:刪除某個用戶或某個組的acl策略
-b:刪除所有acl策略
mask:定義除了擁有者和其他人以外的最大權限
getfacl 命令查看文件的acl策略
demo:
setfacl -m u:harry:rw file1
setfacl -m g:admin:rwx file2
setfacl -x u:harry file1
setfacl -x g:admin file1
setfacl -b file2
setfacl -x m:: file1
-R -d
說明:
-R和-d一起使用,該目錄本身和該目錄下的普通文件不會繼承acl策略;該目錄下新創建的文件和目錄以及老的目錄會繼承acl策略。
4>重定向
標準輸入(stdin): 文件描述符 0
標準輸出(stdout): 文件描述符 1
標準錯誤(stderr): 文件描述符 2
重定向:將結果重定向到某個文件裏
> 和 1>:標準輸出重定向
2>:標準錯誤重定向
>>:追加
<:標準輸入
&>:標準輸出和標準錯誤重定向
5>特殊權限
setuid/setgid/sticky u g o
setuid(4/s) --冒險位,臨時擁有擁有者的權限
#chmod 4755 /usr/bin/vim
#chmod u+s /usr/bin/vim
[[email protected] tmp]# ll -d /usr/bin/vim
-rwxr-xr-x 1 root root 2729356 2009-06-12 /usr/bin/vim
[[email protected] tmp]# ll -d /usr/bin/vim
-rwsr-xr-x 1 root root 2729356 2009-06-12 /usr/bin/vim
setgid(2/s) --強制位,針對目錄來操作,可以讓新生成目錄繼承父目錄的屬組權限
(小s是一開就有執行權限。而大S是一開始沒有執行權限)
# chmod 2755 /test
# chmod g+s /test
sticky --粘滯位,在公共目錄中,用戶只能管理(刪除)自己的文件(擁有者)
# chmod 1755 /test1
# chmod o+t /tse
第一次考試總結