Linux 學習筆記(新手入門)
2014年11月29日 星期六 20時44分
本科實習了十天的linux基礎知識,現在只剩些許的記憶了。短暫的學習時間,只學到了linux的一些最基本的命令。現在抱着一本《linux命令行和shell腳本編程》重新開始linux的學習咯。此文記錄一下自己的學習筆記,讓新手可以快速入門linux系統。
1. Linux基礎知識:
Linux是由四部分組成,缺一不可:
一、Linux內核;
二、GNU工具組件
三、圖形化桌面環境(類似於windows桌面)
四、應用軟件
將linux內核和GNU工具組件整合起來,就可以創造一個完整的操作系統。不同的linux發行版通常可以歸爲三種:
1. 完整的核心Linux發行版;
2. 專業發行版
3. LiveCD測試發行版
Shell(文本命令行界面CLI(終端控制檯)):
在圖形界面出現之前,和unix系統交互的唯一方式是通過shell提供的文本命令行界面command line interface。 有了圖形界面後,可以通過終端進入shell CLI。
虛擬控制檯和圖形界面的切換
虛擬控制檯(文本模式)和圖形模式,文本到圖形 Ctrl-Alt-F7,
圖形界面到文本命令 Ctrl-Alt-F[1-6]
Shell提示符
默認的bash shell提示符是美元符號,所有提示符特殊字符都從反斜線(\)開始。可以通過輸入PS1=“[提示符字符][提示符字符]\$”進行設置,
Bash 手冊(命令幫助命令)
大多數linux發行版有用以查找shell命令以及其他GNU工具信息的在線手冊,可以通過man命令訪問,只需要在你想要查找的工具的名稱前面輸入man命令,如man passwd.裏面會有關於passwd命令的詳細介紹。看完手冊頁面,按q鍵退出返回。
正斜線(/)反(\)linux文件系統
反斜線是用來標識轉移字符,如\n,正斜線是用來劃分目錄路徑。
Linux虛擬目錄結構之有一個稱爲根(root)目錄的基礎目錄,其他文件目錄都是在此目錄下。在根目錄下有一些特別的目錄,稱爲掛載點(mount point)。掛載點是虛擬目錄中用於分配額外存儲設備的目錄。
用戶文件是存儲在硬盤中的,掛載在虛擬目錄上,根目錄和掛載點是在虛擬目錄中。
切換目錄命令cd destination
切換目錄命令cd可以將shell會話切換到另一個目錄。
絕對文件路徑:是把完整的路徑寫出來,以代表根目錄的正斜線 / 開頭。
相對文件路徑:允許用戶指定一個基於當前位置的目標文件路徑,而無需從根目錄開始。有兩個特殊字符:
1. 單點符(.),表示當前目錄;
2. 雙點符(..),表示當前目錄的父目錄。
如,a/b/c$ cd .. 返回到b目錄, cd ../.. 返回到a目錄,cd ../../e 返回到a目錄下的e目錄。
文件和目錄列表
ls命令顯示當前目錄下的文件和目錄,更多帶參數的用法可以用man ls進行了解。
dir也可以顯示當前目錄下的文件和目錄,跟ls有着相同的用法。
區別:一個是linux一個是window,linux可以重命名指令,要是可以用dir肯定是命令轉義的指令。
參數用法說明
單字母參數通常由英文破折號(-)開始,如 -a.
全字參數以雙英文破折號開始(--)。如--help, --all等。
兩種版本表示的含義一樣。
使用多個參數時,多個雙破折線參數必須分開輸入,而多個單破折線可以組合成一個字符串跟在一個單破折線後面。
問號代表一個字符,星號*通配符代表零個或多個字符。
文件處理命令
創建文件命令: touch,touch命令可以創建任意類型的空文件,但是不能創建文件夾。
vim test.txt 創建一個test文本文件並對其進行編輯。
Vim編輯器編輯文件退出時,按ESC,然後按 :wq進行文件保存並退出,:q表示不保存文件直接退出編輯。:q!表示強制退出編輯。編輯文件時 按i開始插入,編輯文件。
創建文件夾用mkdir命令。
複製文件命令:cp命令,cp source destination。
使用通配符*可以將符號該條件的文件都複製到目標目錄中,
重命名文件稱爲移動(mv命令)。
刪除文件叫做移除(removing),rm命令刪除文件。
rmdir命令只能刪除空目錄,
stat命令查看文件狀態信息,file 命令查看文件類型。
查看文件內容的命令:
cat命令可以查看文件的內容。所有內容一次性完整的顯示在屏幕上。無法按照自己想查看的順序查看內容。
more 命令可以查看文件的內容,在顯示每頁數據之後會停下來,可以看到屏幕中顯示此時在文件中的位置。
less 命令和more命令功能差不多,每次顯示一屏文件內容,它不用讀取整個文件,可以上下翻滾查看內容。
tail 命令會顯示文件末尾部分的內容, 可以指定末尾的行數。
head 命令查看頭部。
快捷鍵
Ctrl +L(l) : 大小寫都可以,清除屏幕或輸入(clear)。
exit: 退出當前終端。
who am i : 查看當前賬戶;
當輸入命令的時候,可以輸入首字母按tab鍵補全單詞(或名字)。
帳戶之間的切換su -student;切換到學生身份,su -root;切換到root用戶
passwd 命令改變linux用戶登錄密碼。
" Ctrl+A"跳到行首。" Ctrl+E"跳到行尾。" Ctrl+SHIFT++"放大屏幕。" Ctrl+-"縮小屏幕。
Ctrl+C退出後臺,Ctrl+Z退出前臺。(對不同的系統不一定有用)
網絡配置
使用ifconfig命令查看網絡接口配置。
2. Linux命令中級篇
破解linux登錄密碼
1是單用戶模式、破解密碼。reboot重啓,怎麼破解密碼:將電腦重啓,然後一直按上下鍵,選擇kernel..選項按“e”進入編輯,加一個“1"在後,選擇“b”輸入自己新的密碼,然後“reboot或init 6”重啓,完成。
進程管理
當程序運行在系統上時,我們稱之爲進程(process)。
ps 命令查看當前用戶運行在系統上的進程,只能查看某個特定時間點的信息不能實時更新。
top 命令和ps 命令很像,top命令可以實時的顯示進程信息。
kill 命令可以通過進程號(PID)給進程發送信號,終止該進程。
killall 命令支持通過進程名結束進程,並可以使用通配符。
掛載存儲媒體:linux系統將所有的磁盤都掛載到一個虛擬目錄下,在使用新的存儲媒體之前,你需要把它放到虛擬目錄下,這項工作稱爲掛載(mounting)。
Linux上用來掛載媒體的命令叫做mount。它會輸出當前系統上掛載的設備列表。
從linux系統上移除一個可移動設備時,不能直接移除,應該先卸載它。
卸載設備的命令叫umount。
df 命令用來查看所有已掛載磁盤的使用情況,剩餘多少磁盤空間。常用格式 df -h,把輸出中的磁盤空間按人類可讀的形式顯示。
du 命令可以顯示某個特定目錄的磁盤使用情況,可以用來判斷你係統上某個目錄下是不是有超大文件的快速方法。
排序數據
sort 命令用來對數據進行排序。sort -M 可以將數據按月份排序。sort -n 將數據按數值排序。
sort -r 將數據按降序排序。
搜索數據
grep命令查找或過濾與指定內容相關的數據。
如grep "root" ifconfig eth0 或ifconfig eth0 |grep"root"對ifconfig,etho這兩個文件進行查找與root有關的內容。
過濾內容:使用參數-v.
解壓/壓縮數據
壓縮文件格式主要有三種:.bz2 ----bzip2工具, .gz -----gzip工具, .zip ----工具zip。
Bzip2軟件包有以下幾個工具:
bzip2: 用來壓縮文件。bzcat 用來顯示壓縮的文本文件的內容。
bunzip2: 用來解壓壓縮後的.bz2文件。
bzip2recover: 用來嘗試恢復損毀的壓縮文件。
gzip,zip工具都與bzip2類似,可以man 查看詳細介紹。
三者的區別:bzip2和gzip只能對單個文件a進行解壓和壓縮處理,解壓或壓縮後的文件會自動命名爲a.bz2或a.gz。如bzip2 a, 壓縮後的文件爲a.bz2. 如bzip a.txt :壓縮後的文件爲a.txt.bz2。 注意區分壓縮時的文件,一定要注意需要壓縮的文件的類型。
zip可以對整個目錄進行解壓和壓縮處理。如 zip testzip test:對test目錄下的文件進行壓縮並命名爲testzip。
歸檔數據
tar命令是unix和linux上最廣泛使用的歸檔工具。
創建一個歸檔文件:tar -cvf test.tar test/ test1/ 將test和test1目錄下的文件歸檔到test.tar下。
列出tar文件test.tar的內容,但是不解壓文件,tar -tf test.tar。
tar -xvf test.tar 從tar文件test.tar中提取內容。
3. Linux環境變量
bash shell 用環境變量(environment variables)的特性存儲有關shell會話和工作環境的信息。有全局變量和局部變量。全局環境變量不僅對shell會話可見,對所有shell創建的子進程也可見。局部變量只對創建它們的shell可見。 系統環境變量一律使用全大寫字母以區別於普通用戶的環境變量。
全局/局部環境變量
查看全局變量,可用printenv命令。
要顯示單個全局環境變量的值,可用echo命令。當引用環境變量時,必須在環境變量名稱前加一個dollar符號$。
set 命令會顯示爲某個特定進程設置的所有環境變量。它也包括全局變量。
系統軟件更新
系統軟件更新:sudo apt-get update 獲得最近的軟件包的列表。
sudo apt-get install 安裝包a:安裝需要安裝的安裝包a。
設置環境變量
設置局部環境變量:直接輸入變量名a=變量值b。引用變量a的值時,只要用$a輸出的是b。用戶環境變量只能在當前shell會話中使用。
設置全局環境變量:先創建一個局部環境變量,然後再使用export a命令把它導入到全局環境變量中。
刪除環境變量
unset 命令來刪除局部環境變量。如局部環境變量a, 刪除 unset a。
pwd 命令是顯示當前工作目錄的路徑。
echo $PATH:查看當前PATH變量的值。PATH中的目錄之間是用冒號分隔的。添加新的搜索目錄到現有的PATH環境變量,不需要重新定義。只需要引用原來的PATH值然後再加上冒號,加上新目錄即可。如PATH=$PATH:/home/test
獲得root權限
如果su - root 輸入密碼登錄成功,就可以直接切換到root。
如果不成功,輸入sudo -i ,設置root登錄密碼,此時你會發現你已經是root了。
sudo passwd 用戶名a。設置用戶a的登錄密碼。
設置別名
alias命令查看已有的別名命令列表,也可以用來創建自己的命令別名,如alias li=’ls -il’。
要永久使用這個別名,需要將其寫入(交互式shell啓動文件)$HOME/.bashrc中。
4. Linux文件權限及文件管理
Linux系統使用/etc/passwd文件來將用戶的登錄名匹配到對應的UID值。Root 用戶賬戶是linux系統的管理員,通常分配給它的UID是0.passwd文件是標準的文本文件,任何進入的用戶可以對其進行編輯修改,存在安全隱患。現在,linux系統將用戶密碼保存在一個單獨的文件中/etc/shadow。只有特定的程序才能訪問這個文件。
以下命令只能在root賬戶下使用纔有效。
1. 添加新用戶到linux系統:useradd命令。useradd -m 用戶名test,創建test用戶並建立一個主目錄/home/test。
2. 刪除用戶:userdel -r 用戶名:刪除用戶的home目錄以及其他文件。
3. 修改用戶:usermod命令
備註:用戶賬號剛創建時沒有口令,但是被系統鎖定,無法使用,必須爲其指定口令後纔可以使用,即使是指定空口令。指定和修改用戶口令的Shell命令是passwd。
Root權限(修改密碼)
超級用戶root可以爲自己和其他用戶指定口令,普通用戶只能用它修改自己的口令。普通用戶修改自己的口令時,passwd命令會先詢問原口令,驗證後再要求用戶輸入兩遍新口令,如果兩次輸入的口令一致,則將這個口令指定給用戶;而超級用戶root爲用戶指定口令時,就不需要知道原口令。Root使用passwd -d 用戶名test,刪除test用戶的登錄密碼,下次登錄test用戶就不需要密碼了。
chpasswd命令爲系統中的大量用戶修改密碼。它能從標準輸入自動讀取登錄名和密碼對(由冒號分隔)列表,給密碼加密,然後爲用戶賬戶設置。
組管理
/etc/group包含組信息。
創建新組:groupadd,在系統上創建新組。它沒有提供將用戶添加到組的選項,可以用usermod命令來添加用戶到該組。用法 Usermod -G 組名 用戶名。Usermod 的兩個參數G/g注意,-G參數將該組添加到用戶的屬組的列表裏,而不會影響默認組。-g參數,指定的組名會替換掉該賬戶的默認組。
修改組:groupmod -n 新組名 原組名。
文件權限
Rwx:可讀可寫可執行。
改變文件的權限:chmod命令,用法:chmod +權限b 文件名a:給文件a添加b權限。
chmod -權限b 文件名a:給文件刪除b權限。
chown命令改變文件的屬主,chgrp命令改變文件的屬組。
用法:chown 新的屬主(用戶) 文件名。chgrp 新的屬組(組名) 文件名。
chown命令也支持同時改變文件的屬主和屬組,chown 屬主.屬組 文件名。
文件系統介紹
Linux系統支持多種類型的文件系統來管理文件和目錄,每種文件系統都在存儲設備上實現了虛擬目錄結構,只是特性不同。
1. ext文件系統
最早的文件系統是一個類Unix文件系統叫做擴展文件系統(extended filesystem,簡記爲ext),使用虛擬目錄來操作硬件設備,在物理設備上按定長的塊來存儲數據。它採用稱作索引節點的系統來存放虛擬目錄中所存儲文件的信息。Linux通過唯一的數值(索引節點號)來引用索引節點表中的每個索引節點。
2. ext2文件系統
ext文件系統限制多,如文件大小不得超過2GB。ext2是ext的一個擴展。
3. 日誌文件系統:日誌文件系統會先將文件的更改寫入到臨時文件中,數據成功寫入到存儲設備和索引節點表後,才刪除該臨時文件。
操作文件系統
可以在命令行下創建新的文件系統或者修改已有的文件系統。
1. 創建分區
首先,必須在存儲設備上創建分區來容納文件系統,分區可以是整個硬盤或一部分,來容納虛擬目錄的一部分。
fdisk工具幫助管理安裝在系統上的任何存儲設備上的分區。fdisk命令是個交互式程序,允許輸入命令來逐步完成硬盤分區的步驟。
要啓動fdisk命令,必須指定要分區的存儲設備的設備名。用法fdisk 設備;可以通過fdisk -l查看設備。
2. 創建文件系統
分區後創建文件系統格式化該分區,這樣該分區才能開始使用。
創建文件系統的命令有:mkefs, mke2fs, mkfs.ext3, mkfs.ext4, mkreiserfs, mkfs.xfs等。
3. 創建掛載目錄,掛載文件系統
mkdir /mnt/test;
mount /dev/sda6 /mnt/test ; //sda6是新創建的分區(臨時掛載該文件系統)
要永久掛載該文件系統,需要將文件系統添加到/etc/fstab文件中。在文件中加入:
/dev/sda6(新建的分區) /mnt/test(掛載目錄) ext3(文件系統格式) defaults 1 2
文件系統出錯處理/恢復
fsck命令用來檢查和修復任意類型的linux文件系統,用法:fsck options filesystem;
邏輯卷管理佈局
邏輯卷管理的核心是他如何處理安裝在系統上的硬盤分區。邏輯卷管理器(logical volume manager, LVM)軟件就是用來做這個的。
基礎篇已介紹完畢,linux編程開發等高級篇後續。謝謝!