1. 程式人生 > >Linux下的有用命令

Linux下的有用命令

在之前的部落格《Linux下常用命令與使用技巧》中,介紹了Linux的常用命令,在今天的部落格中,給大家介紹其他的有用命令。

1.文字轉換命令

在Linux下工作,我們不可避免地要和檔案格式做鬥爭,相信大家也深刻地體會過格式的複雜性。今天給大家介紹幾個在實際中經常用到的和格式相關的命令。

1.1 export命令

在linux命令列中輸入漢字的時候有時候會顯示亂碼,這時我們就需要設定一下系統的編碼方式。可以先用locale命令檢視當前的編碼方式,如果不是zh_CN.utf8,我們就可以通過export命令進行設定,設定命令如下:
export LC_ALL=zh_CN.utf-8
通過上面的命令就可以將系統格式設定成utf8,當然也可以設定成其他格式。但是utf8是Linux下預設的編碼方式,建議設定成utf8。

1.2 convmv命令

有時候,我們在將windows下的檔案拷貝到linux下的時候,會出現檔名亂碼。這是因為windows下預設的編碼方式是gbk,而linux下是utf8,編碼方式不一致導致gbk的檔名無法正常顯示。這時可以通過convmv命令進行檔名的轉碼,常用選項如下:

選項 說明
-f enc 原檔名的編碼方式
-t enc 新的編碼方式
-r 遞迴處理整個目錄下的所有檔案
-notest 實際做轉碼,否則只是列出哪些檔案需要轉碼

例如我們將windows某個目錄下的所有檔案拷貝到linux下,然後對其進行轉碼:
convmv –f gbk –t utf8 –notest –r dir/*

1.3 iconv命令

很多情況下,我們並不只有檔名是gbk編碼,檔案內容也是gbk的,這時我們就需要對檔案內容進行轉碼,這個可以通過iconv命令實現,常用選項如下:

選項 說明
-f,–from-code=名稱 原始文字編碼
-t,–to-code=名稱 輸出編碼
-o,–output=FILE 輸出檔案

注意一點,這個命令不會直接修改檔案,如果沒有指定輸出檔案會輸出到命令列中,一般會重定向到新檔案中:
iconv –f gbk –t utf8 input_file > output_file

1.4 dos2unix/unix2dos命令

有時候,雖然windows下的檔案是utf8編碼,但是放到linux下還是有點問題。DOS下的文字檔案是以\r\n作為斷行標誌的,而linux下的文字檔案是以\n作為斷行標誌的,用vim開啟時有時會在行尾顯示^M符號。為了去除這個符號,我們可以利用dos2unix命令。在使用的過程中,在該命令後面直接新增要轉換的一個或多個檔案即可,該命令就會直接在原始檔裡進行轉換。如果不想覆蓋原始檔,可以利用-n選項。unix2dos命令的使用方式與dos2unix命令的類似。

2. 程序相關

在Linux下,有時我們想知道某個程序的id,我們可以通過pidof獲得。如果一次啟動了多個相同的程序,我們可以通過killall一次性殺掉所有相同的程序。這兩個命令的引數都是程序的名字。

3. 磁碟相關

在linux下工作,我們有時候會出現磁碟滿的情況,可以通過df命令檢視各個盤的剩餘空間,-h可以讓顯示更易懂。
這裡寫圖片描述
除了df命令,還有一個du命令也非常有用。有時我們想統計某個目錄佔用的空間大小,就可以用du命令。不加任何引數的du命令會遞迴列印目錄下所有檔案的大小,我們可以通過引數—max-depth=1來設定只打印給定目錄下可見檔案和目錄的大小,從而避免列印過多。-h也可以讓顯示更易懂。

4. 檔案傳輸

在linux下,我們可以通過scp命令實現不同機器之間的檔案傳輸,既可以從本地傳到遠端,也可以從遠端傳到本地。向遠端傳送檔案的命令格式如下:
scp send_file [email protected]:/root
但是有時要傳遞的檔案非常大或者檔案個數很多,當scp命令沒執行完斷掉之後下次再進行scp會重新執行全部的複製,這就會導致做了很多無用功。避免此種情況的方法是用rsync命令,rsync也可以實現檔案傳輸,同時針對已經發送的檔案不再重複傳送。

5. 檔案操作

5.1 split命令

當一個檔案很大時,可能需要將檔案進行切分生成多個小檔案,split命令可以實現這個功能。它既可以用來處理文字檔案,也可以用來處理二進位制檔案。既可以按照行數切分,也可以按照位元組數切分。
這個命令和shuf命令組合使用就可以達到隨機打亂文字加切割的目的。

5.2 basename和dirname命令

這兩個命令的作用是對一個包含完整路徑的檔名進行切分,切分出該檔名的不包含路徑的檔名和單純的路徑名。例如,basename /home/work/test.wav會返回test.wav,dirname /home/work/test.wav會返回/home/work。這個命令在指令碼中用的比較多。

5.3 單純檔名和包含路徑檔名

用ls命令可以生成一個目錄下所有檔案的檔名,但是檔名不包含路徑,如果想讓檔名包含路徑,則可以用find命令實現。例如想獲得/home/work/下所有wav檔案的檔名,則可以利用下面的命令:
find /home/work –name *.wav >list
生成的檔名列表可以用來遍歷這些檔案。

5.4 xxd命令

xxd命令為給定的標準輸入或者檔案做一次十六進位制的輸出,它也可以將十六進位制輸出轉換為原來的二進位制格式。這個命令有什麼用呢?舉個例子。utf8檔案包含兩種不同的格式:無bom和有bom。用常規的編輯器開啟可能無法區分,但是利用這個命令就可以。用xxd檢視檔案的開頭是否包含EF BB BF這幾個位元組即可。

6. 程式碼除錯

在除錯安卓程式碼的時候,經常會遇到段錯誤,提示“Fatal signal 11 (SIGSEGV), code 2, fault addr 0x7faa993968 in tid 27841”,遇到這種錯誤會讓人頭大。有一種除錯方法可以比較容易定位出錯的位置。在上面提示中給出了一個地址,我們可以用arm-linux-androideabi-addr2line命令將地址反編譯成出錯的函式和行數。

相關推薦

Linux常用命令之sed學習總結

linux sed sed命令 正則表達式 sed總結 Sed功能說明:Sed是linux下一個強大的文本文件處理工具,通過對文件增加、刪除、查找、查詢操作,配合正則表達式以實現工作中的各種需求。同時也是一名運維人員必須掌握的核心技能。---------------------------

linuxcat命令詳解

forever ron localhost root sta testing 幫助 查看 一點 1、cat 顯示文件連接文件內容的工具; cat 是一個文本文件查看和連接工具。查看一個文件的內容,用cat比較簡單,就是cat 後面直接接文件名。 比如: de>[[

linuxalias命令具體解釋

margin san 登錄 white gre con 變量 每次 ext linux下alias命令具體解釋 用途說明 設置命令的別名。在linux系統中假設命令太長又不符合用戶的習慣,那麽我們能夠為它指定一個別名。盡管能夠為命令建立“鏈接” 解決長文件名

linuxyum命令出現Loaded plugins: fastestmirror

tle enable yum test enabled net post sdn http linux下yum命令出現Loaded plugins: fastestmirror yum install的時候提示:Loaded plugins: fastestmirror

linuxwget命令,支持斷點續傳,ftp、http、https等協議

strong 工作 等待 命名 wget命令 source cmd itl 操作 轉載的地址:http:[email protected]/* *//blog/static/32097310201171833420905/ 今天操作遠端機器的時候發現少一個安裝

LinuxDiff命令

普通 命令 圖形化 標準輸入 們的 sina 工具 文件 內容 一般正常比較兩個文件用vimdiff,算是直接進入vim界面,如果比較兩個文件夾下面的文件,可以用diff,註意,這裏只會比較文件夾下面的同名文件,他會列出不一樣的點. 參考Linux下Diff命令使用方法 d

Linux基礎命令(一)

linux find 實戰操作 每天積累知識就會有成長,只要付出在不久的將來一定會有收獲,可能回來的晚點,但是一定要貴在堅持,今天第一次發博客,如不出意外情況我每天都會發的,這個是我總結的find命令的一些實戰,希望我總結的知識點在今後會對大家有幫助。find -name "*a" #以a

Linuxfind命令的使用

find為什麽要使用find命令? Linux系統中有著成千上萬的文件,如果你想要找到自己想要的文件,一款查找軟件是必不可少的,而locate是根據其生成的數據庫進行查找,雖然速度會略快,但非實時查找,有些新的文件或目錄是匹配不到的,而且locate是模糊匹配,而find命令為實時查找,且為精確匹配,如

linuxvim命令詳解

但是 左移 功能 命令 file lips 查找替換 括號匹配 所想 高級一些的編輯器,都會包含宏功能,vim當然不能缺少了,在vim中使用宏是非常方便的::qx 開始記錄宏,並將結果存入寄存器xq 退出記錄模式@x 播放記錄在x寄存器中的宏命令稍微

【轉載】Linuxchkconfig命令詳解

name scrip 再次 http 缺省 重新 禁止 level pool chkconfig命令主要用來更新(啟動或停止)和查詢系統服務的運行級信息。謹記chkconfig不是立即自動禁止或激活一個服務,它只是簡單的改變了符號連接。 使用語法:chkconfig [--

linux 命令

print code col top clas class span log lin 1 find / -name 文件名 -type d 查找目錄 2 3 find / -name 文件名 -print 查找文件名 1 service 程序

linuxfile命令使用技巧

file命令使用1. windows以不同的擴展名來區分不同的文件,例如:.exe .png等2. linux下對擴展名沒有明確的要求有時就會遇到各種坑,當我們不知道是一個壓縮文件,用一些命令查看的時候,會出現各種亂碼[[email protected] ~]# cat text |he

linuxiptables命令的應用與詳解

iptables 一、iptables的規則表和鏈。 表(tables)提供特定的功能,iptables內置了4個表,即filter表、nat表、mangle表和raw表,分別用於實現包過濾,網絡地址轉換、包重構(修改)和數據跟蹤處理。 鏈(chains)是數據包傳播的路徑,每一條鏈其實就是眾多規則中的

Linux命令之clear和reset

linux clear reset 清除屏幕 1) clear : 刷新屏幕 保留歷史命令記錄 說明:此命令本質上是讓終端向後翻一頁 當向上滾動鼠標時,還是可以看到之前的命令操作記錄 2) reset : 重新初始化屏幕,清除歷史命令操作記錄本文出自 “梵高說我腦子有病” 博客,謝絕

Linux常用命令總結

命令註:本文檔只記錄最常用的命令以及命令下的參數,更多的命令請參考linux文檔或使用命令help、man、info 進行對應查詢常用文件目錄操作指令ls 參數 文件 顯示文件或目錄(文件為空時,代表顯示當前目錄) -l 列出文件詳細信息l(list)

linuxexpect命令實現批量ssh免密

輸入 left 防止 輸出 one 時間 line jdb eof 有時候我們需要批量發送ssh命令給服務器,但是有可能有些服務器是新加入的,還沒有配置ssh免密,這個時候就會提示我們輸入yes/no 或者password等,expect腳本命令就是用於在提示這些的時候

linuxyum命令出現Loaded plugins: fastestmirror Determining fastest mirrors

找到 plugin mir con test lin fast load min 今天yum install的時候出問題了,找了半天才找到一個可行的解決辦法 fastestmirror是yum的一個加速插件,這裏是插件提示信息是插件不能用了。 不能用就先別用唄,禁用掉,先y

linuxhistory命令顯示歷史指令記錄的使用方法

語法 tex 系統 linux下 命令 過程 相關 不堪 中間 linux下history命令顯示歷史指令記錄的使用方法 History命令主要用於顯示歷史指令記錄內容, 下達歷史紀錄中的指令 。1>History命令語法: [test@li

Linuxrar 命令壓縮和解壓詳解

保持 介紹 詳細 註意 壓縮 rar 縮進 command 解壓縮 例1:添加文件或目錄到壓縮檔案中,使用a命令。例如把文件files1添加到abc.rar中,使用a或m命令,a命令把file1文件添加到abc.rar檔案中保持原有的file1文件不變,m命令移動file1

LinuxShell命令的輸出信息同時顯示在屏幕和保存到日誌文件中

blog inux -a 輸出 輸出內容 使用 col 文件中 信息 #直接覆蓋日誌文件 ls -l | tee ./t.log #將輸出內容附加到日誌文件 ls -l | tee -a ./t.log 使用的是tee命令Linux下She