shell命令筆記大全

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)注公眾號


qrcode_for_gh_e6ca5e404568_258.jpg
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,818評論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,185評論 3 414
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,656評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,647評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,446評論 6 405
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 54,951評論 1 321
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,041評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,189評論 0 287
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,718評論 1 333
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,602評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 42,800評論 1 369
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,316評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,045評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,419評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,671評論 1 281
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,420評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 47,755評論 2 371