一、Linux基礎知識點
硬碟
硬碟是可以存儲大量信息資源的媒介。我們平時看到的硬碟是方方正正的一塊挺沉的鐵匣子,但是其實硬碟是圓的,加上一些控制電路以後,為了便於攜帶而設計成為方形外殼。但是硬碟真是圓的,不騙你,要不怎麼叫做盤呢?第二,你需要知道的是硬碟可以進行分區。可以把硬碟分區成為很多個分區,看來分區即是一個名次也是一個動詞。什麼叫做名次的分區呢?現在的硬碟越來越大,存放的資源越來越多。為了更合理的管理使用硬碟資源,更有效的提高查詢速度和訪問質量,我們可以把硬碟劃分為很多分區,分別存放一些信息。當你需要讀取某一個資料的時候,系統會自動使用最近的磁頭去讀取,加快讀取速度。硬碟分區是從硬體的基礎上對資源進行合理管理的手段。
分區已經了解了,但是我們不能只有分區啊,我們得用一個方法來控制分區。Windows操作系統使用了盤符這個概念,用單一的字母來表示硬碟上的不同分區,比如,C盤,D盤等等。在Windows2000以前,C盤對應了第一個分區,D盤對應第二個分區,依此類推。到了Winows2000,這個對應關係可以自己調整了。
在Linux裡邊,我們沒有盤符這個概念,我們用目錄的形式進行管理。
簡單說說目錄吧,其實大家都很清楚的。如果我們把數以萬計的水果扔在一個籮筐裡面是不是很難找?但是如果我們把蘋果放在叫做蘋果的籮筐裡面,把梨放在叫做梨的籮筐裡面……這樣是不是大大簡化了我們尋找指定水果的速度?這些水果如果是我們的文件,那麼我們用的籮筐就叫目錄。新的問題出現了,即使把桃子扔在叫做桃子的籮筐中,我們仍然很難從好幾千個桃子裡面找出來自四川成都龍泉驛的桃子啊。聰明的你一定想到在桃子的籮筐中再放入很多叫做四川啊,河北啊,廣州啊這些名字的籮筐,把不同產地的桃子放進去。對!就這樣!我們在一個文件目錄下面可以再建立新的文件目錄,把文件進行非常細緻的管理。到這裡你明白了什麼叫做目錄,還明白了目錄是可以嵌套的,這就可以了。目錄技術是從軟體的基礎上對資源進行管理的方法。
回到Linux對於硬碟的管理裡面來:在Linux裡邊,我們沒有盤符這個概念,我們用目錄的形式進行管理。把每一個分區和某一個目錄對應,以後對這個目錄的操作就是對這個分區的操作,這樣就實現了硬體管理手段和軟體目錄管理手段的統一。這個把分區和目錄對應的過程叫做掛載-mount。這種對應關係可以由用戶隨時中斷和改變。
SWAP交換分區
這裡需要提一下交換分區。我們如果沒有足夠的內存,也許就不能運行某些大型的軟體,解決的辦法是在硬碟上划出一個區域來當作臨時的內存,好像內存變大了。Windows操作系統把這個區域叫做虛擬內存,Linux把它叫做交換分區swap。雖然隨著硬體價格的下降內存已經不大會限制我們了,但是交換分區這個概念卻保留下來,而且有繼續保留下去的原因,當然涉及到內核的問題,我們不多討論,我們要說明的是,安裝Linux時候建立交換分區時,如果你的內存只有64M或則128M,那麼交換分區最好設置成為它的3倍,如果你的分區足夠大,有256M或則512M,那麼設置成為相同大小就可以了。但是請注意,最好大小為2的N次冪的數字。
分區格式
硬碟只是一個用電磁的方式紀錄信息的媒介,我們可以通過不同的格式來管理。不同的操作系統選擇了不同的格式,同一種操作系統也可能支持多種格式。微軟的操作系統選擇了fat16格式作為DOS的分區格式,往後windows95和windows98支持fat32格式,windowsNT使用NTFS4格式,windows2000以及XP支持NTFS5,也支持fat32,但是她們都不支持Linux上常見的分區格式。Linux是一個開放的操作系統,它最初使用ext2格式,後來使用ext3格式,但是它同時支持非常多的分區格式,包括很多大型機上UNIX使用的XFS格式,也包括微軟的那些fat以及NTFS格式。
在給硬碟分區時就需要指定使用的分區格式。
掌握Linux的目錄結構
既然目錄是用來方便文件管理的工具,那麼Linux下面不同的目錄到底保存了哪一類的文件呢?
目錄名稱 意義
/bin 該目錄中存放Linux的常用命令,在有的版本中是一些和根目錄下相同的目錄。
/boot 該目錄下存放的都是系統啟動時要用到的程序,當用lilo引導Linux時,會用到這裡的一些信息
/dev 該目錄包含了Linux系統中使用的所有外部設備,它實際上是訪問這些外部設備的埠,你可以訪問這些外部設備,與訪問一個文件或一個目錄沒有區別。例如在系統中鍵入”cd /dev/cdrom”,就可以看到光碟機中的文件;鍵入”cd /dev/mouse”即可看滑鼠的相關文件。
/cdrom 該目錄在剛安裝系統時是空的,你可以將光碟機文件系統掛在這個目錄下, 例如”mount /dev/cdrom /cdrom”
/etc 該目錄存放了系統管理時要用到的各種配置文件和子目錄,例如網路配置文件、文件系統、X系統配置文件、設備配置信息、設置用戶信息等。
/sbin 該目錄用來存放系統管理員的系統管理程序。
/home 如果建立一個名為”xx”的用戶,那麼在/home目錄下就有一個對應的”/home/xx”路徑,用來存放該用戶的主目錄。
/lib 該目錄用來存放系統動態連接共享庫,幾乎所有的應用程序都會用到該目錄下的共享庫
/lost+found 該目錄在大多數情況下都是空的。但當突然停電、或者非正常關機後,有些文件就臨時存放在這裡。
/mnt 該目錄在一般情況下也是空的,你可以臨時將別的文件系統掛在該目錄下。
/proc 可以在該目錄下獲取系統信息,這些信息是在內存中由系統自己產生的
/root 如果你是以超級用戶的身份登錄的,這個就是超級用戶的主目錄
/tmp 用來存放不同程序執行時產生的臨時文件
/usr 用戶的很多應用程序和文件都存放在該目錄下
二、Linux基礎命令大全
關閉防火牆
systemctl stop firewalld.service
禁止防火牆開機啟動
systemctl disable firewalld.service
關閉SELinux
nano -w /etc/selinux/config
將SELINUX=enforcing改為SELINUX=disabled保存並退出:^x->y->回車
————–
命令:ls
-a 這個選項能顯示.開頭的隱藏文件
-i 顯示每個文件的inode號
-m 所有項目以逗號分隔,並填滿整行行寬
-R 同時列出所有子目錄層
-h 將列出文件的大小以人性化格式輸出
–color=tty(2個-號)顯示文件的時候以色彩提示
目錄 可執行文件 連接文件 一般文件
藍色 綠色 淡藍色 白色
查看文件狀態修改時間
ls -lc [文件名]
查看文件的訪問時間
ls -lu [文件名]
查看文件的最後修改時間
ls -l
顯示文件的詳細訪問時間
ls –full-time
顯示本地目錄下以” .”開頭的文件
ls -d .*
————
命令: date 顯示系統當前時間
命令格式: date [選項]
-R 按照RFC822文檔中的時間格式來實現時間
-r 文件名 顯示文件的最後修改日期
-u 顯示utc時間(通用時間)
使用date查看過去/將來的時間
1. 查看2045年8月15日是星期幾(當前時間為2014-9-27)
date -d “+31year -1 month -12 day”
2. 顯示2014年1月1日星期幾
date -d “+3month +5day”或#date -d “+4month -26day”
————–
命令: hwclock 顯示硬體時鐘
將系統時鐘同步至硬體時鐘
hwclock –systohc
將硬體時鐘同步至系統時鐘
hwclock –hctosys
—————
命令: tzselect 功能:設置系統時區
1. 設置當前系統的時區
tzselect
命令: timedatectl 功能:設置系統時間及日期
語法格式:timedatectl [選項] [日期]
示例:
1. 顯示各項當前時間
timedatectl
2. 顯示系統所支持的時間區域
timedatectl list-timezones
3.設置當前系統的時間區域
timedatectl set-timezone Asia/Shanghai
4. 設置當前系統時間
timedatectl set-time “2014-09-0912:29:30”
5.設置NTP支持
timedatectl set-ntp true
————-
命令: mkdir 創建目錄
-p 建立多級目錄
-m 在建立目錄的時候給目錄賦於許可權值
示例: mkdir -p /name/a/b/c
——–
命令: rmdir 刪除空目錄
-p 刪除多級空目錄
示例: mkdir -p /name/a/b/c
注意:目錄本身一定要是空的
————
命令: rm 刪除文件/目錄
-i 在刪除文件之前需要手工確認
-v 在刪除文件的時候顯示信息
-r 刪除目錄 -f 忽略提示
示例: rm -v filename
常用選項: rm -rf 目錄名
———–
命令:cp 複製命令
cp [選項] 文件名(原件) 目的文件名(複印件)
-R 複製整個目錄里的內容
-p 複製完後保持目錄的許可權值
-v 在複製文件的時候顯示進度
-f 在複製的時候如果碰到目的文件名有重複就將原先的刪除
————
命令: mv 移動文件或目錄/修改文件或目錄名
命令格式: mv [選項] 源文件 目的路徑
-i 如果目的地有相同文件名時會出現提示
-v 在搬移文件時顯示進度,在移動多文件時非常有用
-u 當移動時只有源文件比目的文件新的時候才會移動
-f 強制覆蓋已有的文件
示例: mv -i 1.jpg /home/2.jpg
————-
命令: pwd 顯示當前工作路徑
———–
命令:cat 查看文本文件
命令格式: cat [選項] 文件名
-b 顯示文件內容的時候顯示行數
-n 顯示文件內容包括空行
-s 將多個空行合併成一個空行輸出
————-
命令: more 查看文本文件命令
命令格式: more [選項] 文件名
+行數直接從給定的行數開始顯示
-s 將多個空行壓縮成一個空行
-p 清除屏幕後再顯示
提示: 用more打開一個文件後用空格向下翻頁,用b向上翻頁
————
命令: nano 功能:文本編輯器
命令格式:nano [選項] [行號] 文件名
————–
命令: head 查看文件頭部
命令格式:head [選項] 文件
-n <行數> 顯示文件的最前指定的行
-c <位元組數> 顯示文件前N個位元組數里的內容
-q 不輸出文件頭的內容
-v 輸出文件頭的內容
示例: head -n 15 test.file
————-
命令: tail 查看文件尾部
命令格式:tail [選項] 文件
-f 循環讀取
-c <位元組數> 顯示文件前N個位元組數里的內容
-q 不輸出文件頭的內容
-n <行數> 指定所顯示的行數
-v 輸出文件頭的內容
示例: tail -n 15 test.file
————-
命令:ln 生成鏈接文件
命令格式:ln [選項] 源文件 鏈接文件
-f 刪除已存在的目的文件
-i 如果碰到有重複名字的提示如何操作
-v 顯示操作信息
-s 軟鏈接選項
————-
命令: file 功能:查看文件的類型
————-
命令: stat 功能:顯示文件或文件系統狀態
命令格式:stat [選項] <文件/目錄>
-f:查看指定的文件系統
stat可查看:
1. 文件名 2. 文件尺寸 3. I節點號 4. 創建時間/訪問時間/狀態(屬 主、組、許可權)修改時間 5.許可權 6.鏈接文件個數 7. 屬主及屬組等
—————
多命令配合或結果導入、導出符號
” |” 管道符號
” >” 輸出重定向
” >>” 輸出重定向
” <” 輸入重定向
多命令配合或結果的引用符號
” ” 雙引號
‘ ‘ 單引號
反引號
————–
命令: whereis
特點: 是查找工具中速度最快的一個,但是whereis查找的範圍有限, whereis 只能查找2進位程序,文檔和源碼。
命令: which
which命令是查找工具中速度最快命令之一,但是which查找的範圍有限,但是 它可以給用戶顯示出命令所在的路徑
命令格式:which 文件名
———–
find -size n [c]
查找n值大小的文件,默認單位是塊(1塊=512位元組)
1. 查找大於1500位元組的文件
find ~ -size +1500c
2. 查找等於1500位元組的文件
find ~ -size 1500c
3. 查找小於1500位元組的文件
find ~ -size -1500c
4. 查找大於512k位元組的文件
find ~ -size +512k
5. 查找等於1M位元組的文件
find ~ -size 1M
6. 查找小於1G位元組的文件
find ~ -size -1G
7. 查找大於10塊的文件
find ~ -size +10
8. 查找等於10塊的文件
find ~ -size -10
9. 查找大於10M小於20M的文件
find ./ -size +10M -size -20M
10. 查找小於10塊的文件
find ~ -size -10
11. 查找文件/目錄位元組為0的文件(即空文件)
find / -empty
———–
命令: grep
功能: 通過正則表達式查找文件中的關鍵字
參數:
-i:忽略大小寫
-c:列印匹配的行數
-C:列印出匹配的上下文(上N行,下N行)的多少行
-l:列出匹配的文件名
-L:列出不匹配的文件名
-n:列印包含匹配項的行和行標
-w:僅匹配指定的單詞而非關鍵字
-e:索引匹配字串
-r:遞歸查詢
-v:不輸出匹配的行
-A <行號>:顯示所找的匹配欄位,並顯示下面指定的行數的信息
-B <行號>:顯示所找的匹配欄位,並顯示上面指定的行數的信息
正則表達式表示方法:
忽略正則表達式中特殊字元的原有含義
^ 匹配正則表達式的開始行
$ 匹配正則表達式的結束行
< 從匹配正則表達式的行開始
> 到匹配正則表達式的行結束
[ ] 單個字元;如[A] 即A符合要求
[ n – m ] 範圍 ;如[A-H]即包含A至H都符合要求
. 所有的單個字元
* 所有字元,長度可以為0
———
命令: egrep
信息: grep的增強版/擴充版(即grep -E)
特點:
1.支持?匹配,即匹配0到1個正則表達式
2.支持+匹配,即匹配1到N個正則表達式
3.支持”或關係”的匹配
4.在查找範圍時,可直接用{a,z},而不需要””符號
5.可以被()來包含正則表達式進行分組
6.參數與grep基本通用
示例:
1. 遞歸且不區分大小寫對test欄位查找
grep -ri “test” ./
2. 列印匹配”test”關鍵字有多少行
grep -c “test” grepcmd.txt
3. 列印匹配”test”關鍵字的上下文各1行
grep -C 1″test” grepcmd.txt
4. 列印匹配test關鍵的行並顯示行號
grep -n “test” grepcmd.txt
5. 查找開頭為”#”的行,並顯示行號
grep -n ^# grepcmd.txt
6. 查找在本地目錄下(含子目錄)結尾為”c”的文件
grep -r c$ ./
7. 查找以”man”開頭的單詞
grep ‘<man’* grepcmd.txt
8. 查找”man”僅匹配此三個字元
grep ‘<man>’ grepcmd.txt
9. 查找含有以”D”字元開頭的行
grep -n ^[D] grepcmd.txt
10. 查找含有以”A-F”字元開頭的行
grep -r “^[A-F]” ./
11. 查找含有以”A-F”字元開頭,第2個字元為i的行
grep “^[A-F]i” grepcmd.txt
12. 查找含有以’nobody’字元的行及下面3行信息
grep -A 3 ‘nobody’ /etc/passwd
13. 查找含有以’nobody’字元的行及上面3行信息
grep -B 3 ‘nobody’ /etc/passwd
14. 查找以D或d字元為開頭的行
egrep ‘(^D|^d)’ egrepcmd.txt
15.匹配以D開頭的0個或1個字元
egrep ^D? egrepcmd.txt
16.查找不包含”chuai”及”lisa”的欄位
egrep -v ‘^(chuai|lisa)’ egrepcmd.txt
———-
命令: cut
功能: 對所需字元進行截取
-d “n”:定義分界符,即點位
-f n:取第幾位的字元
示例:
1. 以空格符為分界符,進行第2位截取.
cut -d ” ” -f 2 ./cutcmd.txt
2. 以空格符為分界符,進行第1,3位截取.
cut -d ” ” -f 1,3 ./cutcmd.txt
———
命令:sed
功能:通過指定的正則表達式完成指定關鍵字的過濾、截取、修改等操作
特點:
1.sed屬於一個流線式的非互動式的編輯器
2. sed在輸入命令和文件名後,將在屏幕上輸出
3.在不用重定向至文件之前,是不會改變文件現有內容以避免修改文件時出現問題
示例:
1.將install.log的第1-3行刪除 $sed ‘1,3d’ install.log
2.對install.log查找以A或a開頭且後面字元為pache的字串 $sed -n ‘/^[Aa]pache/p’ install.log
3.列印匹配欄位的行及所有行 $sed ‘/ftp/p’ install.log
4.列印匹配欄位的行 $sed -n ‘/ftp/p’ install.log
5.默認刪除第3行 $sed ‘3d’ install.log
6.默認刪除第3行至末尾行 $sed ‘3,$d’ install.log
7.刪除含有指定欄位的行 $sed ‘/data/d’ install.log 8.將data替換為date $sed –n ‘s/data/date/p’ install.log 9.將行尾noarch為結尾後面增加.chuai字元 $sed ‘s/noarch$/&.chuai/’ install.log
8.將所有行尾noarch的單詞替換為chuai單詞 $sed -n ‘s/noarch$/chuai/gp’ install.log
9.顯示包含ra及data欄位的行 $sed –n ‘/ra/,/data/p’ install.og
10.從第5行開始顯示直至包含有data的行 $sed -n ‘5,/data/p’ install.log
———–
命令:awk
功能:通過正則表達式,得到需要的行,列信息
示例:
1. 用awk 列印所有包含有data欄位的行
$awk ‘/data/’ install.log
2. 查看df -h命令的第2列
$df -h | awk ‘{print $2}’
3. 查看df -h名ing的第2,5列
$df -h | awk ‘{print $2,$5}’
4. 顯示install.log的第四行
$awk ‘NR==4’ install.log
5.列印install.log文件中包含data欄位行的第二區域
$awk ‘/data/ {print $2}’ install.log
6. 列示月份及年份( 為換行符)
$date | awk ‘{print “Year:” $6 ” Month:” $2 }’
7. 在有/data關鍵字的行的第1列後面增加1個製表符,並增加RedHat,第2列後面!字元
$awk ‘/data/{print $1 “RedHat Linux”$2 “!” }’ install.log
8. 在有data關鍵字的行第1列前面增加1個製表符,並增加RedHat,第2列後面!字元)
$awk ‘/data/{print “RedHat Linux, “$1,$2 “!” }’ install.log
9. 在有noarch欄位的行前增加記錄號($0為行頭前)
$awk ‘/noarch/{print NR, $0}’ install.log
10. 在有sda2欄位的行前增加行的序號及顯示第2列內容
$df -h | awk ‘/sda2/{print NR,$2}’
11. 匹配noarch欄位,如果有,則顯示整行
$awk ‘$2 ~ /noarch/’ install.log
12. 匹配不存在noarch欄位的行,如果有,則顯示整行
$awk ‘$2 !~ /noarch/’ install.log
—————
命令:sort
功能:默認以排序ASCII方式進行排序[a-z]
參數:
-u 去除重複的行
-r 降序排序[z-a]
-n 數值排序,默認情況10比2小,主要因為sort判斷第一字元的值
-k 以文本的列進行判斷
-t 設定分界符
示例:
1. 對/etc/passwd文件進行升序排序
sort /etc/passwd
2. 對/etc/passwd文件進行降序排序
sort -r /etc/passwd
3. 對/etc/passwd第3列進行數值排序,分界符為:
sort -n -k 3 -t : /etc/passwd
4. 對test.txt文件中重複的行刪除並升序排序
sort -u test.txt
5. 對/etc/shadow文件進行降序排序
sort -r /etc/shadow
6. 對/etc/passwd第3列進行數值排序,分界符為:
sort -n -k 3 -t : /etc/passwd
7. 對/etc/passwd的第2列進行逆序排序,並對第3列進行數值排序,優先順序為第2列
sort -k 2r -k 3n -t : /etc/passwd
8. 對/etc/passwd的第3列進行數值排序,第2列進行逆序排序,優先順序為第3列
sort -k 3n -k 2r -t : /etc/passwd
———–
命令:wc
功能:統計行數、字數、字元數、文件總統計數
參數:
-l 統計行數
-c 統計位元組數
-w 統計字數(單詞數)
示例:
1. 統計/etc/passwd文件行數
wc -l /etc/passwd
2. 統計/etc/passwd文件的字數
wc -w /etc/passwd
3. 統計/etc/passwd文件的位元組數
wc -c /etc/passwd
4. 統計/etc/passwd文件行數和位元組數
wc -lc /etc/passwd
5. 統計/etc/passwd與/etc/fstab各文件的行、字、位元組數
wc -lwc /etc/passwd /etc/fstab
————–
命令:uniq
功能:檢查文本中重複出現的行
-c 顯示輸出,並在文本行前加出現的次數,但如果重複行不連續,則不認為是重 復的行
-d 只顯示重複的行
-u 只顯示不重複的行
1. 對test.txt內容進行檢查並顯示次數
uniq -c test.txt
2. 對test.txt的重複行不顯示
uniq -u test.txt
3. 忽略test.txt的第1列,對第2列進行檢查
uniq +1
4. 對test.txt的顯示重複行
uniq -d test.txt
5. 忽略test.txt的第1個字元, 從第2個字元開始進行檢查
uniq -s 1 test.txt
6. 對每行的第2個字元以後不在做檢查
uniq -w 2 -c test.txt
————
命令:tac
功能:將行顛倒
說明:將最頭行放置最底行,文本中所有的行均顛倒輸出
———–
命令:tr
功能:大小寫轉換
語法格式:tr 現有小寫範圍 轉換大寫範圍
tr 現有大寫範圍 轉換小寫範圍
原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/220577.html
微信掃一掃
支付寶掃一掃