1. 程式人生 > >第一次考試總結

第一次考試總結

關鍵詞 垂直 結果 bin 文件夾 強行 運行 16px 個數字

第一大題

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]

/* */ 桌面]# ls
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







 

第一次考試總結