Linux系統不像windows系統那樣圖形界面做的那麼美觀漂亮,點擊圖標即可,Linux下都是使用命令行的形式來和系統進行交互(當然也有圖形界面,只是做的不是那麼完善),使用Linux命令相比而言還是比較方便的。我們知道windows使用的命令行的方式是DOS命令,Linux下是使用的命令則是shell命令,每一條命令都會被shell命令行解釋器解析執行的。
以下將帶領大家學習下Linux下常用的一些基本命令,有了這些命令我們就可以打開Linux的大門去和它進行交流。當然我們查看命令的詳細的內容可以通過man+命令的方式獲取有關命令的幫助文檔,關於man命令的使用如下:
(序):
man man -> 查閱man的幫助文檔
man 1 命令 ->查閱命令的相關文檔 eg:man 1 ls
man 2 系統調用函數接口 eg:man 2 open
man 3 庫函數調用接口 eg:man 3 fopen
這幾個是最常用的,其他的用到的時候可以查閱。
以下爲man 加上數字的含義:
(1)ls
作用:列出目錄的內容
【1】ls +相對路徑
ls 或 ls . -> 列出當前目錄下的內容
ls .. -> 列出上一級目錄下的內容
ls ./dir 或 ls dir -> 列出當前目錄下的dir目錄下的內容
【2】ls + 相對路徑
ls /home/linux/dir 或 ls ~/dir ->列出/home/linux/dir 目錄下的內容
【3】ls -l 文件名/路徑 <---> ll 文件名/路徑 ->查看文件的詳細信息(eg:ls -l file)
ls -li 文件名/路徑 ->查看文件的詳細信息(包括inode號)
【4】ls -R --->以目錄樹的形式顯示目錄內容
(2)cd
作用:切換路徑
【1】cd +相對路徑
cd 或 cd ~ -> 切換到家目錄(eg:進入/home/linux下)
cd / -> 切換到根目錄下
cd - -> 切換到上一次路徑
cd .. -> 切換到上一級路徑
【2】cd + 相對路徑
cd /home/linux/dir 或 ls ~/dir ->切換到/home/linux/dir 目錄下
(3)touch
作用:創建一個文件,更新文件的時間戳
touch file ->如果file這個文件不存在,創建file這個文件;如果file這個文件存在,更行file的時間戳
touch file1 file2 file3 -> 創建file1、file2、file3(創建多個文件)
(4)mkdir
作用:創建一個目錄
mkdir dir ->創建一個目錄
mkdir dir1/dir2/dir3 -p ->遞歸創建多級目錄
(5)rm
作用:刪除一個文件或者目錄
rm file -> 刪除文件
rm dir -r -> 遞歸刪除目錄
(6)mv
作用:移動或者重命名
mv src_file / src_dir dst_file / dst_dir -> 移動(源和目的都存在)或者重命名(目的不存在)
(7)cp
作用:拷貝文件或者目錄
cp src_dir dst_dir ->把原來的目錄拷貝一份 eg: cp ../dir/file dir/ 將上一級目錄下的dir/file拷貝di下
cp src_dir dst_dir -a ->把原來的目錄拷貝一份(所有)
cp src_dir dst_dir -r ->把原來的目錄拷貝一份(遞歸),用於拷貝目錄
(8)cat tac more
作用:在終端顯示文件內容(不打開文件)
cat file ->查看file內容
tac file ->反向輸入一個文件的內容
more file ->顯示一個文件一個屏的內容(用於文件內容比較多的情況,按 空格 查看下一屏,q退出)
(9)通配符
匹配一個字符 ?
匹配任意長度的字符串 * eg: *.txt
匹配指定的字符1和3 [13]
eg:[13].txt ---1.txt 2.txt
匹配一個指定範圍的單個字符 [1-3] eg:[13].txt
---1.txt 2.txt 3.txt
匹配除了指定字符外的字符 [^1]
(10)重定向
改變輸入和輸出的方向,這就叫做重定向。
1-- 輸出重定向,新建模式。
ls > test.txt 文件不存在創建,存在清零
2-- 輸出重定向,追加模式
ls
>> test.txt 文件不存在創建,存在追加到末尾
3-- 輸入重定向
<
wc < test.txt
4-- 出錯重定向
2> , 2>> (2表示標準出錯)
&> , &>>
(11)echo
作用:顯示一行文本
echo "hello" -> 終端輸出字符串(帶引號原樣輸出,不帶引號有多個空格只會保留一個)
echo -n "hello" -> 終端輸出字符串(不換行)
echo -e "hello\nworld" ->遇到\n換行
echo "hello" >> file ->重定向字符串到文件中(追加方式)
(12) diff
作用:比較兩個文件的異同
diff file1
file2 -> 比較file1和file2的內容
(13)df
作用: 用於查看磁盤空間的使用情況。
df -aTh a:所有 T:類型 h: K,M,G(人類可識別)識別)
(14)du
作用:查看文件的大小
du -ah
file 測所有的文件的大小
(15)wc
作用:測試文件的行數、字符數、字節數
wc -l file.txt測試行數
wc -w file.txt 測試單詞的個數
wc -m file.txt 測試的是字符數
wc -c file.txt 測試的是字節數
(16)管道
作用:管道道可以把一系列命令連接起來,第一個命令的輸出可以第二個命令的輸入...
| 表示 管道
ls /usr/bin | wc -w
(17)命令置換
作用:命令替換是將一個命令的輸出作爲另一個命令的參數。
ls `pwd`(爲esc下的 ``)
(18)進程相關命令
ps 查看進程信息 // process snapshot 進程快照
ps ajx 進程詳細信息
ps aux 進程更加詳細信息
top 動態顯示系統中的進程
shift + < shift + > 進行翻頁操作 q 退出
kill 給進程發送一個信號
kill -l 列出當前系統支持的信號種類
kill -9 pid 殺死pid這個進程
pstree 樹狀形式,顯示進程的信息
./a.out & 就是將一個進程放到後臺運行。
(19)查找字符串 grep
find
1-- 知道內容,找文件(按字符串查找文件路徑)
格式:grep [選項] “描述” [路徑]
grep "關鍵詞" ./* -R <==> grep "內容" 路徑 遞歸
(./ 爲當前路徑 * 所有文件)
eg:grep "main" ./* -R
2-- 知道文件名字,找路徑(按名稱查找文件路徑)
格式:find [路徑] [選項] [描述]
find ./* -name 文件名 eg:find ./* -name copy.c
eg:find . -type d/f -name filename
find . -type d/f -mtime -10 //最後更改時間 十天內
find
. -type d/f -atime -10 //訪問時間
(20)date cal
作用:顯示日期/日曆
sudo date -s hh:mm:ss 修改時間
sudo date -s mm/dd/year 修改年月日
修改時區:
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
cal 顯示日曆
(21)網絡配置
1-- ifconfig 查看網絡信息
sudo ifconfig eth0 down 關閉網卡
sudo ifconfig eth0 up 開啓網卡
2-- ping 測試網絡是否暢通
ping 域名
ping ip地址
對方開着防火牆, 那麼 ping 不通
3-- nslookup 域名解析
nslookup 網址
nslookup ip地址
(22)uname -r 查看內核版本號
uname
-a 查看linux內核等的一些信息(詳細)
uname -n 查看計算機名稱
(23)軟件包的安裝
【1】本地安裝:
sudo dpkg -i .*deb 安裝軟件包(當前路徑下的deb包)
sudo dpkg -r 軟件名 卸載軟件包(不刪除配置文件)
sudo dpkg -P 軟件名 卸載軟件包(刪除配置文件)
sudo dpkg -s 軟件名 查看軟件包安裝狀態
sudo dpkg -L 軟件名 查看軟件包的安裝列表
【2】在線安裝:
sudo vi /etc/apt/source.list 打開此文件是鏡像源(服務器網站)
sudo vi /var/cache/apt/archieves 打開存放的是在線下載的軟件包(*.deb)
sudo vi /lib/apt/lists 打開引索文件
sudo apt-get install 軟件名 安裝軟件包
sudo apt-get updata 更新軟件源
sudo apt-get remove--purge 軟件名 刪除文件包括配置文件
sudo apt-get remove purge 軟件名
刪除文件不包括配置文件sudo apt-get clean 刪除緩衝中的軟件包
sudo apt-get cheak 檢測軟件包的依賴關係
sudo apt-cache policy 軟件包 查看軟件包安裝狀態
sudo apt-cache show 軟件包 查看軟件包信息
sudo apt-cache depend 軟件包 查看軟件的依賴關係
sudo apt-cache redepends 軟件包 查看軟件的被依賴關係
(24)mkfifo
管道名稱 創建管道文件
(25)ipcs
ipcs -m 查看當前系統上存在的共享內存
ipcrm -m shmid 刪除當前系統上指定的共享內存
ipcs -s
查看當前系統上存在信號量集合
ipcrm -s semid 刪除當前系統上指定id的信號量集合
(26)sudo shutdown -r(重啓)/-h(關機) now(立刻)/+30(30分鐘後)/12:00 關機和重啓
sudo reboot ---->重啓
(27)文件的壓縮
1-- gzip 壓縮 , 沒有歸檔功能, 文件夾不能被壓縮
gzip filename // 生成 filename.gz
gunzip *.gz // 解壓
2-- bzip2 壓縮, 沒有歸檔功能
bzip2 filename
bunzip2 *.bz2
3-- zip 壓縮, 壓縮文件和文件夾
zip filename.zip filelist
unzip *.zip
4-- tar 歸檔並且壓縮
tar -cjf *.tar.bz2 filelist //壓縮
tar -xvf *.tar.bz2 // 解壓
tar -czf *.tar.gz filelist
tar -xvf *.tar.gz // 解壓
(28) od
od -c file 以可讀文本的形式在終端打開
(29) head
tail
head 顯示文件開頭部分的內容, 默認顯示前10行
tail 顯示文件末尾部分的內容,默認顯示後10行
(30)ln
1-- 硬鏈接(兩個文件的inode號相同,是同一個存儲區域,修改一個另一個也改變)
並沒有創建新的文件,所以不佔新的空間,主要是用來對文件進行備份使用的。
ln filename linkfile 不允許對目錄硬鏈接
ls -lhi
ls -li (查看inode號)
2-- 軟鏈接(產生了新文件,開闢新的存儲空間,應該用絕對路徑,否則不能把鏈接文件放在其他目錄)
ln -s filename linkname
創建了新的文件,類似於windows 下面快捷方式 支持目錄操作
eg: ln -s `pwd`/file link(絕對路徑)
(31)用戶管理
1-- /etc/passwd 用戶相關信息 sudo+vi+/etc/passwd打開
linux:x:1000:1000:linux::/home/linux:/bin/bash
用戶名:密碼:uid:gid:用戶信息:家目錄:shell
2-- /etc/group 組的相關信息
linux:x:1000:
組名:密碼:組ID:成員列表,彼此用逗號隔開
3-- /etc/shadow 密碼具體信息
【1】添加用戶
sudo adduser u1
會在/home下建立以用戶名爲目錄名的家目錄
【2】刪除用戶
sudo deluser --remove-home u1
【3】將不同用戶添加到同一個組中:
usermod -g 組名 用戶名 // usermod -g u1 u2
【4】刪除組:
delgroup groupname
(32)file
作用:查看文件信息
file+文件名
(33)su
作用: 切換用戶
su 用戶名
(34)sudo
作用:獲得超級用戶權限
eg:sudo vi /ect/network/interface
(35)history
作用:查看歷史記錄信息
history 查看歷史命令
history >> test.txt
1-- 臨時性
直接修改 HISTSIZE=1000
echo $HISTSIZE
2-- 永久性
vi .bashrc s
HISTSIZE=1500
source .bashrc 重啓生效
(36)pwd
作用: 獲得當前終端所在的路徑
(37)whereis
作用:查看命令位置
whereis 命令名
eg:whereis ls
(38)chmod
作用:修改權限
chmod 權限掩碼 文件
eg :chmod 777 file.sh
chmod u+x file.sh
(39)time
作用:查看命令/程序運行時間
time ls
(40)clear
作用:清屏
(41)bc
作用:進入數學運算中
(42)sed
作用:替換一個字符串等
eg: sed "s#src_str#dst_str/g" file.txt > file.txt.tmp
mv file.txt.tmp file.txt.tmp
說到這裏就把Linux的基本的常用命令說完了,當然Linux下的命令有很多,作爲Linux系統管理員來說,這些命令是遠遠不夠的,有許多我們沒有見過的命令,在此就不在贅述。可能還有許多命令加上其他的參數之後還有其他的功能,對此可以通過查閱man手冊來學習,對於其中不足指出望提出寶貴意見。