常見shell命令分享

2021-07-02 20:51:35 字數 4488 閱讀 7480

1. 變數名的賦值符號前後不能留有空格

2. vi /proc/meminfo 檢視當前虛擬記憶體的狀態

3. ipcs 命令用來檢視系統上的當前共享記憶體頁面

4. bash shell 啟動會自動處理 ~/.bashrc; /etc/bashrc

修改 vim ~/.bashrc

重啟 source ~/.bash_profile

5. mount

mount -t type device directory

umount directory

ex:

mount -t ext4 /dev/mmcblk0p26 /opt/hejian

umount /opt/hejian

6. df 檢視已掛載磁碟的使用情況

du 顯示指定目錄下的磁碟使用情況

ex:du -sh *

du -s *

du -sch *

su -s * | sort -n

su -s * | sort -nr

7. grep

grep -n t file  在file中搜尋t字串,顯示所在的行號

grep -c t file  顯示有多少行匹配

grep -e t1 -e t2 file 多個匹配,搜尋包含t1或t2的字串

8.printenv  檢視全域性環境變數

set  顯示特定程序的所有環境變數,包括區域性環境變數

echo $v  顯示環境變數v的值

設定區域性環境變數: test='hejian'

設定全域性環境變數: export test

刪除環境變數: unset test

定義可變陣列: test=(one two three four)

顯示陣列中某一項: echo $     結果為three

顯示陣列所有: echo $ 結果為one two three four

登入shell時會從4個不同的啟動檔案讀取命令: /etc/profile -> $home/.bash_profile或$home/.bash_login或$home/.profile

在$home/.bashrc裡面新增alias資訊,可以使用自定義的命令別名

9. /etc/passwd 檢視使用者密碼相關資訊

/etc/shadow 管理密碼

建立賬戶rocket(使用指定的shell): sudo useradd rocket -s /bin/bash 或 adduser rocket(提倡使用)

為賬戶rocket新增sudo許可權:在root賬戶下的/etc/sudoers中新增 "rocket  all=(all:all) all"

刪除賬戶rocket: sudo userdel rocket

修改賬戶名: usermod -l newusername oldusername

建立新組: group add groupname

chmod: 修改檔案許可權 ugo(u代表使用者,g代表組,o代表other) chmod 600 file 等價於 chmod u+rw file

chown:改變所屬關係  chown user file,將file的屬主設定為user; chown .group file,將file的屬組設定為group;

chown user.group file,將file的屬主設定為user,屬組設定為group。

10. dpkg 命令是基於debian系pms工具的核心,包含在pms中的其他工具有: apt-get, apt-cache, aptitude

aptitude show pkg_name : 檢視pkg_name的詳細情況

dpkg -l pkg_name : 顯示所有和pkg_name關聯的檔案列表

dpkg --search file_name : 尋找file_name屬於哪個pkg_name

aptitude search key_word : 搜尋所有包含kew_word的pkg_name,無需萬用字元(結果中前面有i的表示已經安裝,有p的表示為安裝)

aptitude safe-upgrade : 更新軟體庫中所有軟體 (aptitude full-upgrade, aptitude dist-upgrade 不保守)

aptitude remove pkg_name : 只刪除包pkg_name

aptitude purge pkg_name : 刪除包pkg_name和相關的資料和配置檔案

aptitude預設的軟體庫的位置儲存在 /etc/apt/sources.list

11. vim

(1)移動游標

h, 左移乙個字元

j, 下移一行

k, 上移一行

l, 右移一行

ctrl+f, 下翻一屏資料

ctrl+b, 上翻一屏資料

g, 移到緩衝區的最後一行

num g, 移到緩衝區的第num行

gg, 移到緩衝區的第一行

(2) 編輯資料

x, 刪除當前游標所在位置的字元

dd, 刪除當前游標所在行

dw, 刪除當前游標所在位置的單詞

d$, 刪除當前游標所在位置至行尾的內容

j, 刪除當前游標所在行尾的換行符(拼接行)

u, 撤銷前乙個編輯命令

a, 在當前游標後追加資料

a, 在當前游標所在行行尾追加資料

r char, 用char替換游標所在位置的字元

r text, 用text覆蓋當前游標往後的資料,直至按下esc鍵

(3) 複製和貼上

yw, 複製單詞

y$, 複製當前游標位置到行尾

p, 貼上所複製的內容到游標位置

ctrl+v: 切換到可視模式

移動游標到開始複製的位置,按下v鍵,移動游標顯示所要複製的位置(可以換行),按y鍵確認複製內容, 再到你需要貼上的位置按p鍵

(4) 查詢和替換

:s/old/new/   替換游標所在行的所有old字串到new

:n,ms/old/new/g  替換行號n和m之間的所有old

:%s/old/new/g   替換整個檔案中的old

:%s/old/new/gc  替換整個檔案中的old,但在每次出現時提示

12. ubuntu中出現錯誤:  syntax error: bad for loop variable

解決辦法 : sudo dpkg-reconfigure dash, 在選擇項中選no

原因: 從 ubuntu 6.10 開始,ubuntu 就將先前預設的bash shell 更換成了dash shell;其表現為 /bin/sh 鏈結倒了

/bin/dash而不是傳統的/bin/bash。

13. wc 命令

wc -c filename:顯示乙個檔案的位元組數

wc -m filename:顯示乙個檔案的字元數

wc -l filename:顯示乙個檔案的行數

wc -l filename:顯示乙個檔案中的最長行的長度

wc -w filename:顯示乙個檔案的字數

find dir -name "*.cpp" | wc -l:顯示目錄dir下cpp檔案的個數

14.ps -aux 列出當前所有的正在記憶體中的程式

pstree -a  列出目前系統上面所有的程式樹的相關性

15. samba安裝

sudo apt-get install samba / sudo apt-get install smbfs

sudo apt-get install system-config-samba

修改samba檔案: /etc/samba/smb.conf

smbpasswd -a username  用於新增samba使用者  (username指conf中出現的使用者名稱)

samba重啟: sudo service smbd restart / sudo restart smbd (ubuntu 10.04) / nmbd restart

修改smb的conf檔案  /etc/samba/smb.conf

16. ssh-keygen

生成一顆key值

17. 檢視pc多少位

sudo uname --m

如果顯示i686,你安裝了32位作業系統

如果顯示 x86_64,你安裝了64位作業系統

18. 指定 ip 位址share (mount)

19. 顯示***.so檔案裡的所有函式

readelf -s ***.so

20. sed

21. 檢視 cpu 資訊

cat /proc/cpuinfo

檢視硬體:

lspci

22. 檢視依賴庫

/lib/ld-linux.so.3 --list

23. 檢視ubuntu版本

cat /etc/issue

24. 統計行數

wc -l `find . -name '*.h'`;

wc -l `find . -name '*.c'`

Linux常見Shell命令

linux中一切皆檔案!任何乙個作業系統,想要將其掌握,必須從檔案操作開始。因此必須掌握的命令如下 1 檢視路徑 pwd 2 檢視檔案 ls 3 目錄切換 cd 4 新建檔案 touch mkdir 5 刪除檔案 rmdir rm 6 移動檔案 mv 7 檢視內容 cat more less 8 查...

shell分享之mkdir命令

常用選項 目錄存在時不報錯 此時對目錄沒有影響 存在則建立mkdir p,如果有需要建立父目錄時建立父目錄 建立目錄時指定目錄的許可權mkdir m 示例 建立多級目錄 mkdir p a b c d 建立a目錄,並在a目錄下建立b目錄,在b目錄下建立c目錄,在c目錄下建立d目錄 建立多級多個目錄 ...

HBase 常見Shell命令總結

用hbase的時候,老是忘記一些shell命令,每次都需要上網查,好麻煩,乾脆就把常見的shell都總結一下吧。進入命令列介面相關命令 1 進入shell命令列介面 hbase shell表結構相關命令 2 建立表結構,這裡建立test表,包含fcol1,fcol2 create test fcol...