Linux常用操作命令


1. 前言
2.文件目錄操作
ls——獲取文件目錄屬性
pwd——獲取當前工作目錄路徑
cd——切換工作目錄
tree——顯示目錄結構
file——顯示文件類別等信息
mv——移動文件目錄或修改文件目錄名稱
cp——拷貝文件目錄
scp、sz、rz——文件傳輸
touch、vim、重定向——創建文件
mkdir——創建目錄
rm、rmdir——刪除文件或目錄
ln——創建快捷方式
小測試

3.打包壓縮文件
gzip/gunzip——gz壓縮解壓相關
zip/unzip——zip打包壓縮相關
bzip2/bunzip2——bz2壓縮相關
xz/unxz——xz壓縮相關
compress/uncompress/zcat——Z壓縮解壓相關
tar——tar包相關
4.文本內容處理
cat、tac——打印文件內容
more、less——分頁查看文本內容
head、tail——從頭或者從尾查看
wc——統計文本內容
nl——計算文件中的行號
grep——文本內容查找
cut——按需分割文件
sort——對文本內容進行排序
uniq——對文本內容進行去重計數
comm——比較兩個文件中的內容
vim——文本內容編輯
sed——文本的過濾和轉換(流處理)

5.系統信息操作
fdisk、df、du——查看系統磁盤空間信息
lscpu——查看系統cpu配置情況
free——查看系統內存使用情況
top——查看系統實時運行狀態
ps——查看當前運行程序信息
kill——殺掉某個進程
date、cal——查看當前系統時間與日歷
bc——系統自帶簡易計算器
ifconfig、ping、route——查看系統網絡信息
wget——從網上下載數據
bg、fg、jobs——讓程序前后台切換運行
which——查看命令的位置
who、w——查看誰在登陸,在干什么
history——查看歷史命令
man——查看命令函數等幫助文檔

6. 重要備注
alias——命令重命名
|——管道操作符
.bashrc——環境變量設置
screen、nohup——程序不中斷運行

7. 小結

總結


1. 前言

類別:

  • 1.文件目錄操作
  • 2.打包壓縮文件
  • 3.文本內容處理
  • 4.系統信息操作
  • 5. 其它

overview

 

注意:

  • 1. Linux中的大部分命令都是一些單詞的縮寫,只要能夠充分理解操作意圖就能巧妙的掌握這些命令。
  • 2. Linux中的命令是大小寫敏感的(如cd和CD不相同)。
  • 3. 終端(Xshell或者窗口模式中的Terminal應用)中 按下回車即為執行該命令(如 ls 回車, 即為執行ls命令)。
  • 4. 命令的參數前一般有-或者–,而且參數之間通常是用空格隔開,也有多個參數連在一起的。
  • 4. 熟能生巧、多加練習。
  • 5. Linux命令用法多樣,掌握常用即可。

 

學習資料:

http://www.cnblogs.com/peida/archive/2012/12/05/2803591.html
http://www.oschina.net/translate/useful-linux-commands-for-newbies
http://www.php100.com/html/webkaifa/Linux/2009/1106/3485.html
http://blog.csdn.net/xiaoguaihai/article/details/8705992
niaoge

 

Linux 重要的幾個熱

  • [Tab] 按鍵具有命令補全的功能——要有意識的經常使用
  • [Ctrl]-c 按鍵—讓當前的程序『停掉』
  • [Ctrl]-d 按鍵—通常代表着:『鍵盤輸入結束(End Of File, EOF 戒 End OfInput)』的意思;另外,他也可以用來取代exit
  • [Ctrl]-r 按鍵—可以打開反向搜索歷史命令功能,可以用戶根據輸入進行匹配,   回車就表示執行搜索到的命令, 左右鍵表示復制當前搜到的命令到命令行但不執行

 

注:進入終端后會顯示如下默認內容:

 


2.文件目錄操作

ls0

 

基本的文件目錄操作是Linux的基礎知識,如果這些都不能掌握更何談后面的分析。

ls ——獲取文件屬性

ls(list)意思就是列舉出指定文件或目錄的基本屬性(List Directory Contents),下面我們直接執行ls命令來看下輸出結果。用的最多的Linux命令之一。

ls1

 

上面的圖中列舉了文件和目錄的基本屬性,包括權限(r-read, w-write,x-executive),d-Directory。

下面詳細介紹下文件及目錄的權限屬性:

-rw-r–r–

  • 第一個字符為文件類型(-為普通文件;d為目錄(可以理解為特殊的文件);l表示這是一個符號鏈接文件,實際上它指向另一個文件;b、c分別表示區塊設備和其他的外圍設備,是特殊類型的文件;s、p:這些文件關系到系統的數據結構和管道,通常很少見到。)
  • 第2~10個字符當中的每3個為一組,左邊三個字符表示所有者權限,中間3個字符表示與所有者同一組的用戶的權限,右邊3個字符是其他用戶的權限。這三個一組共9個字符,代表的意義如下:

r(Read,讀取):對文件而言,具有讀取文件內容的權限;對目錄來說,具有瀏覽目錄的權限。
w(Write,寫入):對文件而言,具有新增、修改文件內容的權限;對目錄來說,具有刪除、移動目錄內文件的權限。
x(eXecute,執行):對文件而言,具有執行文件的權限;對目錄了來說該用戶具有進入目錄的權限。

  • 權限除了可以用字母表示外,還可以用對應的數字表示:

文件和目錄的權限表示,是用rwx這三個字符來代表所有者、用戶組和其他用戶的權限。有時候,字符似乎過於麻煩,因此還有另外一種方法是以數字來表示權限,而且僅需三個數字。
r: 對應數值4
w: 對應數值2
x:對應數值1
-:對應數值0

其實很簡單,我們將rwx看成二進制數(不懂的話百度),如果有則有1表示,沒有則有0表示,那么rwx r-x r- -則可以表示成為:111 101 100,再將其每三位轉換成為一個十進制數,就是754。

ls命令格式及參數:

其它更詳細的參數:

ls2ls3

 

應用舉例:

 

pwd——獲取當前工作目錄

直接運行pwd即可

cd——切換工作目錄

cd(change directory) 就是切換當前工作目錄的意思。

使用示例:

tree——顯示目錄結構

file——顯示文件類別等信息

mv——移動文件目錄或修改文件目錄名稱

move (rename) files, 同時具備移動和重命名的功能。用的最多的Linux命令之一。

 

 

cp——拷貝文件目錄

copy files and directories, 復制文件或目錄。用的最多的Linux命令之一。

使用示例:

scp、sz、rz——文件傳輸

scp、sz、rz是一組提供文件傳輸功能的命令,其中scp(secure copy)主要是針對遠程服務器之間的拷貝,而sz(send)是從服務器上將文件下載到本地電腦,而rz(receive)則是將本地電腦上的文件傳輸到服務器相應的路徑,有的服務器上不一定自帶了sz rz功能,需要利用root賬戶安裝相應的軟件lrzsz.x86_64(yum install lrzsz.x86_64)。

scp一般的格式是  scp [參數]  [[user@]host1:]file1 [[user@]host2:]file2, 其中參數部分和cp類似,像最常用的-r

sz 后面直接跟文件即可從服務器上進行下載,如下:

rz 在終端敲入rz后會彈出文件選擇器對話框(注:本地需要上傳的文件最好不要存放在中文路徑,否則會出錯)

scp在服務器之間進行數據的傳輸很有效,rz sz則在與服務器進行小文件的傳輸很多效,大數據的傳輸可以使用一些專業的傳輸軟件,如filezilla、winscp等。

touch、vim、重定向——創建文件

上面講了很多與文件相關的命令,那么如何去創建一個文件呢?(好比windows下單擊郵件->New->New Documents txt)。Linux中有很多創建文件的方式,下面介紹幾種。

touch——change file timestamps,touch的主要用途是改變文件的時間戳,但同時也是可以去創建一個空白的文本文件。

使用示例:

vim——Vi IMproved, a programmers text editor, 是vi的一個升級版,強大功能的文本編輯工具,和我們普通的視窗編輯器不同,用熟練了后效率會很高。vim可以創建一個空白的文檔,也可以打開編輯多個文檔,多以是指令的方式來完成相應的操作。這里簡單提及下利用vim 創建一個文檔。

重定向——我們默認運行的一些命令,其輸出結果(包括標准正確輸出標准錯誤輸出)一般是直接輸出到屏幕上去的,有時我們希望把這些結果存在文件中,這就涉及到了結果的重定向輸出。

mkdir——創建目錄

mkdir——看着英文縮寫就應該知道該命令的意思了(make directory)常見文件夾。linux mkdir 命令用來創建指定的名稱的目錄,要求創建目錄的用戶在當前目錄中具有寫權限,並且指定的目錄名不能是當前目錄中已有的目錄。用的最多的Linux命令之一。

使用示例:

rm、rmdir——刪除文件或目錄

rm——remove files and directory, 刪除文件和目錄,用的最多的Linux命令之一。

  • 該命令的功能為刪除一個目錄中的一個或多個文件或目錄,它也可以將某個目錄及其下的所有文件及子目錄均刪除。對於鏈接文件,只是刪除了鏈接,原有文件均保持不變。
  • rm是一個危險的命令,使用的時候要特別當心,尤其對於新手

 

使用示例:

rmdir——remove empty directory 主要是用來刪除空目錄的,可以用rm –r dir 來替代。

ln——創建快捷方式

  • ln是linux中又一個非常重要命令,它的功能是為某一個文件在另外一個位置建立一個同步的鏈接.當我們需要在不同的目錄,用到相同的文件時,我們不需要在每一個需要的目錄下都放一個必須相同的文件,我們只要在某個固定的目錄,放上該文件,然后在 其它的目錄下用ln命令鏈接(link)它就可以,不必重復的占用磁盤空間
  • 分為硬連接軟鏈接

連接也是實現數據共享,避免數據冗余的一種方法。
軟鏈接:
1.軟鏈接,以路徑的形式存在。類似於Windows操作系統中的快捷方式
2.軟鏈接可以 跨文件系統 ,硬鏈接不可以
3.軟鏈接可以對一個不存在的文件名進行鏈接
4.軟鏈接可以對目錄進行鏈接

硬鏈接:
1.硬鏈接,以文件副本的形式存在。但不占用實際空間。
2.不允許給目錄創建硬鏈接
3.硬鏈接只有在同一個文件系統中才能創建

使用示例:

 

小測試

從本地電腦上傳一個txt文件到服務器,將該txt文件修改為example.txt,創建example目錄並將example.txt移動到該目錄。查看該文件的文件類別信息,拷貝一個example.txt並命名為example.copy.txt。最后刪除example目錄及其所包含的所有內容。

part1


 

3.打包壓縮文件

文件及目錄的打包壓縮可以使文檔更加整潔和減少磁盤存儲,如window上的zip,rar等類似。壓縮的算法有很多種,也對應下面不同的命令,但是基本的參數都很相似。

gzip/gunzip——gz壓縮解壓相關

最簡單用法(一般壓縮文件后綴名為gz):

解壓:gunzip somefile.gz,或者,gzip –d somefile.gz

壓縮:gzip somefile

gzip

使用示例:

gunzip

使用示例:

zip/unzip——zip打包壓縮相關

上述介紹的gzip只是壓縮但並不能對多個文件或者文件夾打包,zip具有打包和壓縮功能,這和我們在windows上常見的zip是一樣的,這種文件在windows和linux上是通用的,后綴名一般為zip。(package and compress (archive) files)

使用語法: zip some.zip  addfile1 addfile2 adddir1

使用示例:

 

使用示例:

bzip2/bunzip2——bz2壓縮相關

與上述的zip不同,bzip2只能壓縮而不提供打包功能,這與gzip相同。(a block-sorting file compressor),一般后綴名為.bz2。

最簡單語法:

壓縮:bzip2  [參數] file1 file2

解壓:bunzip2 file.bz2

使用示例:

xz/unxz——xz壓縮相關

xz壓縮用的相對少一點,用法和bzip2、gz差不多。(a general-purpose data compression tool with command  line  syntax  similar  to  gzip(1)  and bzip2(1).)

使用示例:

compress/uncompress——Z壓縮解壓相關

compress 是一個相當古老的 unix 檔案壓縮指令,壓縮后的檔案會加上一個 .Z 延伸檔名以區別未壓縮的檔案,壓縮后的檔案可以以 uncompress 解壓。若要將數個檔案壓成一個壓縮檔,必須先將檔案 tar 起來再壓縮。由於 gzip 可以產生更理想的壓縮比例,一般人多已改用 gzip 為檔案壓縮工具。

有的服務器上可能只有它的幫助文檔,但是並沒有其命令。(需root用戶安裝:yum install ncompress.x86_64)

使用示例:

tar——tar包相關
tar是非常重要打包壓縮命令,因為它可以打包解包,而且還可以調用其它命令來進行壓縮,是一個綜合性的命令。
單純的tar是打包而不是壓縮
解包:tar -xvf somefile.tar,
打包:tar -cvf somefile.tar dir_or_file_list

使用示例:

大家可能會問,windows下常用的rar在linux下有對應的命令嗎?由於rar在Linux不常用所以不自帶rar相關的命令,需要另外安裝,這里就不講解了。

compress

 


4.文本內容處理

前兩節講解的主要是如何對文件系統的中的文件和目錄進行操作(包括瀏覽、創建、打包、壓縮等),那么這節就要講解下如何去文件的內容進行操作(包括查看、統計、搜索、編輯等)。

cat、tac——打印文件內容

cat – concatenate files and print on the standard output
tac – concatenate and print files in reverse

使用示例:

more、less——分頁查看文本內容

more命令,功能類似 cat ,cat命令是整個文件的內容從上到下顯示在屏幕上。 more會以一頁一頁的顯示方便使用者逐頁閱讀,而且還有搜尋字串的功能 。more命令從前向后讀取文件,因此在啟動時就加載整個文件。

more 命令格式:

more [-dlfpcsu ] [-num ] [+/ pattern] [+ linenum] [file … ]

more 常用操作命令(用more打開文件后,操作鍵盤):
Enter    向下n行,需要定義。默認為1行
Ctrl+F   向下滾動一屏
空格鍵  向下滾動一屏
Ctrl+B  返回上一屏
=       輸出當前行的行號
:f     輸出文件名和當前行的行號
V      調用vi編輯器
!命令   調用Shell,並執行命令
q       退出more

使用示例:

less – opposite of more, 應該說是linux正統查看文件內容的工具,功能極其強大。less 的用法比起 more 更加的有彈性。若使用了 less 時,就可以使用 [pageup] [pagedown等按鍵的功能來往前往后翻看文件,更容易用來查看一個文件的內容!除此之外,在 less 里頭可以擁有更多的搜索功能,不止可以向下搜,也可以向上搜

less 命令格式:

less [參數]  文件(s)

less 常用操作命令(用less打開文件后,操作鍵盤):

less 與 more 類似,但使用 less 可以隨意瀏覽文件,而且 less 在查看之前不會加載整個文件。

/字符串:向下搜索“字符串”的功能
?字符串:向上搜索“字符串”的功能
n:重復前一個搜索(與 / 或 ? 有關)
N:反向重復前一個搜索(與 / 或 ? 有關)
空格鍵 滾動一行
回車鍵 滾動一頁
[pagedown]: 向下翻動一頁
[pageup]:   向上翻動一頁

附加備注

1.全屏導航
ctrl + F – 向前移動一屏
ctrl + B – 向后移動一屏
ctrl + D – 向前移動半屏
ctrl + U – 向后移動半屏

2.單行導航
j – 向前移動一行
k – 向后移動一行

3.其它導航
G – 移動到最后一行
g – 移動到第一行
q / ZZ – 退出 less 命令

4.其它有用的命令
v – 使用配置的編輯器編輯當前文件
h – 顯示 less 的幫助文檔
&pattern – 僅顯示匹配模式的行,而不是整個文件

head、tail——從頭或者從尾查看

head – output the first part of files
tail – output the last part of files
head 用來顯示檔案的開頭至標准輸出中,默認head命令打印其相應文件的開頭10
tail 命令從指定點開始將文件寫到標准輸出。

使用tail命令的-f選項可以方便的查閱正在改變的日志文件, tail -f filename會把filename里最尾部的內容顯示在屏幕上,並且不但刷新,使你看到最新的文件內容。

wc——統計文本內容

此wc非彼wc,wc – print newline, word, and byte counts for each file, 打印每個文件的行數、字數、字節數。

wc [OPTION]… [FILE]

使用示例:

nl——計算文件中的行號

nl命令在linux系統中用來計算文件中行號。nl 可以將輸出的文件內容自動的加上行號!其默認的結果與 cat -n 有點不太一樣, nl 可以將行號做比較多的顯示設計,包括位數與是否自動補齊 0 等等的功能。

nl [選項]… [文件]…

使用示例:

grep——文本內容查找

  • Linux系統中grep命令是一種強大的文本搜索工具,它能使用正則表達式搜索文本,並把匹 配的行打印出來。grep全稱是Global Regular Expression Print,表示全局正則表達式版本,它的使用權限是所有用戶。
  • grep的工作方式是這樣的,它在一個或多個文件中搜索字符串模板。如果模板包括空格,則必須被引用,模板后的所有字符串被看作文件名。搜索的結果被送到標准輸出,不影響原文件內容。
  • grep可用於shell腳本,因為grep通過返回一個狀態值來說明搜索的狀態,如果模板搜索成功,則返回0,如果搜索不成功,則返回1,如果搜索的文件不存在,則返回2。我們利用這些返回值就可進行一些自動化的文本處理工作。
  • grep [option] pattern file

 

其中-c -i -v -n 較常用。

使用示例:

grep在后面的日常操作中使用的很頻繁,必須掌握。
cut——按需分割文件

cut是一個選取命令,就是將一段數據經過分析,取出我們想要的。一般來說,選取信息通常是針對“行”來進行分析的,並不是整篇信息分析的。cut 命令從文件的每一行剪切字節、字符和字段並將這些字節、字符和字段寫至標准輸出。如果不指定 File 參數,cut 命令將讀取標准輸入。必須指定 -b、-c 或 -f 標志之一。

使用示例:

sort——對文本內容進行排序

sort – sort lines of text files, 對文本內容按行或者(某一個字段進行排序),sort將文件的每一行作為一個單位,相互比較,比較原則是從首字符向后,依次按ASCII碼值進行比較,最后將他們按升序(默認)輸出。

sort [OPTION]… [FILE]…

其中的-k -n -r都很重要。

使用示例:

 

uniq——對文本內容進行去重計數

uniq – report or omit repeated lines, 報告或者刪除重復的行,接受的輸入文件必須是已經排序了的。

uniq [OPTION]… [INPUT [OUTPUT]]

 

comm——比較兩個文件中的內容

comm – compare two sorted files line by line, 按行比較兩個已經排好序的文件。主要是用來找文件間的共同行或者獨有行。

comm [OPTION]… FILE1 FILE2

使用示例:

vim——文本內容編輯

  • vim – Vi IMproved, a programmers text editor, vim 是Linux上一款十分強大的文本編輯工具,不同於我們常用的記事本等可視化編輯工具,大部分操作是通過相應的命令來完成的,剛開始可能會不習慣,熟悉后會提高工作效率。
  • vim配有眾多參數,我們只需掌握其中常用的幾種。
  • vim在使用過程中有三種模式:

一般模式:在Linux終端中輸入“vim 文件名”就進入了一般模式,但不能輸入文字。

編輯模式:在一般模式下按i就會進入編輯模式,此時就可以寫程式,按Esc可回到一般模式。

末行命令模式:在一般模式下按就會進入命令模式,左下角會有一個冒號出現,此時可以敲入命令並執行。

vim的功能遠不止這些,具體可以看下相應的博客。

http://www.cnblogs.com/tzhangofseu/archive/2011/12/17/2290955.html

http://blog.sina.com.cn/s/blog_50d43ad50100osd6.html

vim打開文件

vim somefile

編輯模式指令

i 在光標前進入 I 在行首進入
a 在光標后進入 A 在行末進入
o 在光標所在行的下一行行首進入 O 在光標所在行的上一行行首進入
cw 修改一個單詞 dw 刪除一個單詞
dd 刪除一行 u 撤銷上一次操作
CTRL+r 重新上一次操作 GG 光標快速回到文件底部
gg 光標快速回到文件首部 4dd 刪除光標所在行開始的4行
p 在光標下一行進行粘貼 yy 復制一行
d$ 刪除光標后面的字符都行末    

鍵盤上的HOME END等快捷鍵依舊起作用

行命令模式

q 退出 q! 強制退出
w 保存 wq 保存並退出
wq! 強制保存並退出 set nonu 不顯示行數
set autoindent 自動對齊 set noautoindent 取消自動對齊
1,5s/mail/gmail/g 全局替換(1-5行) 1,$s/mail/gmail/g 全局替換

sed——文本的過濾和轉換(流處理)

sed – stream editor for filtering and transforming text

sed [-nefr] [動作] 文件

 

  • 動作:

動作說明: [n1[,n2]]function n1, n2 :不見得會存在,一般代表『選擇進行動作的行數』,舉例來說,如果我的動作是需要在 10 到 20 行之間進行的,則是『 10,20[動作行為] 』 ,不設置n1 和 n2 則表示是對整個流進行處理。

  • Function

a :新增, a 的后面可以接字串,而這些字串會在新的一行出現(目前的下一行)~

c :取代, c 的后面可以接字串,這些字串可以取代 n1,n2 之間的行!

d :刪除,因為是刪除啊,所以 d 后面通常不接任何咚咚;

i :插入, i 的后面可以接字串,而這些字串會在新的一行出現(目前的上一行);

p :列印,亦即將某個選擇的數據印出。通常 p 會與參數 sed -n 一起運行~

s :取代,可以直接進行取代的工作哩!通常這個 s 的動作可以搭配正規表示法!例如 1,20s/old/new/g 就是啦! 其中g為全行匹配替換

 

使用示例:

sed


5.系統信息操作
fdisk、df、du——查看系統磁盤空間信息

  • fdisk 命令是root用戶用來查看系統分區情況和修改分區的命令
  • df – report file system disk space usage,報告磁盤使用情況
  • du – estimate file space usage,估計文件空間使用情況

df –h 以人類易懂的方式顯示磁盤使用情況

du ./ -h以人類易懂的方式顯示當前路徑下的文件大小情況(明細)

du ./ -sh以人類易懂的方式匯總當前路徑下的文件大小情況

http://www.cnblogs.com/peida/archive/2012/12/07/2806483.html

http://www.cnblogs.com/peida/archive/2012/12/10/2810755.html

使用示例:

lscpu——查看系統cpu配置情況

lscpu – display information about the CPU architecture

使用示例:

free——查看系統內存使用情況

Display amount of free and used memory in the system, 顯示系統中的中內存和使用的內存。

使用示例:

top——查看系統實時運行狀態

有時我們很關心系統正在運行什么程序以及系統現在的存儲內存消耗等,這時就需要top命令來實時監測系統信息。首先來看下top命令的界面,也就是系統的一些狀態信息:

top

任務區域中每列的具體含義:

PID — 進程id

USER — 進程所有者

PR — 進程優先級

NI — nice值。負值表示高優先級,正值表示低優先級

VIRT — 進程使用的虛擬內存總量,單位kb。VIRT=SWAP+RES

RES — 進程使用的、未被換出的物理內存大小,單位kb。RES=CODE+DATA

SHR — 共享內存大小,單位kb

S — 進程狀態。D=不可中斷的睡眠狀態 R=運行 S=睡眠 T=跟蹤/停止 Z=僵屍進程

%CPU — 上次更新到現在的CPU時間占用百分比

%MEM — 進程使用的物理內存百分比

TIME+ — 進程使用的CPU時間總計,單位1/100秒

COMMAND — 進程名稱(命令名/命令行)

 

top命令運行后的相關指令:

針對top命令掌握常用的幾個指令即可,如b,c,1等,更多信息請看下面的這篇博客:http://www.cnblogs.com/peida/archive/2012/12/24/2831353.html
ps——查看當前運行程序信息

ps – report a snapshot of the current processes. 報告當前進程的快照。ps命令是Process Status的縮寫。

ps [options]

使用示例:

kill——殺掉某個進程

有時需要終止一些錯誤程序的運行就需要利用到kill命令,看其單詞意思就知道它的功能。

格式:

kill [ -s signal | -p ] [ -a ] pid …

kill -l [ signal ]

使用示例:

date、cal——查看當前系統時間與日歷

date和cal命令平時使用的也不是很多,但有時可以用來計算程序運行花了多長時間,這里簡單介紹下:

date – print or set the system date and time

cal – displays a calendar

 

date [參數]… [+格式]

cal [-smjy13] [[[day] month] year]

 

詳細內容可參考下面的博客:

http://www.cnblogs.com/peida/archive/2012/12/13/2815687.html

http://www.cnblogs.com/peida/archive/2012/12/14/2817473.html

 

使用示例:

bc——系統自帶簡易計算器

bc是一個很實用的命令,簡易的計算器程序。

bc – An arbitrary precision calculator language

用法:bc [ -hlwsqv ] [long-options] [ file … ]

運算符: + – / * % ^

調用標准數學庫:s(x)、c(x)、a(x)、l(x)、e(x) 三角函數 指數函數等。

設置結果保留位數:啟動bc后, 鍵入scale=4回車 設置4位小數點,

退出bc:quit

使用示例:

ifconfig、ping、route——查看系統網絡信息

這些命令主要是用來查看系統的網絡信息,一般是系統管理員需要掌握的,這里簡單了解下:

  • ifconfig – configure a network interface
  • ping, ping6 – send ICMP ECHO_REQUEST to network hosts
  • route – show / manipulate the IP routing table

使用示例:

wget——從網上下載數據

有人可能會問如何在Linux上從網絡上下載一下文件什么的呢,Linux下有很多這樣的命令,這里介紹下常用的wget命令。這里大家掌握了這個命令后,就不用在windows下下載,再從windows上傳到服務器 這么麻煩了。比如后面做RNA-seq分析需要用到的tophat軟件,其下載地址為 http://ccb.jhu.edu/software/tophat/downloads/tophat-2.0.14.Linux_x86_64.tar.gz,那么如何直接下載到服務器呢?

使用示例:

bg、fg、jobs——讓程序前后台切換運行

  • 有時候某個命令的運行時間過長,我們想讓這個程序在后台運行,同時將標准輸出標准錯誤輸出重定向到文件,我們就可以利用前台的操作窗口進行其它操作,這時就需要將前台運行的程序切換到后台運行(好比把windows上播放視頻的程序從桌面的最上面窗口縮小到后台運行,我們可以在桌面上運行其它程序,比如編輯word等。)(bg 等同於在程序最后面添加 后回車)
  • 有時候又想看看后台到底有多少程序在運行呢?(jobs
  • 有時候又想把后台運行的程序切換到前台運行,實時觀察運行狀態。(fg

  • bg:

回車運行某個程序
[Ctrl + z]
參看 stopped前面的 job id, 如 1 2 3等

bg job-id : #[bg 1 回車]

  • jobs:

jobs 查看當前被推至后台運行的程序

  • fg:

fg job-id # [fg 1 回車]    將job id 為1 的后台程序切換至前台運行

使用示例:

bg1

 

bg2
which——查看命令的位置

which命令是用來查看某個命令的具體位置是在哪里,比如pwd命令其實是位於/bin/pwd。
使用方法:which [參數] 命令,這簡單介紹下-a參數,即列舉出所有符合條件的命令的位置,因為有可能系統有多個同命令的命令,只是所在目錄不同,后面會在環境變量中介紹。

who、w——顯示誰在登陸、在干什么
who – show who is logged on
w – Show who is logged on and what they are doing.
這個命令用的也不是很多,如果你關系系統的運行情況則可以使用該命令查看下。

使用示例:

 

history——查看歷史命令

在Linux中可以通過上下鍵來一條條地翻閱歷史命令,history看名稱我就可以猜到它是用於查看歷史記錄的,可以顯示指定條數的歷史命令,首先來看下常用的幾個參數:

例子:

大家可以結合后面講到的管道操作符 和 grep等命令來在history結果中搜索想要的歷史命令。

man——查看命令函數等幫助文檔

man – format and display the on-line manual pages, 主要是用來顯示一些命令和函數等的幫助文檔。

man [參數] name

使用示例:

 

 

all

6. 重要備注

alias——命令重命名
alias 為系統內置命令,用來簡化負責的操作或者組合,依個人習慣不同,別名可以自己定。
比如,我們經常要利用ls -lh命令來查看文件及目錄的一些情況,但是每次都這么輸入就很麻煩,那有沒有一個簡單的辦法來解決這個問題呢? alias就行:

|——管道操作符

管道操作符 | ,道是Linux中很重要的一種通信方式, 是把一個程序的輸出直接連接到另一個程序的輸入用於串聯一系列的操作,比如:

.bashrc——環境變量設置

環境變量——讓它知道,別讓它來猜

  • 系統環境變量就是系統中一些約定俗稱的變量,系統通過這些變量的值來搜索一些東西,好比冰箱(Fridge)是一個環境變量,里面的物品是一些元素(Element),我們可以根據自己的需求在冰箱中去搜索自己想要的東西。
  • Linux 內置環境變量:

 

 

  • 通過echo命令來顯示變量內容

 

 

  • 通過export命令來設置臨時變量(一般是在本次登陸有效,關閉連接后該變量消失)

 

 

而每個用戶主目錄下都有一個.bashrc隱藏文件(不同Linux發行版其文件名稱可能不一樣)用來記錄用戶的環境變量配置(不止環境變量配置),當用戶登錄遠程服務器時,系統會自動通過執行這個文件來完成會話的一些基本環境配置(也可以利用source ~/.bashrc 來臨時更新環境配置)。所以可以將export命令寫入.bashrc文件來保證每次登陸時都能設置變量。
~/.bashrc文件中存放的其實就是一些shell命令
export命令用來設置相應的環境變量, #開頭的行表示是注釋信息
重新登錄或者執行 source ~/.bashrc來應用修改后的配置

screen、nohup——程序不中斷運行
程序持續運行——別讓我被kill

  • 很多朋友可能在實際的linux服務器管理工作中,經常會為一些長時間運行的任務而頭疼,當有事離開我們關掉了連接終端斷開SSH,剛才運行着的程序也自動被中斷。下面就介紹下如何讓我們的程序在斷開SSH后繼續在后行運行的方法。
  • 問題1:為什么ssh一關閉,程序就不再運行了?

元凶:SIGHUP 信號
答案:關掉窗口/斷開連接會使得正在運行的程序死掉

  • 問題2:使用后台運行命令&  能否將程序擺脫ssh進程組控制呢  也就是ssh關閉,后台程序繼續運行?

我們做一個試驗:

利用ctrl+d 注銷以后 再進入系統  會不會看見這個命令再運行?
答案是  :命令被中止了!!


那么怎么去解決上述問題呢?
一、使用nohup讓程序在后台繼續運行
常用命令格式:
nohup ./home/nginx.sh &
注:如果運行成功剛默認會將標准輸出重定向到當前目錄的nohup.out文件中,查看此文件,可以了解運行的進度;
也可以重定向標准輸出標准錯誤輸出:
nohup somepragram [options] >log 2>errlog &

二、使用screen讓程序在后台執行

screen是一個可以在多個進程之間多路利用(復用)一個物理終端的窗口管理器。screen中有會話的概念,用戶可以在一個screen會話中創建多個screen窗口,在每一個screen窗口中就像操作一個真實的telnet/SSH連接窗口那樣

  • 創建screen會話

screen -S wordname #創建一個名為wordname的會話

  • 暫時離開,保留screen會話中的任務或程序

當需要臨時離開時(會話中的程序不會關閉,仍在運行)可以用快捷鍵Ctrl+a+d(即按住Ctrl,依次再按a,d)

  • 列出當前的會話列表

screen ls

  • 恢復screen會話

當回來時可以再執行執行:

screen -r wordname  # 或者screen -r screen-id
即可恢復到離開前創建的會話的工作界面。

  • 關閉screen會話

執行:exit  #或者ctrl + D

  • 遠程演示

首先在服務器上執行screen -S test創建一個screen的會話,觀眾可以鏈接到 遠程服務器執行screen -x test 這樣觀眾的屏幕上就會出現和演示者同步的內容。


7. 小結

通過上面一系列的生物信息學常用Linux操作命令的講解,相信大家對生物信息學的基本分析環境有了一個認識,大家也能體會將命令分門別類的學習效果更加明顯。大家在學習的過程中也要逐步學會各種命令間的共同之處,這樣可以舉一反三,觸類旁通。關鍵的一點還是要多加練習,慢慢領會各種命令的功能與使用訣竅。

 

From:http://www.iwhgao.com/2-4-linux%E5%B8%B8%E7%94%A8%E6%93%8D%E4%BD%9C%E5%91%BD%E4%BB%A4/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM