Linux shell命令總結大全

2020-12-12 酷扯兒

本文轉載自【微信公眾號: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#

相關焦點

  • shell是什麼?
    bash shell執行shell一、shell是一個命令解釋器,是人與作業系統之間的橋梁。人與作業系統怎麼關聯?通過shell。人通過shell向作業系統發出操作指令。二、shell腳本:shell命令的集合。從上而下的執行。三、常見的shell:1、bourne shell.2、C shell.3、bourne-Again shell:bash是一個為gun項目編寫的unix shell,bash是大多數linux系統、MAC、windows默認的shell。
  • 如何將 Linux 終端中命令的輸出保存到文件中 | Linux 中國
    當然你可以在 Linux 終端中複製和粘貼,但是有更好的方法可以在 Linux 命令行中保存 shell 腳本或命令的輸出,讓我演示給你看。 本文字數:1659,閱讀時長大約:2分鐘 https://linux.cn/article-12920-1.html 作者:Abhishek Prakash 譯者:MjSeven 當你在 Linux 終端中運行命令或腳本時
  • Linux 系統操作之 vim 命令總結
    命令行模式 任何時候,不管用戶處於何種模式,只要按一下ESC鍵,即可使Vi進入命令模式;我們在shell 在該模式下,用戶可以輸入各種合法的Vi命令,用於管理自己的文檔。此時從鍵盤上輸入的任何字符都被當做編輯命令來解釋,若輸入的字符是合法的Vi命令,則Vi在接受用戶命令之後完成相應的動作。 但需注意的是,所輸入的命令並不在屏幕上顯示出來。若輸入的字符不是Vi的合法命令,Vi會響鈴報警。
  • 在Linux作業系統裡使用xargs命令
    linux作業系統專題文章:linux作業系統詳解(linux不再難懂)xargs命令有兩個要點。第一,你必須列出目標文件。第二,你必須指定對每個文件需要執行的命令或腳本。場景2:列印指定文件的第一行既然你已經有一些使用xargs命令的基礎,你可以自由選擇執行什麼命令。有時,你也許希望只對一部分文件執行操作而忽略其他的。在這種情況下,你可以使用find命令的-name選項以及?通配符(匹配任意單個字符)來選中特定文件並通過管道輸出給xargs命令。
  • shell常用命令
    - 如果一個命令只有一次輸出,但想持續觀察輸出變化,使用watch -d -n1 'df -h'可行,df -h輸出一次硬碟使用情況,用上面指令可以持續觀察。-d表示相鄰輸出如果有差異要高亮標記,-n1表示每隔一秒執行一次df -h指令。
  • vim+py文件構造linux後門
    =True)以上代碼原理也很簡單,創建套接字,綁定套接字(也就是之後開啟的監聽埠),監聽套接字(其中數字5代表有5臺設備可同時連接),將linux下的標準輸入、輸出、錯誤重定向到套接字中並開啟一個shell,從而實現數據傳輸。
  • linux中的vim命令
    如何查看命令的幫助文檔,三種方式:內置命令:help ls外部命令:ls --help,簡單的幫助文檔手冊man ls, 通過使用man查看詳細的幫助內容vim和vi命令本質上就是一個命令,這個命令是在linux命令中專門用來編輯文本文件的
  • 利用FRP實現內網映射和外網Shell
    在 VPS 上運行這個命令:arch如果輸出x86_64則需要下載帶linux_amd64的那個壓縮包;如果輸出的是其他的,則在文件列表中找 linux 的對應架構的壓縮包以x86-xzvf frp_0.33.0_linux_amd64.tar.gz# 文件夾名改成 frp,不然目錄太長了不方便mv frp_0.18.0_linux_amd64 frpcd frp# 確保 frps 程序具有可執行權限chmod +x frps
  • linux-ssh配置和使用
    全新安裝的linux因為默認都是國外源. 首先第一步換源這樣下載軟體速度會快一點.啟動ssh6.linux文件傳功能scp是基於ssh服務的將遠程主機文件複製到本地 scp 用戶名@伺服器地址 :/path /path
  • linux基礎04:linux用戶相關的命令有哪些?怎樣切換用戶?
    通過前面的幾節課,我們在windows系統中安裝好了linux虛擬機,也通過xshell遠程終端連接上了linux虛擬。從今天開始,我們就可以正式開始學習linux的知識了。今天,我們主要介紹的是用戶相關的一些命令,如:創建用戶命令、用戶退出登錄命令、用戶切換命令等。
  • Docker安裝Jenkins+Shell腳本自動化部署項目
    Jenkins基於Java環境,可以部署在windows/Mac OS/linux上,通過其網頁可視化界面可以輕鬆操作Jenkins。可以通過docker exec -t jenkins bash命令進入到容器內部然後運行whoami命令查看當前用戶。注意其中我們映射了一個容器內的/var/jenkins_home目錄,這是作為Jenkins的主目錄,裡面會存放Jekins的各種配置和構建的項目工作空間,後面需要用到這個對應的主機映射路徑。映射的埠可以自行修改。
  • 整理幾個超實用的前端提效shell命令
    curlcurl 是常用的命令行工具,用來請求 Web 伺服器。它的名字就是客戶端(client)的 URL 工具的意思。curl 功能非常強大,它的命令可以直接放到 postman 使用,postman 也是支持 curl 的請求方式。
  • 如何用Shell監控文件變化?
    文件監控可以配合rsync實現文件自動同步,例如監聽某個目錄,當文件變化時,使用rsync命令將變化的文件同步。文件監控可以配合rsync實現文件自動同步,例如監聽某個目錄,當文件變化時,使用rsync命令將變化的文件同步。
  • vim命令使用總結
    vim簡介vim 是linux系統自帶的文本編輯器。vim 共有三種模式:命令模式:用vim打開文件就進入了命令模式;輸入模式:在命令模式輸入i/I/a/A/o/O就進入輸入模式;在輸入模式下按鍵esc,則退出輸入模式進入命令模式底線模式:在命令模式按下英文冒號:就進入了底線模式;二. vim命令使用總結2.1 光標移動(1)光標上下左右移動(鍵盤的上下左右四個鍵):
  • linux常用命令總結
    (呀目)安裝器七網絡相關八 系統相關九 shellreboot -h now 立即重啟注意:生產環境中,關機命令和重啟命令謹慎執行。>1幫助命令① man英文:manual 命令路徑:/usr/bin/man 執行權限:所有用戶作用:獲取命令或配置文件的幫助信息語法:man [命令/配置文件]
  • 12種以上最佳免費Linux圖書
    幾乎包含命令、實用程序和工具的完整集合可用於shell腳本調用。Linux命令行gd.tuwien.ac.at/linuxcommand.orgWilliam D. Shotts, Jnr522這本書栩栩如生地綜述Linux命令行,內容廣泛。
  • 命令行工具開發:如何快速實現命令行提示?
    阿里妹導讀:對於稍微複雜一些的命令行工具,命令行的提示功能必不可少。那麼對於不同語言的開發者,有沒有一種簡單快捷的實現方式呢?本文分享一種快速實現的方法,使用YAML文件定義命令行工具的使用規範,再通過工具自動生成各種shell的命令行提示腳本,最後分享一些至關重要的命令行解析器。
  • Linux進程終止命令kill或killall筆記
    在linux命令下,如果需要終止某個進程,可以使用kill或者killall等命令來實現。終止命令的原理都是向linux內核發送一個系統操作的信號以及某個進程的ID,然後系統內核會根據指定的進程ID進行相應的處理。
  • shell是什麼?shell實現原理分析基於MM32 MCU的shell腳本源碼
    軟體資源如下:   以下為函數初始化配置及相關全局變量定義內容,代碼如下:   typedef struct   {   char *command; // shell命令提示符   char buffer[SHELL_COMMAND_MAX_LENGTH]; // shell命令緩衝buffer
  • CentOS「linux」學習筆記25:shell編程for和while循環
    linux基礎操作:主要介紹了shell編程流程控制for和while循環語句。