目錄
一、Linux操作命令和常用工具
1、Linux框架結構
2、Linux內核主要功能
- 與計算機硬件進行交互,實現對硬件對編程控制和接口操作,調度對硬件資源對訪問,併爲計算機上的用戶程序提供一個高級的執行環境和對硬件對虛擬接口
- 按功能模塊分爲:
- 進程調度
- 內存管理
- 文件管理
- 進程間通信
- 網絡接口
3、Shell程序功能概述
Shell 是一個用 C 語言編寫的程序,它是用戶使用 Linux 的橋樑。Shell 既是一種命令語言,又是一種程序設計語言。
Shell 是指一種應用程序,這個應用程序提供了一個界面,用戶通過這個界面訪問操作系統內核的服務。
在計算機科學中,Shell俗稱殼(用來區別於核),是指“爲使用者提供操作界面”的軟件(命令解析器)。它類似於DOS下的command.com和後來的cmd.exe。它接收用戶命令,然後調用相應的應用程序。
- 介於使用者和UNIX/Linux操作系統之核心程序(kernel)間的一個接口
- Shell功能如下:
- 讀取輸入和語法分析命令列
- 處理萬用字符解釋
- 重定向和管道
- 搜索和運行程序
- 後臺作業
- shell編程等
4、常見Shell程序
-
Bourne Shell(SH)
最老、使用最廣泛
-
Korn Shell(KSH)
對Bourne Shell的擴充,兼容Bourne Shell
-
C Shell(CSH)
語法與C語言類式,功能強大,但與Bourne Shell不兼容
-
Bourne Again Shell(BASH)
是自由軟件基金會(GNU)開發的一個Shell,它是Linux系統中默認的Shell,Bash不但與Bourne Shell兼容,還繼承了Korn Shell、C Shell的優點
5、常見外圍工具(桌面系統)
- GNOME/GTK
- 支持C語言
- 擁有衆多公司或自由軟件人的支持,包括RedHat
- KDE/QT(K Desktop Envirment)
- 支持C++,穩定成熟
- 包括辦公軟件KOffice、Internet應用軟件、開發工具KDevelop、和一些其他應用軟件
6、Linux文件系統結構
從用戶角度理解文件系統
7、目錄簡介
-
bin:linux常用的命令。如:cp、mv。
-
boot:系統啓動時要用到的程序
-
dev:所有linux系統中使用的外部設備映射文件。和我們常用的windows、dos操作系統不一樣。它實際上是一個訪問這些外部設備的端口。(虛擬光驅、usb)
-
etc:系統管理的各種配置文件和子目錄。如網絡配置文件,文件系統,x系統配置文件,設備被指信息,設備用戶信息(passwd、group)
-
home:每個用戶的主目錄存放在這個目錄下以用戶名命名的子目錄中。例如:如果我們建立一個用戶,用戶名是“tom” ,那麼在/home目錄下就有一個對應的/home/tom路徑。
-
lib:存放系統動態連接共享庫
幾乎所有的應用程序都會用帶這個目錄下的共享庫。因此,千王不要輕易對這個目錄進行什麼操作,一旦發生問題,系統就不能工作了。
-
lost+found:這個目錄在大多數情況下都是空的。
但是如果你正在工作突然停電,或是沒有用正常方式關機,在你重新啓動機器的時候,有些文件就會找不到應該存放的地方,對於這些文件,系統將他們放在這個目錄下,就像無家可歸的人提供一個臨時的住所。
-
mnt:分區的掛載點,這個目錄在一般情況下也是空的。可以臨時將別的文件系統掛在這個目錄下。(cdrom、hgfs、usb)
-
proc:虛擬目錄,系統內存的映射,可以在這個目錄下獲取系統信息。這些信息是在內存中,由系統自己產生的。
-
root:系統管理員的主目錄,其他用戶無法訪問。
-
sbin:這個目錄是用來存放系統管理員的系統管理程序。
-
tmp:用來存放不同程序執行時產生的臨時文件
-
usr:這是linux系統中佔用硬盤空間最大的目錄。用戶的很多應用程序和庫都存放在這個目錄下,有很多子目錄。(/usr/bin/vmware-config-tools.pl)
-
var:存放一些系統運行過程中的臨時文件,如系統日誌。
-
注:在各目錄中以顏色區分不同的文件類型
- 藍:目錄
- 綠色:可執行文件
- 紅:壓縮文件
- 淺藍:鏈接文件
- 灰:其他文件
- 紅底白字:錯誤的鏈接文件
8、獲得命令幫助
- whatis命令:簡單描述命令功能
- –help選項:命令使用摘要及參數列表
- man命令:命令說明文件
命令名稱 | 用途 | 命令舉例 |
---|---|---|
ls | 文件查看 | ls –l |
cd | 改表文件目錄 | cd |
cp | 文件拷貝 | cp file1 / tmp |
rm | 刪除文件 | rm –rf dir1 |
mkdir/rmdir | 創建目錄或刪除目錄 | mkdir dirname |
mv | 移動文件 | **mv file1 \tmp\. ** |
rename | 重命名 | *rename hello hi .cpp |
find | 文件查找 | find / -name ‘*.log’ |
命令名稱 | 用途 | 命令舉例 |
---|---|---|
cat | 用來查看文件內容 | cat hello.cpp |
more | 分屏顯示文件內容 | |
less | 命令類似於more命令,但是比more命令提供更多功能 | |
tail | 用來查看文件的末尾幾行 | |
wc | 統計文件的行數、字數、字符數 |
進程操作命令
命令名稱 | 用途 | 命令舉例 |
---|---|---|
ps | 進程查看命令 | ps -axj |
kill | 送信號給進程 | kill -9 pid |
pstree | 樹形方式顯示進程 | pstree |
CPU內存查看
命令名稱 | 用途 | 命令舉例 |
---|---|---|
top | 常用的性能分析工 具 | |
free | 內存使用情況 | free -m |
/proc/cpuinfo | CPU信息 | |
/proc/meminfo | 內存信息 |
其他系統命令
命令名稱 | 用途 | 命令舉例 |
---|---|---|
date | 顯示日期 | date |
cal | 顯示日曆 | cal 2 2007 |
who | 查看誰在使用系統 | who |
who am i | 查看我是誰 | who am i |
clear | 清除屏幕 | clear |
bc | 計算器 | bc |
tail | 查看文件最後的內容 | tail –f file |
which | 查看程序所在的位置 | which tail |
9、Bash外殼程序基本功能
- 轉義和通配符號解釋
- 重定向
- 管道
- 後臺作業
- 歷史表記錄
- 命令行編輯
- 命令修正
- 別名
- Shell編程及解釋
10、通配符
通配符 | 功能說明 | 示例 |
---|---|---|
* | 匹配所有字符 | ls *.o |
? | 匹配所有的單個字符 | ls net??? |
[a-z] | 匹配屬於a到z範圍集合內的一個字符 | ls [a-i]* |
[…] | 與方括號內的某個字符匹配 | ls [abc]*.c |
[!..]或[ ^…] | 與不在括號內的某個字符匹配 | ls [ ^a]*.c |
{c1,c2} | 同c1或c2集合匹配 | ls {[0-9]*,[acr]} |
11、輸入/輸出重定向
- 輸出重定向:> >>
ls -l /usr/tmp >dir
ls -l /usr/tmp >>dir
ls /usr/tmp 2>err.file
ls /usr/tmp >output.file 2>&1
- 文件描述符:標準輸入0,標準輸出1,錯誤2
- 輸入重定向:<
wc </etc/passwd
12、管道
將一個程序的標準輸出寫到一個文件中去,再將這個文件作爲另一個程序的輸入。管道要解決的就是不需要臨時文件就能將兩條命令結合在一起。如:
ls /usr/bin | wc -w
cat file | grep –wc ‘fail’
13、後臺作業
- 安裝(命令行執行任務)
CentOS 系列系統: yum install screen
Ubuntu 系列系統: sudo apt-get install screen - 創建 screen 窗口
screen -S name
# name可以設置爲ssh、ftp,用於標註該 screen 窗口用途
# 示例:
screen -S xiaoming[小明就是命名]
注意,執行 screen -S name 之後系統會跳進一個新窗口,這個窗口就是我們創建的新進程(它來執行我們的命令)。
在這裏面進行項目的啓動即可。 - 退出保存
就是完全退出exit, 不會進行session保存了。
CTRL-a+d , 用screen -r就可恢復到原來的工作狀態了。
停止:
首先:[查看有哪些]
screen -ls
只有Detached可以進入
如果只有一個 screen 進程,命令行輸入 screen -r -d 即可
如果有多個screen, 我們可以通過它的 PID 進入screen:
screen -r -d 1572
進入之後直接CTRL+C,終止就行
14、文件壓縮與解壓縮 (tar)
選項 | 功能 |
---|---|
-c | 創建一個新的歸檔 |
-z | 利用gzip把文件壓縮 |
-u | 備份新的及修改過的文件(備份更新) |
-x | 將文件從歸檔中恢復到磁盤上 |
-t | 顯示歸檔中文件的文件名 |
-v | 顯示執行過程中的文件清單 |
-f | 用來指定所用介質的設備文件名 |
-
tar -zcvf text.tar.gz text:備份檔案並壓縮
-
tar -zxvf text.tar.gz:從壓縮包中提取文件
15、grep 與 正則表達式
- grep是通用正則表達式分析程序(General Regular Expression Parser)的縮寫,一種強大的文本搜索工具
- grep命令可以在它的輸入中搜索指定的字符串模式(Pattern)。grep命令的輸出是包含輸入中指定的字符串模式的行。
- grep命令的一般格式:
grep [option] pattern file
開關 | 描述 |
---|---|
-E | 用擴充正則表達式進行模式匹配 |
-i | 不區分大小寫 |
-n | 在每一輸出行前顯示文件內的行號 |
-q | 與其他命令一起使用時,抑止輸出顯示 |
-s | 抑止文件的出錯信息 |
-num | 在每一匹配行前後各顯示num行 |
-v | 反向匹配 |
-l | 返回匹配到的文件名稱 |
基本特殊字符集
字符 | 含義 |
---|---|
^ | 在每行的開始進行匹配 |
$ | 在每行的末尾進行匹配 |
< | 在字的開始進行匹配 |
> | 在字的末尾進行匹配 |
. | 對任何單個字符進行匹配 |
[str] | 對str中的任何單個字符進行匹配 |
[^str] | 對任何不在str中的單個字符進行匹配 |
[a-b] | 對a到b之間的任何字符進行匹配 |
\ | 抑止後面的一個字符的特殊含義 |
* | 對前一項item進行0次或多次重複匹配 |
擴展特殊字符集
字符 | 含義 |
---|---|
+ | 對前一項進行1次或多次重複匹配 |
? | 對前一項進行0次或1次重複匹配 |
{j} | 對前一項進行連續j次重複匹配 |
{j,} | 對前一項進行j次或更多次重複匹配 |
{,k} | 對前一項最多進行k次重複匹配 |
{j,k} | 對前一項進行j到k次重複匹配 |
s|t | 匹配s項或t項中的一項 |
(exp) | 將exp作爲單項處理 |
正則表達式例子
名稱 | 功能 | grep命令示例 |
---|---|---|
^public | 匹配以public開始的行 | grep ‘^public’ exp |
public$ | 匹配以public結尾的行 | grep ‘public$’ exp |
^$ | 匹配空行 | grep -n ‘^$’ exp |
^.$ | 匹配只有一個字符的行 | grep -n ‘^.$’ exp |
compu*t | 匹配u 0次或多次,如:compter computer,computing,compuuute等 | grep ‘compu*t’ exp |
(abc)+ | 將abc進行看作單項進行匹配,如:abcabcabc | grep -E ‘(abc)+’ exp |
grep “math2” *.txt
grep “12” *
反向匹配
ps aux | grep “ssh” | grep –v “grep”
匹配空行
grep -n ‘^$’ datafile
grep -v ‘^$’ datafile
grep命令示例
精確匹配單詞: < 和 >
-
找出所有包含 以 north 開頭 的單詞的行
- grep ’ \<north’ datafile
-
找出所有包含 以 west 結尾 的單詞的行
- grep ‘west\>’ datafile
-
找出所有包含 north 單詞的行
- grep ‘\<north\>’ datafile
-
遞歸搜索目錄中的所有文件:-r
- grep -r “north” datafile
-
關於某個字符連續出現次數的匹配
- grep ‘o{2,}’ helloworld
grep命令中用到的正則表達式最好用單引號或雙引號括起來
e
grep命令示例
精確匹配單詞: < 和 >
-
找出所有包含 以 north 開頭 的單詞的行
- grep ’ \<north’ datafile
-
找出所有包含 以 west 結尾 的單詞的行
- grep ‘west\>’ datafile
-
找出所有包含 north 單詞的行
- grep ‘\<north\>’ datafile
-
遞歸搜索目錄中的所有文件:-r
- grep -r “north” datafile
-
關於某個字符連續出現次數的匹配
- grep ‘o{2,}’ helloworld
grep命令中用到的正則表達式最好用單引號或雙引號括起來