ºìÁªLinuxÃÅ»§
Linux°ïÖú

Bash³£ÓÃÎı¾´¦Àí¹¤¾ßÓ÷¨

·¢²¼Ê±¼ä:2014-06-09 11:13:55À´Ô´:ºìÁª×÷Õß:velcbo
1¡¢grepÃüÁ²éÕÒÎļþÀï·ûºÏÌõ¼þµÄ×Ö·û´®
Ò»ÖÖÇ¿´óµÄÎı¾ËÑË÷¹¤¾ß£¬ËüÄÜʹÓÃÕýÔò±í´ïʽËÑË÷Îı¾£¬²¢°ÑÆ¥ÅäµÄÐдòÓ¡³öÀ´
Óï·¨¸ñʽ: grep [options]
-i£ºignore-case ºöÂÔ´óСд²î±ð
-c£ºcount Ö»´òÓ¡Æ¥ÅäµÄ×ÜÐÐÊý£¬²»ÏÔʾƥÅäµÄÄÚÈÝÐÅÏ¢
-n£ºline-number ÔÚÆ¥ÅäµÄÐÐÇ°Ãæ´òÓ¡ÐкÅ
-v£ºrevert-match ·´¼ìË÷£¬Ö»ÏÔʾ²»Æ¥ÅäµÄÐÐ
-r£ºrecursionµÝ¹éµØ£¬¶Áȡÿ¸öÎļþ¼ÐϵÄËùÓеµ°¸
-l £º²»ÏÔʾƽ³£Ò»°ãµÄÊä³ö½á¹û£¬Ö»ÏÔʾ·ûºÏµÄÎļþÃû³Æ

2¡¢awkÃüÁһ¸öÇ¿´óµÄÎı¾´¦Àí¹¤¾ß£¬ÖðÐÐɨÃ裬´ÓµÚÒ»Ðе½×îºóÒ»ÐÐ
ʹÓÃÓï·¨£ºawk 'pattern{action}' filename
pattern£ºÕýÔò±í´ïʽ
action£ºÊä³öÓï·¨
Äã¿ÉÒÔÊ¡ÂÔpatternºÍ actionÖ®Ò»£¬µ«²»ÄÜÁ½ÕßͬʱʡÂÔ£¬µ±Ê¡ÂÔpatternʱûÓÐÑùʽƥÅ䣬±íʾ¶ÔËùÓÐÐУ¨¼Ç¼£©¾ùÖ´ÐвÙ×÷£¬Ê¡ÂÔactionʱִÐÐȱʡµÄ²Ù×÷----ÔÚ±ê×¼Êä³öÉÏÏÔʾ¡£
Óï·¨¸ñʽ£ºawk [ -F re] [parameter...]
-F re£ºÔÊÐíawk¸ü¸ÄÆä×ֶηָô·û
parameter: ¸Ã²ÎÊý°ïÖúΪ²»Í¬µÄ±äÁ¿¸³Öµ
-v£º¶¨Òå±äÁ¿
-f£ºÖ¸¶¨½Å±¾Îļþ
ÈýÖÖµ÷Ó÷½Ê½£º
1¡¢awkÃüÁîÐÐ
2¡¢Ê¹ÓÃ-fÑ¡Ïîµ÷ÓÃawk³ÌÐò£¬ÀýÈ磺awk -f progfile file £¬ÆäÖÐprogfileÊÇÖ¸¶¨Ò»¸öÎı¾Îļþ
3¡¢ÀûÓÃÃüÁî½âÊÍÆ÷µ÷ÓÃawk³ÌÐò£¬ÐèÒªÔÚawk½Å±¾ÉùÃ÷µ÷Ó÷½Ê½£¬ÀýÈ磺#£¡/bin/awk -f
ÃüÁîÐз½Ê½Ê¹ÓÃÄÚÈݹýÂË£º
[root@test ~]# awk '/root/' /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
#ÏÔʾ·Ö¸ô·ûÖ¸¶¨ÁУ¨1ÁУ©£¬·Ö¸ô·ûĬÈÏÊǿոñ£¬$1ÊÇÏÔʾ·Ö¸ô·ûÇ°ÃæÒ»ÁÐ

#ÏÔʾtestÎļþÖÐÆ¥Åä123µÄÐÐ
[root@test ~]# awk '/123/ {print $1}' test
#ÏÔʾËùÓÐÒÔa»òf¿ªÍ·µÄÐÐ

4¡¢sedÃüÁһÖÖÔÚÏ߱༭Æ÷£¬ËüÒ»´Î´¦ÀíÒ»ÐÐÄÚÈÝ
´¦Àíʱ£¬°Ñµ±Ç°´¦ÀíµÄÐд洢ÔÚÁÙʱ»º³åÇøÖУ¬³ÆÎª'ģʽ¿Õ¼ä'£¨pattern space£©£¬½Ó×ÅÓÃsedÃüÁî´¦Àí»º³åÇøÖеÄÄÚÈÝ£¬´¦ÀíÍê³Éºó£¬°Ñ»º³åÇøµÄÄÚÈÝËÍÍùÆÁÄ»¡£½Ó×Å´¦ÀíÏÂÒ»ÐУ¬ÕâÑù²»¶ÏÖØ¸´£¬Ö±µ½Îļþĩβ¡£ÎļþÄÚÈݲ¢Ã»Óиı䣬³ý·ÇÄãʹÓÃÖØ¶¨Ïò´æ´¢Êä³ö¡£
³£ÓòÎÊý£º
i ²åÈë
s Ìæ»»
e ¶àµã±à¼­
d ɾ³ý
a ×·¼Óµ½ÐкóÃæ
g È«²¿Ìæ»»£¬ÎÞgÖ»Ìæ»»Ã¿ÐеÚÒ»¸ö
q Í˳ö
#½«ËùÓаüº¬aaaÌæ»»Îªjjj
sed 's/aaa/jjj/' test
#°ÑÕâÐÐ×¢ÊÍÈ¥µô£¬Ìæ»»Îı¾
sed -i 's/#ServerName www.example.com:80/ ServerName 192.168.0.202:80/g'
½«ËùÓаüº¬/var/www/html/Ìæ»»Îª/opt/web/£¬·Ö¸ô·û'/'¿ÉÒÔÓñðµÄ·ûºÅ´úÌæ£¬±ÈÈç ',' '_' '|' µÈ
sed -i s/\/var\/www\/html/\/opt\/web/' /etc/httpd/conf/httpd.conf
µÈͬÓÚ:
sed -i 's_/var/www/html/_/opt/web/_' /etc/httpd/conf/httpd.conf
#²åÈëÒ»Ðе½391ÐУ¬°üÀ¨ÌØÊâ·ûºÅ'/'
sed -i '391 s/^/AddType application\/x-httpd-php .php.html/' httpd.conf
#Ö»´òÓ¡µÚÒ»ÐÐÊý¾Ý
sed -n '1p' /etc/passwd
#´òÓ¡°üº¬rootµÄÐУ¬½ûֹĬÈÏÊä³ö
sed -n '/root/p' /etc/passwd
#ɾ³ý13ÐÐ
sed -i '13d' /etc/passwd
#ɾ³ý13Ðе½×îºóÒ»ÐÐ
sed -i '13,$d' /etc/passwd
#½«°üº¬uucpµÄÐÐɾ³ý
sed -i '/uucp/d' /etc/passwd
5¡¢findÃüÁ²éÕÒ¾ßÓÐÄ³Ò»ÌØÕ÷µÄÎļþ(ÀýÈçÎļþȨÏÞ¡¢ÎļþÊôÖ÷¡¢Îļþ³¤¶È¡¢ÎļþÀàÐ͵È
Ó÷¨£ºfind [path] [options] [Ìõ¼þ]
Path£º²éÕÒ·¾¶
Options£ºÑ¡Ïî
ÀýÈ磺
-name£º°´ÕÕÎļþÃû²éÕÒÎļþ
-mtime£º°´ÕÕÎļþµÄ¸ü¸Äʱ¼äÀ´²éÕÒÎļþ£¬ºó¸ú-n¡¢+nÀ´±íʾ¶àÉÙÌìÄÚºÍÒÔǰ
-user£º°´ÕÕÎļþÊôÖ÷À´²éÕÒÎļþ
-group£º°´ÕÕÎļþËùÊôµÄ×éÀ´²éÕÒÎļþ
-type£º²éÕÒijһ¸öÀàÐ͵ÄÎļþ£¬ÖîÈ磺b£¨¿éÉ豸£©¡¢d£¨Ä¿Â¼£©¡¢l£¨·ûºÅÁ´½Ó£©¡¢f£¨ÆÕͨÎļþ£©
-size£º¸ù¾ÝÎļþ´óСÀ´²éÕÒÎļþ
#ÔÚ¸ùĿ¼²éÕÒ¸ü¸Äʱ¼äÔÚ5ÈÕÒÔÄÚµÄÎļþ
find /tmp -mtime -5
#ÔÚ/varĿ¼Ï²éÕÒ¸ü¸Äʱ¼äÔÚ3ÈÕÒÔǰµÄÎļþ
find /var/ -mtime +3
#²éÕÒϵͳÖÐËùÓÐÎļþ³¤¶ÈΪ0µÄÆÕͨÎļþ£¬²¢ÁгöËûÃǵÄÍêÕû·¾¶
find / -type f -size 0 -exec ls -l {} \;
#²éÕÒ/var/logĿ¼Öиü¸Äʱ¼äÔÚ7ÈÕÒÔǰµÄÆÕͨÎļþ£¬²¢É¾³ýËûÃÇ
find /var/log/ -type f -mtime +7 -exec rm {} \;
#ÕÒ³öÓû§testÓµÓеÄÎļþ£¬²¢½«ËûÃÇ¿½±´µ½/root/testĿ¼ÖÐ
find / -user test -exec cp {} /root/test \;
6¡¢sortÃüÁ¶ÔÎļþÖеĸ÷ÐнøÐÐÅÅÐò
sortÃüÁÖðÐжÔÎļþÖеÄÄÚÈݽøÐÐÅÅÐò£¬Èç¹ûÁ½ÐеÄÊ××Ö·ûÏàͬ£¬¸ÃÃüÁ¼ÌÐø±È½ÏÕâÁ½ÐеÄÏÂÒ»×Ö·û£¬Èç¹û»¹Ïàͬ£¬½«¼ÌÐø½øÐбȽÏ.
¸ñʽ£ºsort [Ñ¡Ïî] Îļþ
Ö÷ҪѡÏ
-r£ºµ¹ÐòÅÅÐò£¬Ä¬ÈÏÊÇÉýÐò¡£
-n£º°´ÊýÖµ´óС½øÐÐÅÅÐò
-k£ºKeyDefinition Ö¸¶¨ÅÅÐò¹Ø¼ü×Ö¡£
-t£ºCharacter Ö¸¶¨ Character ×÷Ϊ×ֶηָô·û
-d£ºÊ¹ÓÃ×Öµä˳ÐòÅÅÐò¡£±È½ÏÖнö¿¼ÂÇ×Öĸ¡¢Êý×ֺͿոñ
-f£º½«Ð¡Ð´×ÖĸÓë´óд×ÖĸͬµÈ¶Ô´ý
-u£ºÈ¥µôÖØ¸´µÄÐУ¬Ê¹ÎļþÖеÄÿһÐÐΨһ
7¡¢uniqÃüÁɾ³ýÎļþÖеÄÖØ¸´ÐÐ
Îļþ¾­¹ý´¦ÀíºóÔÚËüµÄÊä³öÎļþÖпÉÄÜ»á³öÏÖÖØ¸´µÄÐС£ÀýÈ磬ʹÓÃcatÃüÁÁ½¸öÎļþºÏ²¢ºó£¬ÔÙʹÓÃsortÃüÁî½øÐÐÅÅÐò£¬¾Í¿ÉÄܳöÏÖÖØ¸´ÐС£Õâʱ¿ÉÒÔʹÓÃuniqÃüÁÕâÐ©ÖØ¸´ÐдÓÊä³öÎļþÖÐɾ³ý£¬Ö»ÁôÏÂÿÌõ¼Ç¼µÄΨһÑù±¾¡£
¸ñʽ£ºuniq [Ñ¡Ïî] Îļþ
Ö÷ҪѡÏ
-c£ºÏÔʾÐкÅ
-d£ºÖ»ÏÔÊ¾ÖØ¸´ÐС£
-u£ºÖ»ÏÔʾÎļþÖв»Öظ´µÄ¸÷ÐС£
8¡¢cutÃüÁÏÔʾÎļþÖÐÿÐеÄÖ¸¶¨ÄÚÈÝ
¸ñʽ£ºcut -d ·Ö¸ô×Ö·û [-cf] fields
-d£ººóÃæ½ÓµÄÊÇ·Ö¸ô×Ö·û£¬Ä¬ÈÏÇé¿öÏÂΪTab£»
-c£ººóÃæ½ÓµÄÊǵڼ¸¸ö×Ö·û
-f£ººóÃæ½ÓµÄ Êǵڼ¸¸öÇø¿é
#Áгö/etc/passwdÎļþÖеÄËùÓÐÓû§£¬°´ÕÕÉýÐòÅÅÁÐ
cut -d : -f 1 /etc/passwd | sort
#ÏÔʾ/etc/passwdÎļþÏÂuidΪ0µÄÓû§ÃûÒÔ¼°uid¡£
cut -d : -f 1,3/etc/passwd|grep ':0$'
ÕýÔò±í´ïʽ'$'±íʾÒÔ×Ö·û½á⣬'^'±íʾÒÔij×Ö·û¿ªÊ¼¡£
9¡¢trÃüÁ´Ó±ê×¼ÊäÈëɾ³ý»òÌæ»»×Ö·û£¬¿ÉÒÔ¿´Îªsed¼ò»¯Èí¼þ
³£ÓÃÑ¡ÏîµÄtrÃüÁî¸ñʽΪ£º
-d ɾ³ý×Ö·û´®1ÖÐËùÓÐÊäÈë×Ö·û¡£
-s ɾ³ýËùÓÐÖØ¸´³öÏÖ×Ö·ûÐòÁУ¬Ö»±£ÁôµÚÒ»¸ö¡£
#½«Ð¡Ð´×Ö·ûת»»³É´óд
tr 'a-z' 'A-Z' < file
#½«ÎļþÖÐɾ³ýËùÓпÕ×Ö·û
tr -d ¡®\0¡¯< file
#ɾ³ýÎļþÖÐshell×Ö·û
cat test | tr -d 'shell'
#½«ÎļþÖÐËùÓÐabc×Ö·ûÌæ»»efg²¢Áí´æÎªÐÂÎļþ
cat test | tr 'abc' 'efg' >new file
10¡¢ÆäËûÎı¾´¦ÀíÃüÁî
cat£º´ÓÍ·¿ªÊ¼ÏÔʾÄÚÈÝ£¬²¢½«ËùÓÐÄÚÈÝÊä³ö
³£ÓòÎÊý£¬-nÏÔʾÊä³öµÄÐÐÊý±àºÅ
tac£º´Ó×îºóÒ»Ðе¹ÐòÏÔʾÄÚÈÝ£¬²¢½«ËùÓÐÄÚÈÝÊä³ö
head£ºÄ¬ÈÏÏÔʾͷ10ÐУ¬-nÖ¸¶¨ÏÔʾ¶àÉÙÐÐÊý
tail£ºÄ¬ÈÏÏÔʾ×îºó10ÐУ¬-nÖ¸¶¨ÏÔʾ¶àÉÙÐÐÊý£¬-fʵʱÏÔʾÄÚÈÝ
more£º·ÖÆÁ²é¿´Îı¾Îļþ
less£ººÍmoreÀàËÆ£¬µ«¿ÉÒÔÍùǰ·­Ò³
nl£ºÏÔʾʱÊä³öÐкÅ
wc£º¼ÆËãÎļþµÄ×Ö½ÚÊý¡¢µ¥´ÊÊýºÍÐÐÊý
³£ÓòÎÊý£º-cͳ¼Æ×Ö½ÚÊý£¬-lͳ¼ÆÐÐÊý£¬-mͳ¼Æ×Ö·ûÊý

×÷Õߣºgoing
ÎÄÕÂÆÀÂÛ

¹²ÓÐ 0 ÌõÆÀÂÛ