Linux shell命令總結大全

2020-12-25 酷扯兒

本文轉載自【微信公眾號:java進階架構師,ID:java_jiagoushi】經微信公眾號授權轉載,如需轉載與原文作者聯繫

前言

Linux shell命令應該算是非常入門的東西,權當給大家做個記錄。但是實際上在使用的時候,會遇到各種各樣的問題,前幾天我在我們的項目上需要做一個功能,根據進程名字殺死這個進程,下面是過程

1、我們正常需要的操作是

$ps |grep xxx $kill -9 xx

2、kill命令是常用的,但是用killall命令會更快

$killall -9 xxx

3、令我困擾的是我用的那個沒有killall然後我做了下面的操作

$adb shell ps |grep speech |awk '{print $2}' > 1.txt $cat 1.txt |xargs -n1 adb shell kill -9

我用這個的原因是用一條指令重定向總是各種問題,正常情況下用這條就可以了

$adb shell ps |grep speech |awk '{print $2}'|xargs -n1 kill -9

正文

關機/重啟

關機(必須用root用戶)shutdown -h now ## 立刻關機shutdown -h +10 ## 10分鐘以後關機shutdown -h 12:00:00 ##12點整的時候關機halt # 等於立刻關機重啟shutdown -r nowreboot # 等於立刻重啟

echo

root@ubuntu:~# a="hello,world"root@ubuntu:~# echo aaroot@ubuntu:~# echo &a[1] 3091a: command not found[1]+ Done echoroot@ubuntu:~# echo $ahello,worldroot@ubuntu:~#

vim文本編輯器

最基本用法vi somefile.41 首先會進入「一般模式」,此模式只接受各種快捷鍵,不能編輯文件內容2 按i鍵,就會從一般模式進入編輯模式,此模式下,敲入的都是文件內容3 編輯完成之後,按Esc鍵退出編輯模式,回到一般模式;4 再按:,進入「底行命令模式」,輸入wq命令,回車即可常用快捷鍵一些有用的快捷鍵(在一般模式下使用):a 在光標後一位開始插入A 在該行的最後插入I 在該行的最前面插入gg 直接跳到文件的首行G 直接跳到文件的末行dd 刪除一行3dd 刪除3行yy 複製一行3yy 複製3行p 粘貼u undov 進入字符選擇模式,選擇完成後,按y複製,按p粘貼ctrl+v 進入塊選擇模式,選擇完成後,按y複製,按p粘貼shift+v 進入行選擇模式,選擇完成後,按y複製,按p粘貼查找並替換1 顯示行號:set nu2 隱藏行號:set nonu3 查找關鍵字:/you ## 效果:查找文件中出現的you,並定位到第一個找到的地方,按n可以定位到下一個匹配位置(按N定位到上一個)4 替換操作:s/sad/bbb 查找光標所在行的第一個sad,替換為bbb:%s/sad/bbb 查找文件中所有sad,替換為bbb

拷貝/刪除/移動/更換文件名字

cp somefile.1 /home/hadoop/rm /home/hadoop/somefile.1rm -f /home/hadoop/somefile.1mv /home/hadoop/somefile.1 ../mv a.txt b.txt //把a.txt更名為b.txt

打包壓縮

1、gzip壓縮gzip a.txt2、解壓gunzip a.txt.gzgzip -d a.txt.gz3、bzip2壓縮bzip2 a4、解壓bunzip2 a.bz2bzip2 -d a.bz25、打包:將指定文件或文件夾tar -cvf bak.tar ./aaa將/etc/password追加文件到bak.tar中tar -rvf bak.tar /etc/password6、解壓tar -xvf bak.tar7、打包並壓縮tar -zcvf a.tar.gz aaa/8、解包並解壓縮(重要的事情說三遍!!!)tar -zxvf a.tar.gz解壓到/usr/下tar -zxvf a.tar.gz -C /usr9、查看壓縮包內容tar -ztvf a.tar.gzzip/unzip10、打包並壓縮成bz2tar -jcvf a.tar.bz211、解壓bz2tar -jxvf a.tar.bz2

常用查找命令的使用

1、查找可執行的命令所在的路徑:which ls2、查找可執行的命令和幫助的位置:whereis ls3、從某個文件夾開始查找文件find / -name "hadooop*"find / -name "hadooop*" -ls4、查找並刪除find / -name "hadooop*" -ok rm {} \;find / -name "hadooop*" -exec rm {} \;5、查找用戶為hadoop的文件find /usr -user hadoop -ls6、查找用戶為hadoop的文件夾find /home -user hadoop -type d -ls7、查找權限為777的文件find / -perm -777 -type d -ls8、在指定目錄不分大小寫查找某個文件find ./sound/ -iname ft56Q.c 9、顯示命令歷史history

grep命令

最常用的-全字匹配grep -wrn weiqifa ./sound/查找 某個字符串但是不在指定文件夾查找grep -E "http" ./ -R --exclude-dir=./sound/ grep -E "http" . -R --exclude-dir={.git,res,bin}排除擴展名為 java 和 js 的文件grep -E "http" . -R --exclude=*.{java,js}1 基本使用查詢包含hadoop的行grep hadoop /etc/passwordgrep aaa ./*.txt 2 cut截取以:分割保留第七段root@ubuntu:~/kernel_rk3399_yan4_dev/kernel# grep dsl /etc/passwd | cut -d: -f7/bin/bashroot@ubuntu:~/kernel_rk3399_yan4_dev/kernel# grep dsl /etc/passwd dsl:x:1000:1000:dsl,,,:/home/dsl:/bin/bashroot@ubuntu:~/kernel_rk3399_yan4_dev/kernel# 3 查詢不包含hadoop的行grep -v hadoop /etc/passwd4 正則表達包含hadoopgrep 'hadoop' /etc/passwd5 正則表達(點代表任意一個字符)grep 'h.*p' /etc/passwd6 正則表達以hadoop開頭grep '^hadoop' /etc/passwd7 正則表達以hadoop結尾grep 'hadoop$' /etc/passwd規則:. : 任意一個字符a* : 任意多個a(零個或多個a)a? : 零個或一個aa+ : 一個或多個a.* : 任意多個任意字符\. : 轉義.o\{2\} : o重複兩次查找不是以#開頭的行grep -v '^#' a.txt | grep -v '^$' 以h或r開頭的grep '^[hr]' /etc/passwd不是以h和r開頭的grep '^[^hr]' /etc/passwd不是以h到r開頭的grep '^[^h-r]' /etc/passwd

linux文件權限的描述格式解讀

drwxr-xr-x (也可以用二進位表示 111 101 101 --> 755)d:標識節點類型(d:文件夾 -:文件 l:連結)r:可讀 w:可寫 x:可執行 第一組rwx: ## 表示這個文件的擁有者對它的權限:可讀可寫可執行第二組r-x: ## 表示這個文件的所屬組用戶對它的權限:可讀,不可寫,可執行第三組r-x: ## 表示這個文件的其他用戶(相對於上面兩類用戶)對它的權限:可讀,不可寫,可執行

修改文件權限

chmod g-rw haha.dat ## 表示將haha.dat對所屬組的rw權限取消chmod o-rw haha.dat ## 表示將haha.dat對其他人的rw權限取消chmod u+x haha.dat ## 表示將haha.dat對所屬用戶的權限增加xchmod a-x haha.dat ## 表示將haha.dat對所用戶取消x權限也可以用數字的方式來修改權限chmod 664 haha.dat 就會修改成 rw-rw-r--如果要將一個文件夾的所有內容權限統一修改,則可以-R參數chmod -R 770 aaa/

修改文件所有權

<只有root權限能執行>chown angela aaa ## 改變所屬用戶chown :angela aaa ## 改變所屬組chown angela:angela aaa/ ## 同時修改所屬用戶和所屬組

統計文件或文件夾的大小

root@ubuntu:~/kernel_rk3399_yan4_dev/kernel# du -sh sound/33M sound/root@ubuntu:~/kernel_rk3399_yan4_dev/kernel# df -h 查看磁碟的空間root@ubuntu:~/kernel_rk3399_yan4_dev/kernel# df -hFilesystem Size Used Avail Use% Mounted onudev 1.9G 0 1.9G 0% /devtmpfs 394M 6.4M 388M 2% /run/dev/sda1 294G 93G 186G 34% /tmpfs 2.0G 204K 2.0G 1% /dev/shmtmpfs 5.0M 4.0K 5.0M 1% /run/locktmpfs 2.0G 0 2.0G 0% /sys/fs/cgrouptmpfs 394M 80K 394M 1% /run/user/1000root@ubuntu:~/kernel_rk3399_yan4_dev/kernel#

相關焦點

  • Linux Shell命令快捷獲得系統幫助
    朋友,我們拿到一個命令,不知道怎麼樣使用,一般都會先看下命令默認參數說明,然後再不清楚就是通過man命令查閱手冊。久而久之,對學習linux的熱情被怠慢下來了。 其實,這也是學習linux的最大困難。linux命令幫助,一般有2種,命令自身代碼裡面帶有使用幫助說明,這種一般很精簡,太長了,程序自身的大小以及日常維護不方便。還有一種,就是帶有幫助文件,類似windows的chm格式文件。下面我說下這2種怎麼樣查閱。
  • 超詳細的Shell中特殊字符的用法總結大全
    超詳細的Shell中特殊字符的用法總結大全 Linux下無論如何都是要用到shell命令的,在Shell的實際使用中,有編程經驗的很容易上手,但稍微有難度的是shell裡面的那些個符號,各種特殊的符號在我們編寫Shell腳本的時候如果能夠用的好,往往能給我們起到事半功倍的效果,那麼這些特殊符號所代表的意思你知道嗎
  • 幫你精通Linux:簡約卻不簡單的ls命令
    ls 命令即 list directory contents是我們最為熟悉的Linux命令。它就如車載或者手機中的導航地圖,徹底解放了我們的大腦,片刻不能離身。否則我們下樓取個快遞,都得繞18道彎才能勉強找回家。
  • Linux 命令行下的好東西
    如果你時間比較充裕...那麼不如看看這本書吧: <<The Linux Command Line>>http://linuxcommand.org/tlcl.php書的內容就跟標題一樣,深入淺出的介紹了所謂 "Linux 命令行" 的方方面面,本文很多內容也是從書裡看到的。
  • 在Linux作業系統裡使用xargs命令
    linux作業系統專題文章:linux作業系統詳解(linux不再難懂)xargs命令有兩個要點。第一,你必須列出目標文件。第二,你必須指定對每個文件需要執行的命令或腳本。場景2:列印指定文件的第一行既然你已經有一些使用xargs命令的基礎,你可以自由選擇執行什麼命令。有時,你也許希望只對一部分文件執行操作而忽略其他的。在這種情況下,你可以使用find命令的-name選項以及?通配符(匹配任意單個字符)來選中特定文件並通過管道輸出給xargs命令。
  • 乾貨| 網站滲透總結之Getshell用法大全
    Getshell分為進管理員後臺Getshell和不進後臺Getshell,本文主要總結常見進後臺Getshell和部分。
  • Linux入門進階 - 如何在Linux中使用export命令
    Linux export命令會標記哪些值需要傳遞給一組子進程。這是bash shell提供的一個簡單但有用的特性。它允許管理員在不中斷當前會話的情況下傳遞環境的配置參數。這就是為什麼在終端會話重新啟動後才使用導出變量的原因。幸運的是,export命令使用起來非常簡單,易於掌握。
  • linux中的vim命令
    如何查看命令的幫助文檔,三種方式:內置命令:help ls外部命令:ls --help,簡單的幫助文檔手冊man ls, 通過使用man查看詳細的幫助內容vim和vi命令本質上就是一個命令,這個命令是在linux命令中專門用來編輯文本文件的
  • shell腳本的使用該熟練起來了,你說呢?(篇三)
    (篇一)shell腳本的使用該熟練起來了,你說呢?(篇二)文章裡面測試的命令腳本文件,大家關注我公眾號後,可以私信我領取文件。1.顯示普通字符串:echo "It is a test"//這裡的雙引號完全可以省略,以下命令與上面實例效果一致echo It is a test2.顯示轉義字符結果將是:同樣,雙引號也可以省略3.顯示變量read 命令從標準輸入中讀取一行,並把輸入行的每個欄位的值指定給 shell 變量
  • 每天一個Linux命令(1):ls命令
    由於公眾號粉絲中有很多Linux愛好者,所以今日起會更新「每天一個Linux命令」系列,幫助大家理解學習,如果反饋好的話會持續更新,大家喜歡的話就留言給小微,才有更新的動力。ls命令是linux下最常用的命令。ls命令就是list的縮寫,預設下ls用來列印出當前目錄的清單。如果ls指定其他目錄,那麼就會顯示指定目錄裡的文件及文件夾清單。
  • 學會這些 shell 小技巧,我就愛上 Linux 了
    本文就介紹一些基本的 Linux shell 技巧,相信可以幫你提高生產力!需要注意的是,以上操作是 bash 支持的,其他主流 shell 解釋器當然都支持擴展cd命令的搜索目錄,但可能不是修改CDPATH這個變量,具體的設置方法可以自行搜索。輸入重複命令太麻煩使用特殊命令!!
  • vim命令使用總結
    vim簡介vim 是linux系統自帶的文本編輯器。vim 共有三種模式:命令模式:用vim打開文件就進入了命令模式;輸入模式:在命令模式輸入i/I/a/A/o/O就進入輸入模式;在輸入模式下按鍵esc,則退出輸入模式進入命令模式底線模式:在命令模式按下英文冒號:就進入了底線模式;二. vim命令使用總結2.1 光標移動(1)光標上下左右移動(鍵盤的上下左右四個鍵):
  • linux系統中update和upgrade命令區別
    linux系統中update和upgrade命令區別在linux作業系統中update和upgrade都是更新命令:yum upgrade和yum update。兩個命令在linux系統中都是更新所有包,但是兩個命令的側重點不一樣。
  • 三招教你輕鬆擴展 git bash 命令(下)
    但是, windows 始終是 windows ,是不可能真正變成 linux 系統的,所以我們要尋找的第三方工具充其量也是一種模擬系統而已.市面上, windows 的命令行工具有很多,有些是單純的命令行工具有的是虛擬系統工具,但是不管怎麼樣,我們這一次要選擇的命令行工具一定要滿足以下幾點.
  • linux常用命令總結
    (呀目)安裝器七網絡相關八 系統相關九 shellreboot -h now 立即重啟注意:生產環境中,關機命令和重啟命令謹慎執行。>1幫助命令① man英文:manual 命令路徑:/usr/bin/man 執行權限:所有用戶作用:獲取命令或配置文件的幫助信息語法:man [命令/配置文件]
  • 安卓測試常用的 ADB 命令大全,非常全!
    1.通過adb可以輕鬆的執行Linux Shell命令,如adb shell dir 就是列舉目錄,在Linux中根目錄為/而不是Windows上的C盤、D盤。 4.從Android仿真器中回傳文件到電腦 通過adb pull /tmp/android123.txt android123.txt命令就會把仿真器的tmp文件夾下android123.txt文件回傳到電腦SDK/Tools目錄下。3、常用命令大全 1.
  • 常用ADB命令整理
    (手機) *從設備上下載文件到電腦adb pull <遠程路徑> <本地路徑>ps: 用pull命令可以把設備(手機)上的文件或者文件夾複製到本機電腦 *取得設備root權限adb remount  *登錄設備shelladb shell
  • 什麼是Linux?現代數據中心的一個強大組件
    這是Linux命令行。對於習慣於在圖形環境中工作的人來說,可能難以接受,但大多數網絡專業人員都習慣於在shell中操作。除了shell之外,Linux伺服器還具有圖形桌面環境和運行在它之上的應用程式。有一些用於Linux的網絡應用程式,例如流量分析、安全性和網絡管理,它們也有圖形界面,但是它們的數量遠遠少於伺服器和桌面的數量。
  • 【奇技淫巧】linux、windows下壓縮打包命令整理
    小弟整理了些linux和windows下壓縮打包命令,現在分享給大家,希望能幫助到大家。linux(主要使用find和tar函數)1、直接打包(1)將mail壓縮打包至videos目錄下tar -zcvf  /home2/public_html/uploads/videos/videos.tar.gz  /home2/mail/ --ignore-failed-read(2)以時間過濾直接壓縮打包製定目錄下
  • 讓我們使用 PC 鍵盤在終端演奏鋼琴 | Linux 中國
    若還未安裝,運行下面命令來安裝它。curl https://sh.rustup.rs -sSf | sh(LCTT 譯註:這種直接通過 curl 執行遠程 shell 腳本是一種非常危險和不成熟的做法。)安裝程序會問你是否默認安裝還是自定義安裝還是取消安裝。我希望默認安裝,因此輸入 1(數字一)。