1、簡要說明命令的作用(顯示命令所處的man分類頁面)
which command
2、更加詳細(xì)的說明文檔
info command
3、查看程序的binary文件所在路徑
which command
4、查看程序的搜索路徑
whereis command
5、創(chuàng)建和刪除
創(chuàng)建:mkdir
刪除:rm
刪除非空目錄:rm -rf file目錄
刪除日志 rm *log (等價(jià): $find ./ -name “*log” -exec rm {} ;)
移動(dòng):mv
復(fù)制:cp (復(fù)制目錄:cp -r )
6、目錄切換
找到文件/目錄位置:cd
切換到上一個(gè)工作目錄: cd -
切換到home目錄: cd or cd ~
顯示當(dāng)前路徑: pwd
更改當(dāng)前工作路徑為path: $cd path
7 、查找文件和目錄 find/locate
搜尋文件或目錄:
$find ./ -name "core*" | xargs file
find是實(shí)時(shí)查找,如果需要更快的查詢,可試試locate;locate會(huì)為文件系統(tǒng)建立索引數(shù)據(jù)庫,如果有文件更新,需要定期執(zhí)行更新命令來更新索引庫:
$locate string
尋找包含有string的路徑:
$updatedb
與find不同,locate并不是實(shí)時(shí)查找。你需要更新數(shù)據(jù)庫,以獲得最新的文件索引信息。
8、查看文件內(nèi)容
查看文件:cat vi head tail more less
顯示時(shí)同時(shí)顯示行號:
$cat -n
按頁顯示列表內(nèi)容:
$ls -al | more
只看前10行:
$head - 10 **
顯示文件第一行:
$head -1 filename
顯示文件倒數(shù)第五行:
$tail -5 filename
查看兩個(gè)文件間的差別:
$diff file1 file2
動(dòng)態(tài)顯示文本最新信息:
$tail -f crawler.log
9、文件目錄和權(quán)限修改
改變文件的擁有者 chown
改變文件讀、寫、執(zhí)行等屬性 chmod
遞歸子目錄修改: chown -R tuxapp source/
增加腳本可執(zhí)行權(quán)限: chmod a+x myscript
10、給文件增加別名
創(chuàng)建符號鏈接/硬鏈接:
ln cc ccAgain :硬連接;刪除一個(gè),將仍能找到;
ln -s cc ccTo :符號鏈接(軟鏈接);刪除源,另一個(gè)無法使用;(后面一個(gè)ccTo 為新建的文件)
11、管道和重定向
批處理命令連接執(zhí)行,使用 |
串聯(lián): 使用分號 ;
前面成功,則執(zhí)行后面一條,否則,不執(zhí)行:&&
前面失敗,則后一條執(zhí)行: ||
ls /proc && echo suss! || echo failed.
能夠提示命名是否執(zhí)行成功or失敗;
重定向
ls proc/*.c > list 2> &l 將標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤重定向到同一文件;
12、 find文件查找
查找txt和pdf文件:
find . \( -name "*.txt" -o -name "*.pdf" \) -print
正則方式查找.txt和pdf:
find . -regex ".*\(\.txt|\.pdf\)$"
-iregex: 忽略大小寫的正則
否定參數(shù) ,查找所有非txt文本:
find . ! -name "*.txt" -print
指定搜索深度,打印出當(dāng)前目錄的文件(深度為1):
find . -maxdepth 1 -type f
按類型搜索
find . -type d -print //只列出所有目錄
-type f 文件 / l 符號鏈接 / d 目錄
按時(shí)間搜索
-atime 訪問時(shí)間 (單位是天,分鐘單位則是-amin,以下類似)
-mtime 修改時(shí)間 (內(nèi)容被修改)
-ctime 變化時(shí)間 (元數(shù)據(jù)或權(quán)限變化)
最近第7天被訪問過的所有文件:
find . -atime 7 -type f -print
最近7天內(nèi)被訪問過的所有文件:
find . -atime -7 -type f -print
查詢7天前被訪問過的所有文件:
find . -atime +7 type f -print
按大小搜索:
w字 k M G 尋找大于2k的文件:
find . -type f -size +2k
按權(quán)限查找:
find . -type f -perm 644 -print //找具有可執(zhí)行權(quán)限的所有文件
按用戶查找:
find . -type f -user weber -print// 找用戶weber所擁有的文件
13、grep文本搜索
-o 只輸出匹配的文本行 VS -v 只輸出沒有匹配的文本行
-c 統(tǒng)計(jì)文件中包含文本的次數(shù)
grep -c “text” filename
-n 打印匹配的行號
-i 搜索時(shí)忽略大小寫
-l 只打印文件名
14、xargs命令行參數(shù)轉(zhuǎn)換
xargs 能夠?qū)⑤斎霐?shù)據(jù)轉(zhuǎn)化為特定命令的命令行參數(shù);這樣,可以配合很多命令來組合使用。比如grep,比如find; - 將多行輸出轉(zhuǎn)化為單行輸出
xargs參數(shù)說明
-d 定義定界符 (默認(rèn)為空格 多行的定界符為 n)
-n 指定輸出為多行
-I {} 指定替換字符串,這個(gè)字符串在xargs擴(kuò)展時(shí)會(huì)被替換掉,用于待執(zhí)行的命令需要多個(gè)參數(shù)時(shí)
-0:指定0為輸入定界符
cat file.txt | xargs -I {} ./command.sh -p {} -1
#統(tǒng)計(jì)程序行數(shù)
find source_dir/ -type f -name "*.cpp" -print0 |xargs -0 wc -l
15、sort排序
字段說明
-n 按數(shù)字進(jìn)行排序 VS -d 按字典序進(jìn)行排序
-r 逆序排序
-k N 指定按第N列排序
16、uniq消除重復(fù)行
消除重復(fù)行
sort unsort.txt | uniq
統(tǒng)計(jì)各行在文件中出現(xiàn)的次數(shù)
sort unsort.txt | uniq -c
找出重復(fù)行
sort unsort.txt | uniq -d
可指定每行中需要比較的重復(fù)內(nèi)容:-s 開始位置 -w 比較字符數(shù)
17、tr進(jìn)行轉(zhuǎn)換
通用用法
echo 12345 | tr '0-9' '9876543210' //加解密轉(zhuǎn)換,替換對應(yīng)字符
cat text| tr '\t' ' ' //制表符轉(zhuǎn)空格
tr刪除字符
cat file | tr -d '0-9' // 刪除所有數(shù)字
-c 求補(bǔ)集
cat file | tr -c '0-9' //獲取文件中所有數(shù)字
cat file | tr -d -c '0-9 \n' //刪除非數(shù)字?jǐn)?shù)據(jù)
tr壓縮字符
tr -s 壓縮文本中出現(xiàn)的重復(fù)字符;最常用于壓縮多余的空格:
cat file | tr -s ' '
字符類
tr中可用各種字符類:
alnum:字母和數(shù)字
alpha:字母
digit:數(shù)字
space:空白字符
lower:小寫
upper:大寫
cntrl:控制(非可打印)字符
print:可打印字符
使用方法:tr [:class:] [:class:]
tr '[:lower:]' '[:upper:]'
18、cut切分文本
截取文件的第2列和第4列
cut -f2,4 filename
去文件除第3列的所有列
cut -f3 --complement filename
-d 指定定界符
cat -f2 -d";" filename
cut 取的范圍
N- 第N個(gè)字段到結(jié)尾
-M 第1個(gè)字段為M
N-M N到M個(gè)字段
cut 取的單位
-b 以字節(jié)為單位
-c 以字符為單位
-f 以字段為單位(使用定界符)
示例:
cut -c1-5 file //打印第一到5個(gè)字符
cut -c-2 file //打印前2個(gè)字符
截取文本的第5到第7列
$echo string | cut -c5-7
19、paste 按列拼接文本
將兩個(gè)文本按列拼接到一起;
cat file1
1
2
cat file2
colin
book
paste file1 file2
1 colin
2 book
默認(rèn)的定界符是制表符,可以用-d指明定界符:
paste file1 file2 -d ","
1,colin
2,book
20、wc統(tǒng)計(jì)行和字符
$wc -l file // 統(tǒng)計(jì)行數(shù)
$wc -w file // 統(tǒng)計(jì)單詞數(shù)
$wc -c file // 統(tǒng)計(jì)字符數(shù)
21、sed 文本替換利器
首處替換
sed 's/text/replace_text/' file //替換每一行的第一處匹配的text
全局替換
sed 's/text/replace_text/g' file
默認(rèn)替換后,輸出替換后的內(nèi)容,如果需要直接替換原文件,使用-i:
sed -i 's/text/repalce_text/g' file
移除空白行
sed '/^$/d' file
變量轉(zhuǎn)換
已匹配的字符串通過標(biāo)記&來引用.
echo this is en example | sed 's/\w+/[&]/g'
$>[this] [is] [en] [example]
子串匹配標(biāo)記
第一個(gè)匹配的括號內(nèi)容使用標(biāo)記 1 來引用
sed 's/hello\([0-9]\)/\1/'
雙引號求值
sed通常用單引號來引用;也可使用雙引號,使用雙引號后,雙引號會(huì)對表達(dá)式求值:
sed 's/$var/HLLOE/'
當(dāng)使用雙引號時(shí),我們可以在sed樣式和替換字符串中指定變量;
eg:
p=patten
r=replaced
echo "line con a patten" | sed "s/$p/$r/g"
$>line con a replaced
其它示例
字符串插入字符:將文本中每行內(nèi)容(ABCDEF) 轉(zhuǎn)換為 ABC/DEF:
sed 's/^.\{3\}/&\//g' file
22、awk數(shù)據(jù)流處理工具
* awk腳本結(jié)構(gòu)
awk ' BEGIN{ statements } statements2 END{ statements } '
* 工作方式
1.執(zhí)行begin中語句塊;
2.從文件或stdin中讀入一行,然后執(zhí)行statements2,重復(fù)這個(gè)過程,直到文件全部被讀取完畢;
3.執(zhí)行end語句塊;
print 打印當(dāng)前行
* 使用不帶參數(shù)的print時(shí),會(huì)打印當(dāng)前行
echo -e "line1\nline2" | awk 'BEGIN{print "start"} {print } END{ print "End" }'
* print 以逗號分割時(shí),參數(shù)以空格定界;
echo | awk ' {var1 = "v1" ; var2 = "V2"; var3="v3"; \
print var1, var2 , var3; }'
$>v1 V2 v3
* 使用-拼接符的方式(”“作為拼接符);
echo | awk ' {var1 = "v1" ; var2 = "V2"; var3="v3"; \
print var1"-"var2"-"var3; }'
$>v1-V2-v3
特殊變量: NR NF $0 $1 $2
NR:表示記錄數(shù)量,在執(zhí)行過程中對應(yīng)當(dāng)前行號;
NF:表示字段數(shù)量,在執(zhí)行過程總對應(yīng)當(dāng)前行的字段數(shù);
$0:這個(gè)變量包含執(zhí)行過程中當(dāng)前行的文本內(nèi)容;
$1:第一個(gè)字段的文本內(nèi)容;
$2:第二個(gè)字段的文本內(nèi)容;
echo -e "line1 f2 f3\n line2 \n line 3" | awk '{print NR":"$0"-"$1"-"$2}'
* 打印每一行的第二和第三個(gè)字段
awk '{print $2, $3}' file
* 統(tǒng)計(jì)文件的行數(shù)
awk ' END {print NR}' file
* 累加每一行的第一個(gè)字段
echo -e "1\n 2\n 3\n 4\n" | awk 'BEGIN{num = 0 ;
print "begin";} {sum += $1;} END {print "=="; print sum }'
傳遞外部變量
echo | awk '{print vara}' vara=$var # 輸入來自stdin
awk '{print vara}' vara=$var file # 輸入來自文件
用樣式對awk處理的行進(jìn)行過濾
awk 'NR < 5' #行號小于5
awk 'NR==1,NR==4 {print}' file #行號等于1和4的打印出來
awk '/linux/' #包含linux文本的行(可以用正則表達(dá)式來指定,超級強(qiáng)大)
awk '!/linux/' #不包含linux文本的行
設(shè)置定界符
使用-F來設(shè)置定界符(默認(rèn)為空格):
awk -F: '{print $NF}' /etc/passwd
讀取命令輸出
使用getline,將外部shell命令的輸出讀入到變量cmdout中:
echo | awk '{"grep root /etc/passwd" | getline cmdout; print cmdout }'
在awk中使用循環(huán)
for(i=0;i<10;i++){print $i;}
for(i in array){print array[i];}
index(string,search_string):返回search_string在string中出現(xiàn)的位置
sub(regex,replacement_str,string):將正則匹配到的第一處內(nèi)容替換為replacement_str;
match(regex,string):檢查正則表達(dá)式是否能夠匹配字符串;
length(string):返回字符串長度
23、df查看磁盤空間
查看磁盤空間利用大小:
df -h
-h: human縮寫,以易讀的方式顯示結(jié)果(即帶單位:比如M/G,如果不加這個(gè)參數(shù),顯示的數(shù)字以B為單位)
查看當(dāng)前目錄所占空間大小:
du -sh
-h 人性化顯示
-s 遞歸整個(gè)目錄的大小
24、打包和壓縮
打包
打包是將多個(gè)文件歸并到一個(gè)文件:
tar -cvf etc.tar /etc <==僅打包,不壓縮!
-c :打包選項(xiàng)
-v :顯示打包進(jìn)度
-f :使用檔案文件
注:有的系統(tǒng)中指定參數(shù)時(shí)不需要在前面加上-,直接使用tar xvf
壓縮
$gzip demo.txt
生成 demo.txt.gz
25、解包和解壓縮
解包
tar -xvf demo.tar
-x 解包選項(xiàng)
解壓后綴為 .tar.gz的文件 1. 先解壓縮,生成**.tar:
$gunzip demo.tar.gz
解包:
$tar -xvf demo.tar
$bzip2 -d demo.tar.bz2
bz2解壓:
tar jxvf demo.tar.bz2
如果tar 不支持j,則同樣需要分兩步來解包解壓縮,使用bzip2來解壓,再使用tar解包:
bzip2 -d demo.tar.bz2
tar -xvf demo.tar
-d decompose,解壓縮
tar解壓參數(shù)說明:
-z 解壓gz文件
-j 解壓bz2文件
-J 解壓xz文件
26、查詢進(jìn)程
查詢正在運(yùn)行的進(jìn)程信息
$ps -ef
eg:查詢歸屬于用戶colin115的進(jìn)程
$ps -ef | grep colin115
$ps -lu colin115
查詢進(jìn)程ID(適合只記得部分進(jìn)程字段)
$pgrep 查找進(jìn)程
eg:查詢進(jìn)程名中含有re的進(jìn)程
[/home/weber#]pgrep -l re
2 kthreadd
28 ecryptfs-kthrea
29515 redis-server
以完整的格式顯示所有的進(jìn)程
$ps -ajx
顯示進(jìn)程信息,并實(shí)時(shí)更新
$top
查看端口占用的進(jìn)程狀態(tài):
lsof -i:3306
查看用戶username的進(jìn)程所打開的文件
$lsof -u username
查詢init進(jìn)程當(dāng)前打開的文件
$lsof -c init
查詢指定的進(jìn)程ID(23295)打開的文件:
$lsof -p 23295
查詢指定目錄下被進(jìn)程開啟的文件(使用+D 遞歸目錄):
$lsof +d mydir1/
27、終止進(jìn)程
殺死指定PID的進(jìn)程 (PID為Process ID)
$kill PID
殺死相關(guān)進(jìn)程
kill -9 3434
殺死job工作 (job為job number)
$kill %job
28、進(jìn)程監(jiān)控
查看系統(tǒng)中使用CPU、使用內(nèi)存最多的進(jìn)程;
$top
(->)P
輸入top命令后,進(jìn)入到交互界面;接著輸入字符命令后顯示相應(yīng)的進(jìn)程狀態(tài):
對于進(jìn)程,平時(shí)我們最常想知道的就是哪些進(jìn)程占用CPU最多,占用內(nèi)存最多。以下兩個(gè)命令就可以滿足要求:
P:根據(jù)CPU使用百分比大小進(jìn)行排序。
M:根據(jù)駐留內(nèi)存大小進(jìn)行排序。
i:使top不顯示任何閑置或者僵死進(jìn)程。
29、分析線程棧
使用命令pmap,來輸出進(jìn)程內(nèi)存的狀況,可以用來分析線程堆棧;
$pmap PID
eg:
[/home/weber#]ps -fe| grep redis
weber 13508 13070 0 08:14 pts/0 00:00:00 grep --color=auto redis
weber 29515 1 0 2013 ? 02:55:59 ./redis-server redis.conf
[/home/weber#]pmap 29515
29515: ./redis-server redis.conf
08048000 768K r-x-- /home/weber/soft/redis-2.6.16/src/redis-server
08108000 4K r---- /home/weber/soft/redis-2.6.16/src/redis-server
08109000 12K rw--- /home/weber/soft/redis-2.6.16/src/redis-server
30、監(jiān)控 CPU
查看CPU使用率
$sar -u
eg:
$sar -u 1 2
[/home/weber#]sar -u 1 2
Linux 2.6.35-22-generic-pae (MyVPS) 06/28/2014 _i686_ (1 CPU)
09:03:59 AM CPU %user %nice %system %iowait %steal %idle
09:04:00 AM all 0.00 0.00 0.50 0.00 0.00 99.50
09:04:01 AM all 0.00 0.00 0.00 0.00 0.00 100.00
后面的兩個(gè)參數(shù)表示監(jiān)控的頻率,比如例子中的1和2,表示每秒采樣一次,總共采樣2次;
查看CPU平均負(fù)載
$sar -q 1 2
sar指定-q后,就能查看運(yùn)行隊(duì)列中的進(jìn)程數(shù)、系統(tǒng)上的進(jìn)程大小、平均負(fù)載等;
31、查詢內(nèi)存
查看內(nèi)存使用狀況 sar指定-r之后,可查看內(nèi)存使用狀況;
$sar -r 1 2
09:08:48 AM kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact
09:08:49 AM 17888 359784 95.26 37796 73272 507004 65.42 137400 150764
09:08:50 AM 17888 359784 95.26 37796 73272 507004 65.42 137400 150764
Average: 17888 359784 95.26 37796 73272 507004 65.42 137400 150764
查看內(nèi)存使用量
$free -m
32、查詢網(wǎng)絡(luò)服務(wù)和端口
netstat 命令用于顯示各種網(wǎng)絡(luò)相關(guān)信息,如網(wǎng)絡(luò)連接,路由表,接口狀態(tài) (Interface Statistics),masquerade 連接,多播成員 (Multicast Memberships) 等等。
列出所有端口 (包括監(jiān)聽和未監(jiān)聽的):
netstat -a
列出所有 tcp 端口:
netstat -at
列出所有有監(jiān)聽的服務(wù)狀態(tài):
netstat -l
使用netstat工具查詢端口:
$netstat -antp | grep 6379
tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 25501/redis-server
$ps 25501
PID TTY STAT TIME COMMAND
25501 ? Ssl 28:21 ./redis-server ./redis.conf
lsof(list open files)是一個(gè)列出當(dāng)前系統(tǒng)打開文件的工具。在linux環(huán)境下,任何事物都以文件的形式存在,通過文件不僅僅可以訪問常規(guī)數(shù)據(jù),還可以訪問網(wǎng)絡(luò)連接和硬件。所以如傳輸控制協(xié)議 (TCP) 和用戶數(shù)據(jù)報(bào)協(xié)議 (UDP) 套接字等; 在查詢網(wǎng)絡(luò)端口時(shí),經(jīng)常會(huì)用到這個(gè)工具。
查詢7902端口現(xiàn)在運(yùn)行什么程序:
#分為兩步
#第一步,查詢使用該端口的進(jìn)程的PID;
$lsof -i:7902
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
WSL 30294 tuapp 4u IPv4 447684086 TCP 10.6.50.37:tnos-dp (LISTEN)
#查到30294
#使用ps工具查詢進(jìn)程詳情:
$ps -fe | grep 30294
tdev5 30294 26160 0 Sep10 ? 01:10:50 tdesl -k 43476
root 22781 22698 0 00:54 pts/20 00:00:00 grep 11554
33、網(wǎng)絡(luò)路由
查看路由狀態(tài):
$route -n
發(fā)送ping包到地址IP:
$ping IP
探測前往地址IP的路由路徑:
$traceroute IP
DNS查詢,尋找域名domain對應(yīng)的IP:
$host domain
反向DNS查詢:
$host IP
34、鏡像下載
直接下載文件或者網(wǎng)頁:
wget url
常用選項(xiàng):
–limit-rate :下載限速
-o:指定日志文件;輸出都寫入日志;
-c:斷點(diǎn)續(xù)傳
35、登錄
SSH登陸:
$ssh ID@host
ssh登陸遠(yuǎn)程服務(wù)器host,ID為用戶名。
ftp/sftp文件傳輸:
$sftp ID@host
登陸服務(wù)器host,ID為用戶名。sftp登陸后,可以使用下面的命令進(jìn)一步操作:
get filename # 下載文件
put filename # 上傳文件
ls # 列出host上當(dāng)前路徑的所有文件
cd # 在host上更改當(dāng)前路徑
lls # 列出本地主機(jī)上當(dāng)前路徑的所有文件
lcd # 在本地主機(jī)更改當(dāng)前路徑
lftp同步文件夾(類似rsync工具):
lftp -u user:pass host
lftp user@host:~> mirror -n
36、網(wǎng)絡(luò)復(fù)制
將本地localpath指向的文件上傳到遠(yuǎn)程主機(jī)的path路徑:
$scp localpath ID@host:path
以ssh協(xié)議,遍歷下載path路徑下的整個(gè)文件系統(tǒng),到本地的localpath:
$scp -r ID@site:path localpath
37、用戶
添加用戶
$useradd -m username
該命令為用戶創(chuàng)建相應(yīng)的帳號和用戶目錄/home/username;
用戶添加之后,設(shè)置密碼:
密碼以交互方式創(chuàng)建:
$passwd username
$userdel -r username
不帶選項(xiàng)使用 userdel,只會(huì)刪除用戶。用戶的家目錄將仍會(huì)在/home目錄下。要完全的刪除用戶信息,使用-r選項(xiàng);
帳號切換 登錄帳號為userA用戶狀態(tài)下,切換到userB用戶帳號工作:
$su userB
進(jìn)入交互模型,輸入密碼授權(quán)進(jìn)入;
38、用戶的組
默認(rèn)情況下,添加用戶操作也會(huì)相應(yīng)的增加一個(gè)同名的組,用戶屬于同名組; 查看當(dāng)前用戶所屬的組:
$groups
一個(gè)用戶可以屬于多個(gè)組,將用戶加入到組:
$usermod -G groupNmame username
變更用戶所屬的根組(將用加入到新的組,并從原有的組中除去):
$usermod -g groupName username
系統(tǒng)的所有用戶及所有組信息分別記錄在兩個(gè)文件中:/etc/passwd , /etc/group 默認(rèn)情況下這兩個(gè)文件對所有用戶可讀:
查看所有用戶及權(quán)限:
$more /etc/passwd
查看所有的用戶組及權(quán)限:
$more /etc/group
39、用戶權(quán)限
使用ls -l可查看文件的屬性字段,文件屬性字段總共有10個(gè)字母組成,第一個(gè)字母表示文件類型,如果這個(gè)字母是一個(gè)減號”-”,則說明該文件是一個(gè)普通文件。字母”d”表示該文件是一個(gè)目錄,字母”d”,是dirtectory(目錄)的縮寫。 后面的9個(gè)字母為該文件的權(quán)限標(biāo)識(shí),3個(gè)為一組,分別表示文件所屬用戶、用戶所在組、其它用戶的讀寫和執(zhí)行權(quán)限; 例如:
[/home/weber#]ls -l /etc/group
-rwxrw-r-- colin king 725 2013-11-12 15:37 /home/colin/a
表示這個(gè)文件對文件擁有者colin這個(gè)用戶可讀寫、可執(zhí)行;對colin所在的組(king)可讀可寫;對其它用戶只可讀
使用chmod命令更改文件的讀寫權(quán)限,更改讀寫權(quán)限有兩種方法,一種是字母方式,一種是數(shù)字方式
字母方式:
$chmod userMark(+|-)PermissionsMark
userMark取值:
u:用戶
g:組
o:其它用戶
a:所有用戶
PermissionsMark取值:
r:讀
w:寫
x:執(zhí)行
例如:
$chmod a+x main 對所有用戶給文件main增加可執(zhí)行權(quán)限
$chmod g+w blogs 對組用戶給文件blogs增加可寫權(quán)限
數(shù)字方式:
數(shù)字方式直接設(shè)置所有權(quán)限,相比字母方式,更加簡潔方便;
使用三位八進(jìn)制數(shù)字的形式來表示權(quán)限,第一位指定屬主的權(quán)限,第二位指定組權(quán)限,第三位指定其他用戶的權(quán)限,每位通過4(讀)、2(寫)、1(執(zhí)行)三種數(shù)值的和來確定權(quán)限。如6(4+2)代表有讀寫權(quán),7(4+2+1)有讀、寫和執(zhí)行的權(quán)限。
例如:
$chmod 740 main 將main的用戶權(quán)限設(shè)置為rwxr-----
40、環(huán)境變量
bashrc與profile都用于保存用戶的環(huán)境信息,bashrc用于交互式non-loginshell,而profile用于交互式login shell。
/etc/profile,/etc/bashrc 是系統(tǒng)全局環(huán)境變量設(shè)定
~/.profile,~/.bashrc用戶目錄下的私有環(huán)境變量設(shè)定
當(dāng)?shù)侨胂到y(tǒng)獲得一個(gè)shell進(jìn)程時(shí),其讀取環(huán)境設(shè)置腳本分為三步:
首先讀入的是全局環(huán)境變量設(shè)置文件/etc/profile,然后根據(jù)其內(nèi)容讀取額外的文檔,如/etc/profile.d和/etc/inputrc
讀取當(dāng)前登錄用戶Home目錄下的文件~/.bash_profile,其次讀取~/.bash_login,最后讀取~/.profile,這三個(gè)文檔設(shè)定基本上是一樣的,讀取有優(yōu)先關(guān)系
讀取~/.bashrc
~/.profile與~/.bashrc的區(qū)別:
這兩者都具有個(gè)性化定制功能
~/.profile可以設(shè)定本用戶專有的路徑,環(huán)境變量,等,它只能登入的時(shí)候執(zhí)行一次
~/.bashrc也是某用戶專有設(shè)定文檔,可以設(shè)定路徑,命令別名,每次shell script的執(zhí)行都會(huì)使用它一次
例如,我們可以在這些環(huán)境變量中設(shè)置自己經(jīng)常進(jìn)入的文件路徑,以及命令的快捷方式:
.bashrc
alias m='more'
alias cp='cp -i'
alias mv='mv -i'
alias ll='ls -l'
alias lsl='ls -lrt'
alias lm='ls -al|more'
log=/opt/applog/common_dir
unit=/opt/app/unittest/common
.bash_profile
. /opt/app/tuxapp/openav/config/setenv.prod.sh.linux
export PS1='$PWD#'
通過上述設(shè)置,我們進(jìn)入log目錄就只需要輸入cd $log即可;
41、查詢系統(tǒng)版本
查看Linux系統(tǒng)版本:
$uname -a
$lsb_release -a
查看Unix系統(tǒng)版本:操作系統(tǒng)版本:
$more /etc/release
42 、查詢硬件信息
查看CPU使用情況:
$sar -u 5 10
查詢CPU信息:
$cat /proc/cpuinfo
查看CPU的核的個(gè)數(shù):
$cat /proc/cpuinfo | grep processor | wc -l
查看內(nèi)存信息:
$cat /proc/meminfo
顯示內(nèi)存page大小(以KByte為單位):
$pagesize
顯示架構(gòu):
$arch
43、設(shè)置系統(tǒng)時(shí)間
顯示當(dāng)前系統(tǒng)時(shí)間:
$date
設(shè)置系統(tǒng)日期和時(shí)間(格式為2014-09-15 17:05:00):
$date -s 2014-09-15 17:05:00
$date -s 2014-09-15
$date -s 17:05:00
設(shè)置時(shí)區(qū):
選擇時(shí)區(qū)信息。命令為:tzselect
根據(jù)系統(tǒng)提示,選擇相應(yīng)的時(shí)區(qū)信息。
強(qiáng)制把系統(tǒng)時(shí)間寫入CMOS(這樣,重啟后時(shí)間也正確了):
$clock -w
警告
設(shè)置系統(tǒng)時(shí)間需要root用戶權(quán)限.
格式化輸出當(dāng)前日期時(shí)間:
$date +%Y%m%d.%H%M%S
>20150512.173821
44、檢測和設(shè)置系統(tǒng)資源限制
顯示當(dāng)前所有的系統(tǒng)資源limit 信息:
ulimit – a
對生成的 core 文件的大小不進(jìn)行限制:
ulimit – c unlimited
更多關(guān)注公眾號