簡介
一般說的“命令行”是指命令,linux命令是對Linux系統進行管理的命令。對于Linux系統來說,無論是中央處理器、內存、磁盤驅動器、鍵盤、鼠標,還是用戶等都是文件,Linux系統管理的命令是它正常運行的核心,與之前的DOS命令類似。
常用命令行
- 文件或目錄的進本操作:
- mkdir 創建目錄
- mkdir -p 遞歸創建
- tree 以樹形結構顯示文件目錄結構
- cd 進入根目錄
- cd .. 退回上層目錄
- cd dir 進入某目錄
- ls -l 詳情模式列出文件夾的內容
- ls -a 列出文件夾里包括以"."開頭的隱藏文件的內容
- rm 刪除文件
- rm -r 刪除目錄
- rm -rf 強制刪除文件或目錄
- cp 復制文件到目錄
- cp -r 復制目錄到目錄
- cp -a 復制之后的目標文件/目錄和原文件/目錄一模一樣
- mv 原文件或目錄 目標目錄
- cat 查看文件內容
- chmod -R 遞歸改變文件夾權限
- wc -l * 查看目錄下所有文件的總行數
- source 設置文件中的環境變量
- setenv 設置環境變量
- 查找命令
- find 用來在指定目錄下查找文件
- grep 查找文件里符合條件的字符串
- strings 文件 | grep 關鍵字 匹配文件中的關鍵字
- vi編輯
- i 在光標前插入文本
- I 在當前行首插入文本
- a 光標后插入文本
- A 在當前行尾插入文本
- o 在當前行之下新開一行
- O 在當前行之上新開一行
- r 替換當前字符
- :%s#well#good#g 替換每一行中所有 well 為 good
- 賬號操作命令
- su 切換用戶
- sudo 切換為管理者
- whoami 打印當前用戶信息
- passwd 用于修改用戶的密碼
- 系統及進程命令
- ps 用于顯示當前進程的狀態
- kill 用于殺死進程
- top 查看cpu利用資源
- df -h . 查看memory
- ctrl+c 強制中斷程序
- ctrl+z 將程序掛機
- ipcs 顯示調用進程讀取訪問一些ipc設備信息
- ipcrm 移除消息對象或共享內存段或信號集,同時會將與ipc對象相關鏈的數據也一起移除
shell版本
之前實習工作中較多使用bash,csh,在此我對shell各版本進行對比,并且學習zsh。
Shell是系統的用戶界面,提供了用戶與內核進行交互操作的一種接口。它接收用戶輸入的命令并把它送入內核去執行,每個Shell都有它的用途,有些Shell是有專利的,有些能從Internet或其他來源獲得。
1979年,Stephen Bourne在V7 UNIX版本上引入了標準shell,即sh。
sh是基于Algol的一種編程語言,主要是為了簡化系統管理任務,由于缺少一些交互使用的特征,所以大多用來寫腳本。
19世紀70年代后期,伯克萊分校在BSD UNIX系統上引入了C Shell。在標準Bourne shell上添加了不少功能。C shell在做為編程語言用時很像C語言,提供了相似的語法。而且為方便交互使用,還添加了命令行歷史, 別名, 任務控制等功能。由于在大型機器上設計并添加了太多功能,顯得有些臃腫,性能也比sh慢了很多。
Bourne Shell(即sh)是UNIX最初使用的shell,平且在每種UNIX上都可以使用。Bourne Shell在shell編程方便相當優秀,但在處理與用戶的交互方便作得不如其他幾種shell。
LinuxOS默認的是Bourne Again Shell,它是Bourne Shell的擴展,簡稱bash,與Bourne Shell完全兼容,并且在Bourne Shell的基礎上增加,增強了很多特性。可以提供命令補全,命令編輯和命令歷史等功能。它還包含了很多C Shell和Korn Shell中的優點,有靈活和強大的編輯接口,同時又很友好的用戶界面
C Shell是一種比Bourne Shell更適合的變種Shell,它的語法與C語言很相似。
zsh是一個Linux用戶很少使用的shell,這是由于大多數Linux產品安裝,以及默認使用bash shell。幾乎每一款Linux產品都包含有zsh,通常可以用apt-get、urpmi或yum等包管理器進行安裝。相比其他版本的shell,zsh優點如下:兼容 bash、強大的歷史紀錄功能、智能拼寫糾正、路徑補全、命令補全、插件支持等。
小結
還記得在一開始接觸linux之前,我們對于它都是很抗拒了,習慣了以往的圖形界面,所以自然很抵觸命令行,認為命令行十分復雜,一點兒也不方便,還不理解為什么會有人這么喜歡。可是我在去年實習的工作生活中接觸到了它,學習并且應用,才發現了命令行真正的優點,能快速對文件進行操作、快速對系統進行處理,原來真的比鼠標控制圖形界面方便多了~
趁此機會,我將之前工作中用到的命令行再次總結,并且加上新學習的知識,重新記錄下來,希望能為以后工作帶來便利!