Linux常用指令

簡單指令

符號|指令 作用
$ 表示你是一般用戶(root)
# 表示你是超級用戶
Ctrl + Alt + Shift + (f1~f6) 切換到字符控制臺
Alt + f7 切換回圖形界面
ps aux 查看進(jìn)程信息
kill -9 進(jìn)程ID 停止進(jìn)程
Ctrl + a (shell)回到命令的開始
Ctrl + e (shell)跑到命令末尾
Ctrl + d (shell)刪除光標(biāo)后的字符
ls -a 列出隱藏文件,文件夾中以"."開頭的均為隱藏文件
ls -l 列出文件的詳細(xì)信息
ls -R 連同子目錄中的內(nèi)容一起列出

用ls -l 命令顯示的信息中,開頭是由10個字符構(gòu)成的字符串,其中第一個字符表示文件類型,它可以是下述類型之一:

符號 文件類型
- 普通文件
d 目錄
l 符號鏈接(快捷方式)
b 塊設(shè)備文件(U盤)
c 字符設(shè)備文件(鼠標(biāo),鍵盤)
s socket文件,網(wǎng)絡(luò)套接字
p 管道

后面9個字符表示文件的訪問權(quán)限,分為3組,每組3位。第一組表示文件屬主 的權(quán)限,第二組表示同組用戶的權(quán)限,第三組表示其他用戶的權(quán)限。每一組的三個字符分別表示對文件的讀(r)、寫(w)和執(zhí)行(x)權(quán)限。

mkdir -p 可以連同父目錄一起創(chuàng)建

mkdir -p /aa/bb/cc

touch 命令
如果文件已經(jīng)存在,則把訪問和修改時間都修改為目前的時間。

為文件創(chuàng)建鏈接

ln hello world_h

創(chuàng)建軟鏈接

ln -s hello world_s

利用wc指令可以計算文件的byte數(shù)、字?jǐn)?shù)或是列數(shù)。
wc -c 只顯示bytes數(shù);
wc -l 只顯示列數(shù);
wc -w 只顯示字?jǐn)?shù)

顯示你的盤符已使用空間

df --block-size=GB
df --block-size=MB

根據(jù)文件名查找文件

符號|指令 作用
find ./* -name "firefox" 在當(dāng)前目錄下查找文件
find / -name "firefox" 在根目錄下查找文件
find / -name "firefox" > abcd 可以令輸出重定向到指定文件
Ctrl + a (shell)回到命令的開始
Ctrl + e (shell)跑到命令末尾
Ctrl + d (shell)刪除光標(biāo)后的字符

根據(jù)內(nèi)容查找文件

grep "查找內(nèi)容" ./* -R
find默認(rèn)使用遞歸方式查找文件,但是grep需要人為指定遞歸方式,而且grep無法查找隱藏文件的內(nèi)容。./*表示在當(dāng)前路徑下,查找所有的文件。

打包文件

對tar文件
tar zcvf test.tar.gz test

-- zcvf:
-- z表示壓縮格式,使用gZip壓縮算法來壓縮文件
-- c表示creat
-- vf表示索引信息

  • 解包文件
tar zxvf test.tar.gz

-- x表示解包

  • 解包到指定目錄
tar zxvf test.tar.gz -C 指定的目錄
  • 如果是一般的打包文件,就不使用z參數(shù)
tar cvf test.tar test
tar zvf test.tar
tar zvf test.tar -C 指定到的目錄
  • 對.bz2格式的壓縮包,使用j參數(shù)
tar jxvf test.tar.bz2 test
tar jxvf test.tar.bz2
tar jxvf test.tar.bz2 -C 指定的目錄
對rar文件

打包:把dir壓縮成newdir.rar

rar a -r newdir dir

解包:把newdir.rar 解壓縮到當(dāng)前目錄

unrar x newdir.rar
對zip文件

打包:

zip -r dir.zip dir

解包:

unzip dir.zip

類Unix系統(tǒng)目錄結(jié)構(gòu)

ubuntu沒有盤符這個概念,只有一個根目錄/,所有的文件都在根目錄下面。根目錄下面的文件夾存放的內(nèi)容簡介:

文件名 內(nèi)容
bin 系統(tǒng)可執(zhí)行命令
boot 內(nèi)核和啟動程序,所有和啟動相關(guān)的文件都保存在這里
grub 引導(dǎo)器相關(guān)文件
dev 設(shè)備文件
etc 系統(tǒng)軟件的啟動和配置文件,系統(tǒng)在啟動過程中需要讀取的文件都在這個目錄。如LILO參數(shù)、用戶賬戶和密碼
home 用戶的主目錄。下面是用戶自己定義的用戶名的文件夾
lib 系統(tǒng)程序庫文件,這個目錄里存放著系統(tǒng)最基本的動態(tài)鏈接共享庫,類似于Windows下的system32目錄,幾乎所有的應(yīng)用程序都需要用到這些共享庫
media 掛載媒體設(shè)備,如光驅(qū)、U盤等
mnt 該目錄是讓用戶臨時掛載別的文件系統(tǒng),如掛載Windows下的每個分區(qū),ubuntu默認(rèn)還是掛載在/media目錄
opt 可選的應(yīng)用軟件包(很少)
proc 該目錄是系統(tǒng)內(nèi)存的映射,我們可以直接訪問這個目錄來獲取系統(tǒng)信息。也就是說,這個目錄的內(nèi)容不在硬盤而是在內(nèi)存里
sbin 管理員系統(tǒng)程序
selinux
srv
sys /udev用到的設(shè)備目錄樹,/sys反映你機(jī)器當(dāng)前所接的設(shè)備
tmp 臨時文件夾
usr 這個是最龐大的目錄,我們要用到的很多應(yīng)用程序和文件幾乎都存放在這個目錄下
bin 應(yīng)用程序
game 游戲程序
include
lib 應(yīng)用程序的庫文件
lib64
local 包含用戶程序等
sbin 管理員應(yīng)用程序

通過apt-get安裝的軟件
清理無用的包
sudo apt-get clean && sudo apt-get autoclean
卸載軟件和配置
sudo apt-get remove *** --purge

deb包安裝
sudo dpkg -i ***.deb
刪除軟件包命令
sudo dpkg -r ***.deb
連同配置文件一起刪除命令
sudo dpkg -r --purge ***.deb

當(dāng)U盤插入電腦(Ubuntu是直接掛載在media下面的,這里就當(dāng)是一個積累了,可能其他的類Unix系統(tǒng)會用上這個指令)
-0) sudo fdisk -l
然后看“孤立”的一塊存儲區(qū),它就是U盤的路徑
-1) sudo mount /dev/*** /mnt
把外設(shè)U盤掛載到/mnt下面,然后就可以進(jìn)入mnt下面,就發(fā)現(xiàn)里面全是U盤的內(nèi)容,在該路徑下讀寫文件的改變會直接作用于U盤。
-2) sudo umount /mnt
這樣就可以卸載外設(shè)

拷貝文件(除了cp之外還可以用dd)
dd if=輸入文件名 of=輸出文件名
示例:
(base) vincent@vincent:~/CPURam$ dd if=main.cpp of=mainNew.cpp
36+1 records in
36+1 records out
18925 bytes (19 kB, 18 KiB) copied, 0.000224686 s, 84.2 MB/s
用參數(shù)bs=100M 還可以表示創(chuàng)建的文件大小100MB,=
用參數(shù)count =1表示創(chuàng)建一次
示例:
dd if=/dev/zero of=hello.txt bs=100M count=1
bs = block size,整句話的意思就是我要生成一個100Mb的文件
PS:
-1) /dev/null: 外號叫無底洞,你可以向它輸出任何數(shù)據(jù),它都通吃,并且不會撐著!
-2) /dev/zero: 是一個輸入設(shè)備,你可以用它來初始化文件,從里面讀出來的數(shù)據(jù)都是0。

如果想把一個應(yīng)用程序設(shè)置為輸入名字即可啟動,則需要做以下幾步:
-1)sudo vim /home/用戶名/.bashrc
打開后,在里面找到“export PATH=$PATH:”
在后面追加你的應(yīng)用程序路徑->保存
-2) 打開新的shell,試運行一下

vim里面的指令(查漏補(bǔ)缺)
>> 文本塊右移
<< 文本快左移
{{ 光標(biāo)向上移動一個段落
}} 光標(biāo)向下移動一個段落
gg 光標(biāo)移動到文件開頭
G 光標(biāo)移動到文件結(jié)尾
yy 復(fù)制當(dāng)前行
Ctrl+w+w 在vim中的不同窗口之間切換

vim的配置文件有兩個,路徑分別為:

  1. ~/.vimrc
  2. /etc/vim/vimrc
    其中~/.vimrc的優(yōu)先級高

gcc編譯器選項
gcc -g 選項打開表示包含調(diào)試信息,后面使用gdb的時候可以提供幫助你信息;
gcc -D 編譯時定義宏,注意-D和宏的名字之間沒有空格。這個是用于手動激活代碼中的宏定義;

#ifdef DEBUG
  printf("test");
#endif

在編譯代碼的時候只要加上-DDEBUG就可以手動激活這個宏定義了。

還有兩個工具可以幫助在開發(fā)過程中進(jìn)行調(diào)試:

  1. nm 查看目標(biāo)文件中的符號(全局變量、全局函數(shù)等)
  2. objdump 用于生成反匯l編文件,主要依賴objcopy實現(xiàn),a.out編譯時需要-g,使用時的指令為:
  gcc main.c -g(打開調(diào)試信息) -o a.out
  objdump -dSsx a.out > file

重定向到file里面后,可以看出程序運行時的調(diào)試信息。里面可以看到C代碼,匯編碼,機(jī)器碼以及內(nèi)存使用地址??墒俏疫€是覺得這樣效率不高,因為滾動了幾千行信息之后,我只是為了找到程序出錯的停止點。我還是愿意手動打Log的。所以這個工具應(yīng)該是可以讓程序員可以查看生成得匯編代碼的。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容