Linux Shell經常使用命令

1、文件與目錄

  • 查看命令幫助
#使用 --help參數
ls --help

#使用man(manual)命令,q退出man命令
man ls
  • 切換查看目錄
cd ~
cd ~/Desktop
cd -
cd ..
cd .
cd ../../xxx/     [組合使用]
cd /etc/init.?  [使用通配符 * 和 ?] 

ls -al

#-l 顯示文件詳細信息,從左至右依次爲:文件類型與權限、鏈接佔用節點(i-node)、
#文件全部者、文件全部者的用戶組、文件大小
#(使用-h參數可顯示大小單位)、文件的建立或修改時間、文件名稱
  • 建立文件和文件夾 
#當前目錄建立文件
touch filename

#建立文件夾
mkdir folder

#建立連接文件
#默認建立的是硬鏈接,比如複製 ,可是兩個文件會同步,-s建立軟連接
link filename linkfile
  • 移動文件/重命名
#移動到指定目錄
mv [filename] [target]
  • 查看文件信息
#查看文件的詳細信息
stat filename
#顯示文件的大小信息
du file
  • 複製文件
#複製文件到指定目錄
cp [filename] [targer]
  • 刪除文件
#刪除單個文件或空文件夾
rm [filename/folder]
#刪除非空文件夾
rm -rf [folder]
#刪除全部全部文件
rm -rf *
#刪除全部文件排除指定文件,|先後無空格
rm -rf !(file1|file2)

#-type f表示普通文件,文件夾下若是有文件夾則會報錯
find -type f | xargs /bin/rm -f
  • 查找文件
#find
#例如在根目錄 / 下查找host.conf文件
find / -name host.conf
#where
  • 更改文件權限

Linux文件類型
文件夾 d : 連接文件 l : 套接字文件 s : 塊設備文件 b :字符設備文件 c : 管道設備文件 p : 普通文件 -node

Linux文件權限linux

wrx分別表示可讀可寫可執行,文件夾表示可進入,-表示無權限
權限字符表示法
第1個字符   : 文件類型
第2-4個字符 : 該文件的屬主用戶的權限 
第5-7個字符 : 與屬主用戶同一組的其餘用戶的權限
第8-10個字符: 不一樣組的其餘用戶的權限正則表達式

數字表示法,使用三個三位二進制數分別表示以上三個用戶和組的權限,如:
-rw-r--r--   :文件的默認權限  644
drwxr-xr-x   :目錄的默認權限  755shell

 

#更文件用戶和用戶組
chown [username:groupname] [filename]

#更改文件讀寫執行權限
chmod [who] [+ | - | =] [mode] [filename]
#who的選項
#u 表示「用戶(user)」,即文件或目錄的全部者。
#g 表示「同組(group)用戶」,即與文件屬主有相同組ID的全部用戶。
#o 表示「其餘(others)用戶」。
#a 表示「全部(all)用戶」。它是系統默認值。

#+ 添加某個權限。
#- 取消某個權限。
#= 賦予給定權限並取消其餘全部權限(若是有的話)

#mode 可選值有r w x u g o等

例:給test.py文件添加可執行權限

#777分別表示User、Group、及Other的權限
chmod 777 test.py
#或者使用a表示全部用戶
chmod a=rwx test.py

#Ubuntu下使用下面方式也能爲全部用戶添加可執行權限
chmod +x test.py

#使用下面的方式會報錯:invalid mode 'a' ,測試環境爲Ubuntu
chmod a+x test.py

2、文本處理

  • 查看文件
cat filename

#分頁查看,空格翻頁
more filename
  • 文件輸出
echo [string]

echo [string] [filename]
  • 管道命令與重定向
#使用echo向文件輸出字符串
#覆蓋
echo "string" > filename

#追加
echo "string" >> filename
  • grep/awk文本搜索
#grep是一種強大的文本搜索工具,它能使用正則表達式搜索文本,並把匹配的行打印出來
netstat -antp | grep sshd
  • wc統計文本行數和字符
#統計文本文件字符
wc demo.txt
#輸出三個數字,依次表示行數、單詞書、字符數

#利用wc指令咱們能夠計算文件的Byte數、字數、或是列數,若不指定文件名稱、或是所給予的文件名爲"-",則wc指令會從標準輸入設#備讀取數據,ctrl+c退出計數。

#-c或--bytes或--chars 只顯示Bytes數
#-l或--lines 只顯示列數
#-w或--words 只顯示字數
#--help 在線幫助
#--version 顯示版本信息
  • sort排序

#    sort 命令對 File 參數指定的文件中的行排序,並將結果寫到標準輸出。若是 File 參數指定多個文件,那麼 sort 命令將#這些文件鏈接起來,並看成一個文件進行排序。

-f  :忽略大小寫的差別,例如 A 與 a 視爲編碼相同
-b  :忽略最前面的空格符部分
-M  :以月份的名字來排序,例如 JAN, DEC 等等的排序方法
-n  :使用『純數字』進行排序(默認是以文字型態來排序的)
-r  :反向排序
-u  :就是 uniq ,相同的數據中,僅出現一行表明
-t  :分隔符,默認是用 [tab] 鍵來分隔
-k  :以那個區間 (field) 來進行排序的意思
#例
sort [--fbMnrtuk] [file or stdin]
//將文件排序顯示在終端
cat fileName | sort

 

  • sed

#替換文本
  •  xargs

#刪除redhat的yum包,不檢查
rpm -qa|grep yum|xargs rpm -e --nodeps

3、系統命令

  • 開機與關機

等級劃分windows

·         run level 0: 關機centos

·         run level 3: 純文本模式安全

·         run level 5: 含圖形接口模式bash

·         run level 6: 從新啓動服務器

等級切換網絡

·         init 0 # 切換到等級0,即關機

shutdown,halt,poweroff區別

shutdown :使系統關閉,參考一下現有的解釋:「命令安全地將系統關機。有些用戶會使用直接斷掉電源的方式來關閉linux,這是十分危險的。由於linux與windows不一樣,其後臺運行着許多進程,因此強制關機可能會致使進程的數據丟失﹐使系統處於不穩定的狀態﹐甚至在有的系統中會損壞硬件設備。而在系統關機前使用shutdown命令﹐系統管理員會通知全部登陸的用戶系統將要關閉。而且login指令會被凍結﹐即新的用戶不能再登陸。直接關機或者延遲必定的時間才關機都是可能的﹐還可能重啓。這是由全部進程〔process〕都會收到系統所送達的信號〔signal〕決定的。這讓像vi之類的程序有時間儲存目前正在編輯的文檔﹐而像處理郵件〔mail〕和新聞〔news〕的程序則能夠正常地離開等等」

並且shutdown會去執行 /etc/rc0.d/下面的腳本,也就是說會去執行runlevel 0的腳本。 halt則不會。

poweroff: 切斷系統電源

poweroff就是halt的軟連接而已。執行的仍是halt命令。關於halt命令,能夠這樣理解:halt就是調用shutdown -h。halt執行時﹐殺死應用進程﹐執行sync系統調用﹐文件系統寫操做完成後就會中止內核。

#註銷
logout
#登出
exit
#關機 poweroff/halt/shutdown
#shutdown -h now
#shutdown -h [指定時間或倒計時]
#重啓
restart
#shutdown -h至關於halt ,-r至關於restart

#重啓
reboot
  • 用戶管理
#查看在線的用戶
who
#查看當前本身的用戶
whoami
#查看主機名
hostname
#查看系統信息
uname -a

#添加用戶,-d指定用戶home路徑,-s指定用戶shell解析方式
useradd username -d folder
#刪除用戶
#設置密碼
passwd
#添加sudoer
  • 刷新配置文件 source  /etc/profile
  • 將內存中未寫入磁盤的文件寫入磁盤 sync
  • 查看系統信息
#內核版本:
    cat  /proc/version 
    uname -a   或   uname -r
#查看操做系統版本
    cat /etc/issue
    cat /etc/redhat-release
#查看系統字長(系統位數)
#經過查看long類型的長度
    getconf LONG_BIT
    file /bin/ls

#導出和查看MBR

#dd命令,導出MBR記錄到bin文件
dd if=/dev/sda of=mbr.bin bs=1 count=512

#hexdump命令查看二進制文件
hexdump -C mbr.bin
  • 系統服務
#更新和查詢系統服務運行級別 chkconfig

add 增長指定系統服務
del 刪除指定系統服務
list 列出全部系統服務
#例如查看sshd服務
chkconfig --list sshd 或 chkconfig --list | grep sshd
#level 修改系統服務級別,例如設置sshd開機啓動
chkconfig --level 5 sshd on

#各個級別的含義
      ​​​​等級0表示:表示關機
      等級1表示:單用戶模式
      等級2表示:無網絡鏈接的多用戶命令行模式
      等級3表示:有網絡鏈接的多用戶命令行模式
      等級4表示:不可用
      等級5表示:帶圖形界面的多用戶模式
      等級6表示:從新啓動

4、壓縮與解壓

  • tar
#tar :打包、拆包命令 
#tar [- cxzjvf]  <打包後的文件>   <欲打包的目錄>
#	  - c :建立的一個歸檔文件 ,即打包文件夾
#	  - x :拆包
#	  - z :以gzip 格式壓縮,默認壓縮倍數 6倍  (0-9)
#	  - j :以bzip2格式壓縮
#	  - v :顯示打包或者拆包的文件信息
#	  - f : 後面緊接一個 歸檔文件

#打包文件
tar -cvf [filename.tar] [要打包的文件]
#解包文件
tar -xvf [filename.tar]

#gzip壓縮
gzip filename.tar
#gzip解壓
gzip -d filename.tar.gz

#打包壓縮或拆包解壓加上壓縮格式參數z或j
tar -czvf [filename.tar] [要打包的文件]
tar -xzvf [filename.tar]

#查看壓縮文件內容
-t 表示查看壓縮文件的內容,在解壓不肯定是否安全的文件以前強烈建議先查看內容,防止tar炸彈
#查看.tar.gz文件內容
tar -ztvf filename.tar.gz
  • rar/zip/7z
#將xxx目錄或文件壓縮成yyy.zip  -r 表示遞歸
zip -r yyy.zip xxx

#解壓yyy.zip文件到xxx目錄, -d 指定解壓到的目錄  -o 表示覆蓋
unzip -o -d xxx yyy.zip

5、網絡配置

  • 查看或配置網卡信息
ifconfig
#設置靜態ip
ifconfig eth0 192.168.15.122 netmask 255.255.255.0
#查看當前使用DNS服務
#設置DNS服務
#
#查看ip,使用管道命令只輸出ip地址
ifconfig eth0 | grep "inet addr" | awk '{ print $2}' | awk -F: '{print $2}'
 
ip
  • ping網絡測試
ping 域名或ip                 
#Ctrl+C退出
ping -c 3 域名或ip         
#-c 3指定三次後結束
  • 當前網絡鏈接信息
# netstat是用來顯示各類網絡信息的命令,參數以下
-a (all)顯示全部選項,默認不顯示LISTEN相關
-t (tcp)僅顯示tcp相關選項
-u (udp)僅顯示udp相關選項
-n 拒絕顯示別名,能顯示數字的所有轉化成數字。
-l 僅列出有在 Listen (監聽) 的服務狀態
-p 顯示創建相關連接的程序名
-r 顯示路由信息,路由表
-e 顯示擴展信息,例如uid等
-s 按各個協議進行統計
-c 每隔一個固定時間,執行該netstat命令。
提示:LISTEN和LISTENING的狀態只有用-a或者-l才能看到
  • 網絡下載

#通常的使用方法是: wget + 空格 + 參數 + 要下載文件的url路徑
-b:後臺下載,Wget默認的是把文件下載到當前目錄。
-O:將文件下載到指定的目錄中。
-P:保存文件以前先建立指定名稱的目錄。
-t:嘗試鏈接次數,當Wget沒法與服務器創建鏈接時,嘗試鏈接多少次。
-c:斷點續傳,若是下載中斷,那麼鏈接恢復時會從上次斷點開始下載。
-r:使用遞歸下載

#例
wget http://www.linuxsense.org/xxxx/xxx.tar.gz

wget -c http://www.linuxsense.org/xxxx/xxx.tar.gz

6、進程與端口

  • 進程查看,結束
#顯示當前耗時的進行的信息 ,每3秒刷新一次
top
#顯示當前進程的快照 
ps -axu
#結束進程
kill pid
  • 判斷端口是否被佔用
#檢查11088端口是否被佔用
netstat -antp | grep 11088

7、文件系統與磁盤分區

  • 掛載光驅
#以centos7爲例
#在/mnt目錄下建立掛載點
mkdir /mnt/cdrom
#將/dev/cdrom設備掛載到上面的掛載點
mount /dev/cdrom /mnt/cdrom
#取消掛載
umount /dev/cdrom /mnt/cdrom
  • 查看磁盤信息
#disk free查看磁盤使用狀況
df

8、源碼編譯與安裝

#執行配置文件
./configure
#編譯安裝
make && make install
#使用sudo命令需分開
sudo make
sudo make install
#若是程序爲安裝到/usr/bin目錄下,能夠建立連接文件
[sudo] ln -s [目標文件] [連接文件]

#加快編譯速度,並行編譯-j 或 --jobs
#指定使用2個核心編譯,不指定默認使用所有核心
make -j 2

其餘

source

export

update-alternatives --install   --display  --config

相關文章
相關標籤/搜索