shell指令碼(一)

來源:互聯網
上載者:User

標籤:


shell指令碼(一)

1、常用命令

(1)系統管理

#useradd,添加新使用者時預設會建立一個與使用者名稱相同的使用者組

#建立使用者user1,並指定uid為1111,所屬群組為2222(test),並且不建立家目錄

groupadd test -g 2222

grep test /etc/group

useradd user1 -g 2222 -u 1111 -M

id user1

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/6E/12/wKiom1VyudrjuwgvAADH3my4lO4986.jpg" />

#建立使用者user2,並指定uid為1112,所屬群組為2222(test),並且建立家目錄

useradd user2 -g 2222 -u 1112

ls /home

id user2

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/6E/0E/wKioL1Vyu3rjSZC8AAFidnKEZB0473.jpg" />

#userdel,預設不會刪除家目錄

#刪除使用者user1和user3(但不會刪除家目錄),刪除user2並且刪除家目錄

userdel user1

userdel user3

userdel user2 -r

ls /home

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/6E/12/wKiom1Vyudui426RAAB0wBXTqD4683.jpg" />

#usermod,更改user4(1114)id為2224,群組test變為root,家目錄變為/home/test

useradd user4 -u 1114 -g test

usermod -g root -u 2224 -d /home/test user4

id user4

grep user4 /etc/passwd

ll /home

chown -R user4:root /home/test

ll /home

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/6E/0E/wKioL1Vyu3vRN7_DAANToK76oVo088.jpg" />

#groupadd,新增群組test1,指定id=2223

groupadd test1 -g 2223

grep test1 /etc/group

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/6E/12/wKiom1VyudyStq_6AABrAjZK-Ik564.jpg" />

#groupmod,重新命名群組test1為test2,id=3333

groupmod test1 -n test2 -g 3333

grep test /etc/group

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/6E/0E/wKioL1Vyu3ui2Jg7AAC5Rs9CAQ8049.jpg" />

#groupdel,刪除群組時必需確認群組沒有其他成員

#刪除包含成員的群組將會出錯

#刪除群組test和test2,test群組有成員刪除會出錯

groupdel test2

groupdel test

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/6E/12/wKiom1VyudzSaXndAABzGgK-ZPs681.jpg" />

#passwd,更改密碼,鎖定/解鎖使用者,指定密碼最短/最長/警告更改時間

#更改user4密碼為love,只有root使用者可以passwd 使用者名稱

passwd user4

輸入兩次密碼


#鎖定使用者user4和user5

passwd -l user4

#在/etc/shadow第2列前面加"!"表示使用者被鎖定

grep user4 /etc/shadow


#解鎖使用者user4

passwd -u user4

grep user4 /etc/shadow


#指定user4密碼最短更改時間2天,最長7天,到期前3天警告

passwd user4 -n 2 -x 7 -w 3

grep user4 /etc/shadow

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/6E/0E/wKioL1Vyu3zxey_sAAJo-o0w3gk003.jpg" />

#chgrp,變更檔或者目錄群組,將mount.sh群組由root改為test

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/6E/12/wKiom1Vyud3DD8CLAAGh6na92rY690.jpg" />

(2)檔案目錄管理

#ls,-l以長格式顯示,1-7列分別為:

#檔案類型和許可權、連結數、檔案屬主、檔案屬組、檔案大小、最近修改時間、檔案名稱

#ls,顯示指定目錄下所有檔案,包含隱藏檔案,大小以M為單位,並以修改時間排序

ls alc block-size=m /home

#不足1M以1M算,不足1G以1G算

#與-A與-a區別在於,前者不顯示"."(目前的目錄)和".."(上一級目錄)

ls Alc block-size=g /home

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/6E/0E/wKioL1Vyu33zEIrkAAHY2OuKKh0650.jpg" />

#ls預設以1行顯示所有檔案和目錄,但不包含子目錄

ls /home

#前者1行顯示完,後者每一個檔案或者目錄佔1行

ls -1 /home

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/6E/12/wKiom1Vyud7Shj6sAAB5ONVETjw163.jpg" />

#在目錄後加反斜線

ls -p /home

ls -lp /home

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/6E/0E/wKioL1Vyu32RtegDAAEQCBCYtdk457.jpg" />

#遞迴式顯示,UID和GID以數值代替,並按字母逆序排序

#-R:遞迴顯示,-n:uid,gid數值顯示,-r:按字母逆序排序

ls -R -n -r -al /home

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/6E/12/wKiom1Vyud7RzEO9AAL9w_GzLsQ774.jpg" />

#cp,預設不加參數無法複製目錄

#-a:保留連結、檔案屬性,並遞迴複製目錄

#-d:保留連結,-f:覆蓋目標檔案並且不提示,-p:附帶複製修改時間和訪問時間

#-r:遞迴複製目錄,目標必需為目錄,-l:不複製檔案,只是連結檔案

#將/home複製到/tmp,附帶所有屬性,並且強制覆蓋目標檔案

cp -apf /home /tmp

ls /tmp

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/6E/12/wKiom1Vyud6iYjxWAADp0_5mfsk362.jpg" />

#mv,-f:強制覆蓋目標檔案並且不提示,新版本已經預設保留許可權

#將/home/aaa檔案移動到/tmp,並且保留許可權,如目標檔案存在同樣覆蓋

ls -kl  /home/aaa

mv -f  /home/aaa  /tmp

ll /tmp/aaa

#兩者比較,目標檔案被覆蓋,並且保留了許可權

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/6E/0E/wKioL1Vyu36xdsjxAAEBvs8XiMA610.jpg" />

#rm,刪除檔案或者目錄

#強制移除檔案或者目錄,如果目錄有子目錄一併刪除

rm -rf /tmp/home

ll /tmp

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/6E/12/wKiom1Vyud6yBjp8AADZU9EmIz8091.jpg" />


#mkdir,建立目錄,-p:如果路徑某些目錄不存在一併建立,-m:設定許可權

#建立目錄/home/bbb/ccc,並指定許可權為777

mkdir -p -m 777 /home/bbb/ccc

#-m指定的是最深層目錄許可權,而缺少的目錄許可權是目前使用者預設許可權

#此處需要注意的是root的umask為0022,所以bbb許可權為755,而不是777

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/6E/0E/wKioL1Vyu36Rk9ATAAEc6t5LAEQ148.jpg" />

#rmdir,只能刪除空目錄,-p:遞迴刪除空目錄,如果父目錄為空白一併刪除

#加上-p後,如果父目錄不為空白,則提示錯誤,注意區別

mkdir -p bbb/ccc

mkdir -p bbb/ddd

rmdir -p bbb/ccc

ls bbb

rmdir -p bbb/ddd

ls

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/6E/0E/wKioL1Vyu37BbLfCAADQp-1npFg462.jpg" />

#stat,查看檔案目錄access、modify和change時間

#access為訪問時

#modify為修改過內容時間,

#change為修改過狀態時間,比如chmod、chown命令更改過許可權等等

stat mount.sh

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/6E/12/wKiom1Vyud-C3ENzAAC3B7ky0TM813.jpg" />

#touch,建立空檔案,-a:只修改訪問時間,-m:只修改修改時間

#-t:使用指定日期,-r:將指定檔案日期修改為參考檔案日期

#將訪問時間改為20140102030405,修改時間改為20150102030405

touch -a -t 201401020304.05 bbb

touch -m -t 201501020304.05 bbb

stat bbb

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/6E/0E/wKioL1Vyu3-RXY26AADJHz6XBHw731.jpg" />

#再將bbb改為參考檔案ccc時間

stat ccc

touch -r ccc bbb

stat bbb

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/6E/12/wKiom1VyueDjxu8eAAFELA0NCr4486.jpg" />

#file,測試檔案類型,-b:不顯示檔案或目錄名稱

file mount.sh

file -b mount.sh

file test

file -b test

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/6E/0E/wKioL1Vyu3_zItgbAADiBJ0Y_Ek877.jpg" />

#ln,-b:覆蓋目標檔案前先備份,會在備份檔案後面加字串,-S:指定備份字串

#-s:建立軟連結,-d:建立永久連結

#軟連結:相當於捷徑,刪除對原檔案不影響

#永久連結:相當於原檔案的一個"特殊"副本,刪除對原檔案不影響

#但修改內容同樣指向原檔案

#為bbb建立軟連結,並且覆蓋目標檔案,指定備份字串為".bk"

ln -s -b -S .bk bbb lnb

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/6E/13/wKiom1VyueDSnVkDAAI4ShMPmfw435.jpg" />

#刪除軟連結:原檔案不受影響,但如果寫入內容的話會寫入到原檔案

cat bbb

echo "test">lnb

cat bbb

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/6E/0E/wKioL1Vyu4DDam90AADDTiaHb8k720.jpg" />

#為bbb建立永久連結,可以看到ccc連結數值由1變為2

ln -d ccc ccchard

ll ccc


#刪除永久連結:刪除之後對原檔案不造成影響,只是原檔案連結數值減1

ll ccc

echo "ccchard">ccchard

rm -f ccchard

ll ccc*

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/6E/13/wKiom1VyueDCwlq1AAEJ-1-1LxQ572.jpg" />

#刪除原檔案,永久連結同樣可以用, hardccc連結數值由2變1

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/6E/0E/wKioL1Vyu4DRSsnVAAEsI8_mLvg289.jpg" />

本文出自 “愛就行動” 部落格,請務必保留此出處http://1055745601.blog.51cto.com/5003160/1659230

shell指令碼(一)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.