Linux操作指令學習筆記

摘抄總結了一些常用的操作指令,不很全面,主要是常用的用於學習記憶掌握
一、通配符
Shell提供了一種通配符(wildchar)
* :代表0,1,more,char
? :代表1,char
[character] one char in set
[!character]not one char in set
[[:class:]]one char in class
/////五種通配符

[:digit:]number
[:lower:]lower char
[:upper:]upper char
[:alnum:]num + alpha
[:alpha:]low and upper
////class裏分爲五類


比如:大家可以在命令行中執行以下代碼:

$ ls /etc/*.conf  /////把所以含.conf的文件羅列出來/////
$ ls /etc/d*.conf /////篩選出d開頭的文件/////
$ ls /etc/[dm]*.conf ///dm形成一個集合,同時篩選出含d,m開頭

$ ls /etc/rc[[:digit:]].d ///把目錄下的.d文件以及內容打印出來
$ ls -d /etc/rc[[:digit:]].d ///把目錄下的.d文件打印出來

二、常見操作文件指令
常用:
ls
-a,顯示all,可以查看隱藏文件
-d,表示顯示目錄自身的屬性,而不是目錄中的內容
-F,在顯示目錄條目時,在目錄後加/
-h,可讀格式
-l,長格式輸出,比較常用
-r,反序
-t,修改日期

ls -l $(which cp) //找到cp的絕對路徑

cp
-a,複製是附帶屬性archive
-i,交互的信息確認interactive
-r,遞歸recursive
-u,只會複製更新後的內容update
-v,複製時詳細的實時命令信息verbose

mv 移動或重命名
-i,同上
-u
-v

rm
-i
-r
-f:強制force
-v

ln link 鏈接
ln file link //create hard link
ln -s item link //create symbol link
hard link:硬鏈接,不能給目錄創建;鏈接的文件不能位於不同的設備
symbol link :符號(軟)鏈接;相當於被鏈接文件的指針,類似於快捷方式,在ls -l中能看出->幫助我們來確定這是一個符號鏈接


三、常見命令
1.execute binary: 可執行程序
2.buildin bash : Shell提供的命令
3.shell function:shell函數,可能混合在環境變量裏
4.alias:別名,建立在其他命令之上

type :shell內部命令;顯示命令的類別
which:命令的存在位置
help :幫助信息
man :manul打印出用戶手冊
apropos:搜索簡短的庫信息,相當於man -k
whatis:簡短信息
info:man的替代,包含超鏈接,(n:next node;p:preview node;q:quit;u:up;enter:jump to link;space:pagedown)
alias:創建別名命令;alias 新名字=’組合命令’
unalias:remove


四、I/O重定向 redirection
redirect standard output重定向標準輸出
command > filename
command >> filename 重定向同時文件後追加內容

redirect standard output重定向標準錯誤
0:stdin
1:stdout
2:stderr
redirect stdout and stderr標準輸出和標準錯誤同時定位到一個文件
ls -l ./正確目錄/錯誤目錄 > ls-output.txt 2>&1
ls -l ./正確目錄/錯誤目錄 &>ls-output.txt

useless message輸出信息沒有用
/dev/null相當於垃圾桶

比如說:ls -l /bin/usr 2> /dev/null

redirect stdin輸入的重定向,把鍵盤輸入重定向到文件。

cat:讀取一個或多個文件,把內容複製到標準輸出上。不能分頁顯示,可以實現文件合併效果。

command | command :管道線
filter :過濾器 有一個輸入數據,做一個變換進行輸出
sort(排序)、uniq(消除重複行)、wc(word count:line,word,count計數)、grep(匹配搜索文本(-i忽略大小寫))、head/tail(打印前n行)、tee(管道):就是各種過濾器

比如:ls -l /usr/bin | sort | uniq -d| less
ls -l /user/bin | sort | uniq | grep zip
ls -l /user/bin | sort | head -n 5  //打印前5行
ls -l /user/bin | tee ls.txt | grep zip  //執行tee並不影響其他功能

五、echo語法
expansion展開

echo +string打印字符串
echo l*打印出所有l開頭的文件名
echo *.txt打印所有後綴.exe的文件名
echo ~ 等同於pwd
echo $((2+2))運算=4,還包括了+ ,- ,* ,/ ,(**冪運算),%,但是隻支持小數運算
echo Front-{A,B,C}-End 在{}中間是可變的區域,以上會輸出Front-A-End Front-B-End Front-C-End
echo Number_{1..5} 會輸出Number_1到5
echo a{A{1,2},B{3,4}}b 會輸出aA1b aA2b aB3b aB4b
同樣的指令,{}可以適用於其他指令,讓複雜的任務變得可能,比如

$ mkdir {2010..2017}-0{1..9} {2010..2017}-{10..12}
會輪次生成每個月

學習了基本指令後,有一個問題,例如:
echo The total is $100.00,本意是輸出一整段文字,但是上文提到了,實際輸出會是The total is 00.00,那該怎麼辦呢
可以這樣解決:

echo 'The total is $100.00' 
echo The total is \$100.00//////或者這樣

這樣也叫做引用機制。
“”在使用時可以使輸出“”內的字符串,譬如上文的echo “{A..Z}”,但也有失效的情況比如算數運算,指令。
“”也可以在使用時對空格失效,比如ls “a b c.txt”,就不會依次索引名稱爲a的文件了,而是直接找到目標文件。一般在命名文件時儘量不要使用空格,使用連字符。
而‘’則效果更強,內部的字符全部會輸出。
通過\轉義字符來替換,\,$,\&,!,等都可以在“”中使用。


六、鍵盤操作技巧
move cursor移動光標 c ctrl a alt
c-a移動到行首
c-e移動到行尾end
c-f向前移動一個字符forward
c-b向後一個字符backward
a-f向前一個詞
a-b向後一個詞
c-l清空屏幕=clear

modify text修改文本
c-d刪除光標位置的字符
c-t光標的位置字符和前面字符互換
a-t光標的位置單詞和前面單詞互換
a-l光標位置到單詞末尾的字符全部小寫lower
a-u光標位置到單詞末尾的字符全部大寫upper

copy&paste text
c-k剪切光標位置到行尾的文本
c-u剪切光標位置到行首的文本
a-d剪切光標位置到詞尾的單詞
a-backapace剪切光標位置到詞頭的文本
c-y粘貼

history 查看指令使用歷史
history | less
history | grep /uer/bin ///查找
!num 執行某一條歷史命令
c-p調出上一條記錄
c-n調出下一條記錄
a-<調出歷史的第一條命令
a->調出歷史的結尾
c-r遞增搜索


七、權限管理
0 000 —
1 001 –x
2 010 -w-
3 011 -wx
4 100 r–
5 101 r-x
6 110 rw-
7 111 rwx
其中r w x分別代表了可讀read,可寫write,可進入文件夾excute
chmod 664 a.txt更改權限,3位數對照上表,分別代表了所有者權限,主權限,其他人權限。
也可以用符號表示法
u user
g group
o other
a all
chmod o-r a.txt代表了第三位數減去了read權限。

umask控制默認權限4位8進制
特殊權限setuid,可執行文件才能設置,提升權限到擁有者

su:切換到某某用戶模式,提示輸入密碼時該密碼爲切換後賬戶的密碼,用法爲“su 賬戶名稱”。如果後面不加賬戶時系統默認爲root賬戶,密碼也爲超級賬戶的密碼。沒有時間限制。
sudo:暫時切換到超級用戶模式以執行超級用戶權限,提示輸入密碼時該密碼爲當前用戶的密碼,而不是超級賬戶的密碼。不過有時間限制,Ubuntu默認爲一次時長15分鐘.
chgrp:chgrp命令用來改變文件或目錄所屬的用戶組。該命令用來改變指定文件所屬的用戶組。
passwd:用於設置用戶的認證信息,包括用戶密碼、密碼過期時間等。系統管理者則能用它管理系統用戶的密碼。只有管理者可以指定用戶名稱,一般用戶只能變更自己的密碼。

八、進程管理
ps 打印當前進程快照
ps會顯示4個欄分別是:
PID:process id進程ID
TTY:teletype進程的控制終端
TIME:消耗CPU的時間
CMD:命令
ps x
STAT:states狀態(R running, S sleep, D不可中斷睡眠等待IO,T已停止,Z死進程或殭屍進程,<高優先級進程,N低優先級進程)
ps -ax
顯示沒有控制終端的進程
ps aux
列出了所有進程,%cpu進程cpu的耗時,%MEU內存消耗,VSZ virtual memory虛擬內存的使用,RSS phiscal memory物理內存,START運行時長,TIME耗時
ps -u
查找當前用戶運行的所有進程信息

top 顯示任務
分別是summary摘要信息,detail info詳細信息
jobs 列出活躍的任務

中斷一個進程ctcl-c

bg background把一個任務放在後臺執行
fg front ground把一個任務放在前臺執行

kill 殺死
kill [-signal]PID..,其中signal常用的有:1(掛起)、2(中斷)、9(殺死)、15(終止)、18(繼續)、19(停止)
killall

shutdown關機
shutdown -h now //關機
shutdown -r now //重啓


九、網絡管理
netstat 查看網絡連接情況
-a列出所有端口
-at列出當前TCP連接情況
-apu顯示UDP端口號的使用情況

traceroute 測試從當前主機到目的主機之間經過的網絡節點

nslookup命令用於系統設定的DNS服務器解析域名,可以測試DNS服務器是否工作正常。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章