標籤:
First Day
1、系統軟體、應用軟體、使用者等之間的關係
??????
與使用者交流的是外殼。它以命令的形式與使用者打交道。我們win7等是用圖形介面同使用者打交道。
2、比如說,bash---->對應著一個shell,每個shell可以理解為命令的名字。ctrl+c表示終止當前命令。
???? 一個終端至少有一個shell,預設為bash。管理員中,根使用者是root。具有最高許可權。
???? exec ksh 表示切換到ksh這個shell。
3、linux是一個檔案系統。什麼東西都可以被找到。所有的檔案都是一體的。
??????檔案的路徑可表示為:/dev/dri/……?? 其中嚴格區分大小寫。
?4、絕對路徑與相對路徑
????絕對路徑就是檔案的起始位置。該是什麼就是什麼。而相對路徑是我們人為的將當前路徑設為當前工作路徑。以後就在這個環境下操作就ok了。
?5、幾個小命令
?1)清屏?? clear? 或者ctrl+l?
?2)顯示進程狀態? ps? :print status 每個程式執行一次都會有個進程。終端中進程編號唯一。pts/2? 表示進程id。
????? 列印當前工作目錄??pwd :print working directory 。
??????改變當前工作目錄 cd :change directory。 直接回到主目錄。如果沒帶路徑,其實就是相對路徑。
????? ~ : 表示主目錄。?.:表示目前的目錄。??.. :表示上一級目錄。../.. :?表示上一級的上一級。
?3)列出檔案清單? ls :list? .
??????也可以登入遠程終端:telnet 192.168.0.20? 然後輸入username?? passwd 之類的。但只可以修改自己的密碼。
?4)顯示系統時間命令 date 。
注意:命令是可以帶參數與選項的。命令?[選項]……[參數]……
5)命令的使用者手冊: 用man +? 命令。查看命令的所有用法。 manual pages.? 按q(quit)退出使用者手冊頁。??
6)id是可以查看的。? 有使用者id ,組id。 我們也可以man man? ;man id 一下。。。
小結一下: 1、linux的檔案系統為一體。2、絕對路徑用 / 打頭。它是從 /?開始的樹狀結構。3、相對路徑是從當前路徑開始的樹狀結構。?4、cd ./abc? 5、username passwd uid gid 6、shell是與使用者互動的部分,然後shell把命令轉交給核心,然後核心返回給外殼,與使用者進行交流。
命令:?? ps??;? id?;?? pwd ;?? man ;? ls? ; ?clear?;?crtl + l?.
?
所謂的命令其實就是一些可執行檔檔案,類似於.exe。位於./bin 目錄下。 我們可以用??
ls -l /bin? 命令,-l就是以橫的形式排列這些檔案。
ls -F?/bin??命令,-F 就是標記檔案。其中@表示軟連結(就是捷徑)*表示可執行檔。
類似的,ls -a? 列出所有檔案和目錄。其中以.打頭的是隱藏檔案。? 在windows中,是以屬性來區分的。
如何從命令列介面切換到圖形介面: startx
?
Second Day
1、ls -al?? 顯示檔案屬性。普通檔案 "---"打頭。
?????????????????????????????????????????目錄檔案"d"打頭。
???????????????????????????????????????? .exe檔案"l"打頭。
???????????????????????????????????????? 管道檔案"p"打頭。
?????? ls -lr????/bin????? reverse 的意思。將檔案順序反過來。
?????? ls -R?? 列出目前的目錄下的整個目錄數。一級一級的。。。
2、硬串連與軟串連? :
????? 硬串連就是給檔案起個別名,其實是一個引用。
????? 軟串連就是一個捷徑。
???? 命令: ln? -s /bin/sleep?? bs (軟連結)
???????????????? ln?????/bin/sleep??? bs (永久連結)
???????????? 然後??sleep 5?=?? ./bs 5?? (和PATH有關)
????? 目錄名最末尾的 / 可有可無。當永久連結數變為0,則意味著檔案內容被完全刪除。
3、許可權命令:
?????
每一個層級又可以分為3個等級。W? R? X
readable?? wtitable??execute .可讀 、 可寫 、 可執行
改變許可權命令: chmod? ugo +????????(user , grid , outer)
change? +? "-" 表示去掉許可權。"+"表示加上許可權。
chmod? u-w,o+r ,g+w z.
所以,我們也可以用數字化表示:
chmod? 755 z;
chmod a + x z??註:a = ugo。
4、建立目錄
???mkdir?? da dd dc? ;? make?directory.?
???mkdir?? dd/de?? ;前提是dd已經存在。
?? mkdir?? -p? dd/df/dv? ; 建立多層目錄。dd,df可以不存在。
?? 我們可以用 ls -R dd 來查看dd下所有層。
5、建立檔案
???touch? f1 f2 f3 f4
?? touch da/f7 ;?前提是da必須存在,不然建立不了。
? 我們一般先用cd命令,指定目前的目錄,然後建立檔案。一般touch建立的檔案是空檔案。
那如何建立不空的檔案呢???
6、拓展檔案建立
? >???、? >>?
date?> xy?? ;???把左邊命令輸出的內容寫到xy(右邊)(目前的目錄)檔案中去。
兩個特殊的檔案: date > /dev/tty ; 表示輸出到終端。
????????????????????????????? date?> /dev/null? ;表示空檔案。linux中一切裝置全當作檔案看待。怎麼都填不滿。
cat? xy? ;? 查看xy當中的內容。
如何不改變xy內容,然後追加內容呢?
pwd >> xy ;表示把左邊命令產生的輸出內容追加到右邊檔案中去。
7、如何隨時隨地,更自由的輸出?
幾個小命令: cal? (calendar) 日曆。
cal 10 2010???;查看2010年10月的日曆。必須是月、年的順序。
更自由的輸出命令: echo
8、如何執行多個命令
?date;sleep 5;date?? ;? 用;分隔開即可。
9、移動、刪除、複製命令。
???? 移動: mv?(move)
??? mv x da?dc? ;把x和da 移動到dc檔案夾中去。
????mv db? da/d2??? ;?把db移動到d2當中。並改名為da。只有移動一個檔案或目錄的時候可改名。多個無法改名。
??? mv?xy xy99 ;??移動檔案相當於改名。
?????
?????複製: cp(copy)
???? 對於檔案用 cp?
?????對於目錄用cp -r??用 -i? 來用於提示和使用者進行互動。interactive(互動的)?
?????
????? 刪除: rm?
??????對於目錄用rmdir?
??????對於檔案(目錄)? rm? (-r)??
????? rm -ri? dc? ;?互動是否刪?
小結: 1、看目錄 ls? 2、看檔案 cat?? (用貓將檔案抓出來)
??????????? 3、>>?追加???>??寫進去。
????????????4、軟永久連結? ln -s??? xx?? xx? ;?? 永久連結必須在同一個分區當中。
??????????? 5、移動 mv? 複製 cp?? 刪除 rm
?
Third Day
1、編輯器?
?? 1)gedit? :圖形化介面處理。不多講。
?? 2)kate?? : 圖形化介面處理。不多講。
?
cat? katefile?
3)vim? vi?
???可視化編輯器
????
:q!表示強制退出。
?快速鍵:
移動游標命令:
?行首: o ? ? ? ? ? ? ? ? ? ? I? ? ? ? ? 註:O表示插入新的一行。? ? ? ? ? ? ? ? ?
?行尾: $ ? ? ? ? ? ? ? ? ? ? A ? ? ? ? ? ? ? ? ? ? ? ? ? home end
整體的首行:H ?,x+H,表示移動到螢幕的x行。? ?整體的尾行 L ?類似。
註:在此功能鍵也可以使用。
ctrl + f,在檔案中向上移動一頁(pageup)
ctrl + b,在檔案中向下移動一頁(pagedown)
:8 ?回到第8行。 :+ x 表示到某一行。
8 + G/M :表示到某一行去。
直接G 到檔案末尾。 1G 到首行。類似於H的作用。
w 把游標移動到下一個單詞的開頭。{大小寫都認}
B 把游標移動到上一個單詞的開頭。{大小寫都認}
:set nu 顯示行號。: set nonu 不顯示行號。
方向鍵也可以使用。
替換和刪除:
常見刪除命令 ? ?
? ? 刪除一個字元:delete ? ??
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?x ? , ?長按可以刪除多個字元。
數字+ x,表示刪除游標所指向的後?數字 個字元。不會影響到另一行。u表示可以恢複一次。
d + w,刪除游標後面的單詞。
d+ b, 刪除游標前面的單詞。
dd 本身就是刪除。 刪一行。 ?數字+ dd ,刪除 ?數字行。
:9,18 ?表示刪除9-18行。
粘貼和複製
p一下,其實3x之後,刪除的字元在vi可視化編輯器的剪貼簿中。p在游標之後插入。 P在游標之前插入。
數字+p :表示粘貼的次數。
yl 表示複製一個字元。 3yl表示複製3個字元。?
yw複製一個單詞,yy複製一行。
替換:字元: 8rk:替換8個k。replace。
? ? ? ? ? ? ? ? ? ? ? ? ? ?cw表示替換整個單詞。 cw + 單詞。 ?會直接進入到插入狀態。
~ ?:表示大小寫翻轉。J ? :串連倆行。
c與s:把一個字元換成一段內容。c與s之後進入插入模式。游標會變成$符號。
尋找: ?
? ? ? ? ? / ? :表示尋找,從當前位置向後尋找。n(ext) ?:n一下,表示繼續尋找。
? ? ? ? ?/str1 ? :正向尋找字串str1. ?
? ? ? ? ?n ? ? ? ?:繼續尋找。
? ? ? ? ?str1 ?:反向尋找。
撤銷和重複???
u :撤銷前一條命令的結果。
.?: ?重複最後一條命令。
插入檔案
?:r ?xyz ?將當前檔案插入到游標位置之後。
替換
實現字串的替換 ? ??:5-8 s/wf/妻子/g??在5-8行,用妻子替換wf。 g表示所有出現的字元。
:s/str1/str2/ ?? ?沒有g表示首次出現的字元。
:5,$ ?s/str1/str2/g ? 表示用str2替代從第5行開始到末尾所有出現的str1.
:% ?s/str1/str2/g ?全部替換。
儲存於退出??
:w ? 表示儲存vi檔案。 :w ?saveas ?+ ?名字。表示另存新檔。
:q ? 表示退出vi檔案。?
:wq 儲存並退出。
shell與vi之間的切換
:! ??command ? ???:! ls 會在終端中顯示內容。
?
Fourth Day
1、一些命令的深化
ps -l ? 顯示 ?進程id PID ?。副進程id ?PPID 。?
註:一個進程是誰創造的,那麼這個誰就是這個進程的副進程。
s 表示狀態。 程式按時間片執行。
睡眠狀態:S
掛起狀態:T?
運行狀態:R?
2、 建立背景工作
?sleep 10 & ?指定id。
ps -e 更詳細點。
殭屍進程 : 程式執行完了,但沒有回收。變成 z 狀態。
ps -e -l | grep z ? 尋找z狀態。
ps -f 查看命令開始時間。。
ps -f -p ?1487 :查看進程id為1487的副進程的父進程是誰。
3、查看背景工作
命令:jobs
註: + - 表示優先順序。
4、將命令放入 前/後 台執行
fg ?一下,預設為"+"的。放入前台 ;繼續執行。
fg + 編號,表示選擇執行哪個任務。即指定任務。f ?forward
bg ?+ 編號,表示選擇執行哪個任務。並放入後台執行。 b ?backward
4、終止進程
kill ?+ ?進程號。 有些是致命的,有些不一定致命。
比如: sleep ?100& ? ?; ?fg ? ?(ctrl + z ?:表示將該進程掛起);kill ?9090?
通過發訊號使進程終止。
kill也可以終止後台進程 :kill % 編號。
5、尋找
grep VS find
grep :從檔案中搜尋。
find ??:+ 目錄 + 條件[命令] ? ?在指定目錄下按條件尋找。
find ?. ?-name ?f1 ? ?: 在目前的目錄下按名字尋找f1檔案。
也可以加萬用字元。 find . -name f* ;
find . -name ?"*.c" ?-exec ?cp { } db \; ? ? 解釋:exec 表示切換命令,追加命令。 { }表示前面命令所有輸出的內容。
?\; 表示";"本身,不表示其他意思。";"表示語句結束的標誌。我們可以用"\;" ,也可以用‘;‘。因為‘;‘本身有特殊含義。
?找人: who ?。?
?查看誰在使用這個伺服器。可以有相同的使用者名稱,但終端編號必須不同。
可以只顯示自己,who am ?i ? ; ?只顯示使用者名稱 ?whoami
只關心使用者我們可以用 ?users ?, 若要更詳細,用w命令。
尋找ip相同範圍內的名字: who | grep 192.168.24.
6、一些技巧
? history命令,查看以前敲入的所有命令。
!+ ?編號; 表示重新執行該命令。
其實命令曆史在.bash/history中。
7、和磁碟有關的命令
?du ?(diskusage) ?: 查看磁碟空間使用方式。
?du -k ? ? :以kb為單位顯示空間使用方式。
?du -h ? ? :顯示的空間使用方式,全部帶上了單位。
du -h -s ?:只看使用的總和。
8、和檔案有關的命令
df (diskfile) :查看檔案系統中各部分的使用方式。
df -h ? ?: 帶上單位,查看檔案系統中各部分的使用方式。
?
?
Fiveth Day
1、與網路相關的命令
? ? ?
1)ping ?看看各個部分是否正常工作。 可以ping自己,也可以ping其他人的ip。
2)查看ip用ifconfig。在windows中,用ipconfig。
3)ftp 命令:ftp> bye 表示退出。
? ? ? ftp環境下,現在一般用ftp軟體進行檔案的上傳及下載工作。
? ? ?上傳: put + 檔案名稱 ? mput ?表示上傳很多檔案。
? ? ?下載:get + 檔案名稱 ? ?mget 表示下載很多檔案。會有提醒,prompt 表示關閉提示。
? ftp> !ls ?表示執行查看本地的檔案。
?在ftp 伺服器上,我們也可以進行檔案的各種操作。
ftp > l cd ?表示進入本地目錄下。local ?與 ?! 代表本地。?
gftp 工具進行檔案的下載與上傳。
2、輸出命令的拓展
? ?echo $UID
?
" X?" ?值可能會變。而‘x‘ ?值不會變。echo 輸出什麼就是什麼。
3、環境變數
env(ironment) : 環境變數。
$ + 環境變數的名字 就是那個環境變數的值。
?幾個重要的環境變數:
1)PS1 ? 用來指定命令提示字元; echo ?$ PS1
?
可以更改其值,也可以更改回來。但必須將其作為一個整體。不然肯定不行。
2)PATH :路徑。
? ? ? 一個命令對應的.exe,並不是從目前的目錄(路徑)下去找,而是從PATH目錄(路徑)中去找。
? date ? vs ? ./da ? ?
PATH = /bin : . ? 其中.表示目前的目錄。:表示分隔作用,或者串連符,起附加作用。
此時再鍵入ls 已經不管用了。 ls 它的原始路徑在/.bashrc 檔案中的。
我們可以嘗試尋找 ??which / whereis ?cal ? :表示找到cal所在的那一堆目錄。
然後將其所在目錄的路徑加入到PATH中來。?
這樣麻煩了,我們可以用 PATH = $PATH:.?來解決這個問題。
但這樣之後,重新開啟終端,恢複到原始態,最終是治標不治本,我們希望其一直有效,那麼必須將上面命令寫入到初始設定檔案中去。~/.bashrc ?檔案。. 表示隱藏檔案。
在此,我們也可以給命令起別名。 ?alias ?c = clear ? alias ?ps = "ps -l "
若起在初始設定檔案中,則下次開啟終端這些命令(新起的別名)依然有效。
4、如何開啟 bashrc?
? ?用命令?vi ~/.bashrc ?(其實就是寫指令檔) ?我們可以用vi my.sh 寫自己的指令檔。
? ?source ?my.sh 表示執行這個檔案。 當我們不加source 時,提示許可權不夠,我們可以通過命令chmod 修改許可權。
? ?ls -l ?my.sh ?查看許可權。
? ?
? ?註:當我們執行vi ?my.sh其實my.sh已經生產了。
? ? 備份的作用: bak = $PATH ?; PATH = XXX ; PATH = bak;防止檔案破壞。?
Linux學習筆記1