溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

linux系統(tǒng)中常用的shell命令

發(fā)布時(shí)間:2020-06-10 17:39:38 來源:億速云 閱讀:547 作者:元一 欄目:系統(tǒng)運(yùn)維

概念

Linux,全稱GNU/Linux,是一套免費(fèi)使用和自由傳播的類Unix操作系統(tǒng),是一個(gè)基于POSIX和Unix的多用戶、多任務(wù)、支持多線程和多CPU的操作系統(tǒng)。伴隨著互聯(lián)網(wǎng)的發(fā)展,Linux得到了來自全世界軟件愛好者、組織、公司的支持。它除了在服務(wù)器方面保持著強(qiáng)勁的發(fā)展勢頭以外,在個(gè)人電腦、嵌入式系統(tǒng)上都有著長足的進(jìn)步。使用者不僅可以直觀地獲取該操作系統(tǒng)的實(shí)現(xiàn)機(jī)制,而且可以根據(jù)自身的需要來修改完善Linux,使其最大化地適應(yīng)用戶的需要。


Shell是系統(tǒng)的用戶界面,提供了用戶與內(nèi)核進(jìn)行交互操作的一種接口。它接收用戶輸入的命令并把它送入內(nèi)核去執(zhí)行。

實(shí)際上Shell是一個(gè)命令解釋器,它解釋由用戶輸入的命令并且把它們送到內(nèi)核。不僅如此,Shell有自己的編程語言用于對命令的編輯,它允許用戶編寫由shell命令組成的程序。Shell編程語言具有普通編程語言的很多特點(diǎn),比如它也有循環(huán)結(jié)構(gòu)和分支控制結(jié)構(gòu)等,用這種編程語言編寫的Shell程序與其他應(yīng)用程序具有同樣的效果。

Linux提供了像MicrosoftWindows那樣的可視的命令輸入界面--X Window的圖形用戶界面(GUI)。它提供了很多桌面環(huán)境系統(tǒng),其操作就像Windows一樣,有窗口、圖標(biāo)和菜單,所有的管理都是通過鼠標(biāo)控制。GNOME。

每個(gè)Linux系統(tǒng)的用戶可以擁有他自己的用戶界面或Shell,用以滿足他們自己專門的Shell需要。

1、實(shí)驗(yàn)環(huán)境控制

作為一個(gè)linux系統(tǒng)的學(xué)習(xí)者,很有可能因?yàn)橐恍┎划?dāng)操作造成系統(tǒng)不可逆的損壞。所以在此希望大家可以先在虛擬機(jī)中進(jìn)行操作練習(xí)。以下命令為使用者在命令行中開啟一個(gè)虛擬機(jī)并顯示,必要時(shí)進(jìn)行重置的命令。

rht-vmctl    start    workstation                     #開啟一個(gè)工作站

rth(redhat)-vm(virtual mahine)ctl(control)顧名思義為紅帽系統(tǒng)的虛擬機(jī)控制命令
start開始
workstation工作站
rht-vmview    view    workstation                 #將工作站顯示出來
view視圖
rht-vmctl    stop  workstation                      #關(guān)停虛擬機(jī)
rht-vmctl    poweroff    workstation             #即刻斷電
與stop不同的是poweroff不會(huì)正常關(guān)閉正在運(yùn)行的程序之后再關(guān)機(jī),而是立即關(guān)機(jī)。
rht-vmctl    reset    workstation                   #重置虛擬機(jī)
當(dāng)操作者發(fā)生不可逆的失誤,如誤刪boot文件導(dǎo)致系統(tǒng)文件無法加載,就可以對虛擬機(jī)進(jìn)行重置,相當(dāng)于手機(jī)的格式化。
至此,大家就擁有了一臺虛擬機(jī)。

2、命令行操作

在打開虛擬機(jī)上的終端之后,我們就可以通過輸入命令的方式使用計(jì)算機(jī)了。這里我們打開的是一個(gè)shell窗口,我們使用它來與linux內(nèi)核做互動(dòng)。

關(guān)于shell的快捷鍵:
ctrl+shift+n    #開啟一個(gè)新shell
ctrl shift t    #在當(dāng)前shell里開啟一個(gè)新的頁面
ctrl+d  \ Ctrl shift d   #關(guān)閉shell

關(guān)于命令行操作的快捷鍵:
Ctrl+c  #終止命令,當(dāng)當(dāng)前操作的命令執(zhí)行出問題,想即刻關(guān)停時(shí)。
ctrl a    #光標(biāo)移動(dòng)到命令行首
ctrl e    #光標(biāo)移動(dòng)到命令行尾
ctrl u    #刪掉本行光標(biāo)之前命令
Ctrl t    #刪掉本行光標(biāo)之后命令
ctrl shift c    #復(fù)制所選命令
ctrl shift v    #粘貼所選命令

3、命令格式

a)行提示符

[kiosk@foundation0 Desktop]$

  • kiosk # 開啟Shell的用戶
    • @ # 分隔符
    • foundation0 # 主機(jī)短名稱(注意:操作者可以連接別的主機(jī),所以這里的信息顯示是必要的)
  • Desktop # 當(dāng)前工作目錄的名稱
  • $ # 身份提示符,代表了當(dāng)前的操作權(quán)限信息

    b)命令規(guī)范

    kiosk@foundation0 Desktop]$ <命令> 空格 <參數(shù)> 空格 <目標(biāo)>

    • 命令必須在行提示符之后輸入,沒有行提示符的輸入時(shí)無效的
    • 命令和參數(shù)和目標(biāo)之間要用空格分開
  • 參數(shù)中“-” 表示單詞的縮寫,“--”表示單詞的全拼
    • 參數(shù)用來指定命令的某些功能,可以加也可以不加
    • 使用參數(shù)時(shí) -a -b -c = -abc = -cab =-bac
  • 釋放行提示符(CTRL+C)
  • <TAB>用于命令行的補(bǔ)齊

4、常用命令分類

這是在我們的基礎(chǔ)操作中需要經(jīng)常使用的實(shí)用命令,需要全部掌握且記熟

1)歷史命令記錄調(diào)用

  • history              #查看歷史命令
    • !+數(shù)字    #執(zhí)行history中數(shù)字所在行命令
    • !+字母    #執(zhí)行最近由此首字母開頭的命令
    • ctrl r +關(guān)鍵字    #搜索帶有此關(guān)鍵字的歷史
  • <上>|<下>    #直接顯示命令歷史
  • history -c    #清空歷史命令記錄

2)文件或目錄的建立(目錄就是我們所說的文件夾)

  • touch 文件名    #創(chuàng)建文件
  • touch 文件名1 文件名2 ...    #創(chuàng)建多個(gè)文件
  • touch -t 年月日時(shí)分 文件名    #修改文件時(shí)間信息(注意:touch命令不僅可以創(chuàng)建文件,還可以修改其信息)
  • mkdir 目錄名    #創(chuàng)建目錄
  • mkdir 目錄名1\目錄名2..    #創(chuàng)建多個(gè)目錄
  • mkdir -p 多級文件名    #建立多級目錄,若沒有則創(chuàng)建

3)文件刪除

  • rm file    #移除文件
  • rm -f file1 file2    #強(qiáng)制移除多個(gè)文件

4)目錄刪除

  • rm -r dir    #-r(recursion)遞歸刪除,因?yàn)橐粋€(gè)目錄下面默認(rèn)有多個(gè)文件,所以需要遞歸來刪除
  • rm -fr dir1 dir2 dir3    #-f(force)強(qiáng)制執(zhí)行遞歸移除多個(gè)文件

5)文件編輯

  • gedit 文件名    #圖形化打開文件
  • vim 文件名    #命令行化打開文件
    • <i>    #插入
      • <esc>    #推出插入模式
    • <:wq>    #保存且退出

6)文件查看

  • history > 文件名    #將history內(nèi)容放到文件中(用來建立一個(gè)非空文件用來方便執(zhí)行后面的操作)
  • cat 文件名    #顯示文件全部內(nèi)容
  • cat -b 文件名    #顯示文件全部內(nèi)容和行號(不顯示空行)
  • cat -n 文件名    #顯示文件全部內(nèi)容和行號(顯示空行)

  • head 文件名    #顯示文件前10行
  • head -n 文件名    #顯示文件前n行

  • tail 文件名    #顯示文件后10行
  • tail -n 文件名    #顯示文件后n行
  • less 文件名    #用less打開文件less(分頁瀏覽工具,會(huì)開啟less環(huán)境。less是一個(gè)工具,用來幫助顯示文件文本)

    • <上>|<下>    #逐行查看
    • <pgup>|<pgdown>  #逐頁查看
    • /關(guān)鍵字    #搜索關(guān)鍵字,n向下匹配N向上匹配
    • v    #從lee環(huán)境進(jìn)入vim 編輯完成:wq 回到less
    • q    #退出
  • stat 文件名    #查看該文件狀態(tài)屬性

7)文件的復(fù)制

  • cp(copy)
  • cp 原文件 目的文件    #復(fù)制源文件到目的文件,若目的文件存在則被源文件覆蓋,若不存在則創(chuàng)建
  • cp 文件1 文件2 文件3 目錄    #將文件1文件2文件3拷貝到目錄中
  • cp -r 目錄1 目錄2    #將目錄1遞歸拷貝到目錄2

8)文件的移動(dòng)

  • mv(move)
    注意:相同磁盤只是文件名的更改,不同磁盤有文件建立過程與文件刪除過程
  • mv 文件名1 文件名2    #文件名2存在則覆蓋,不存在則重命名為文件名1
  • mv 目錄1 目錄2    #將目錄1移動(dòng)到目錄2
  • mv 文件名1 文件名2 目錄    #將文件名1文件名2移動(dòng)到目錄
  • df    #磁盤信息

9)查看文件類型

  • file 文件名    #查找該文件的文件類型
    例如:#!/bin/bash      #shell script型文件
    #include<stdio.h>   #C source型文件

10)文件內(nèi)容統(tǒng)計(jì)

  • wc(word count)
  • wc -l    #統(tǒng)計(jì)行數(shù)line
  • wc -w    #統(tǒng)計(jì)字(單詞)數(shù)word
  • wc -m    #統(tǒng)計(jì)字符數(shù)m
  • wc -c    #統(tǒng)計(jì)字節(jié)c(octet?)數(shù)

11)文件路徑

  • pwd(pathway)   #當(dāng)前路徑

  • cd 絕對路徑/相當(dāng)路徑    #移動(dòng)到某個(gè)路徑下
  • cd..    #返回上一級目錄
  • cd-    #回到上個(gè)路徑

12)列出文件

  • ls(list)
  • list -i    #屬性
  • list-d    #目錄本身的屬性
  • list-s    #文件大小
  • list -S    #按大小排序
  • list -a    #顯示所有文件包括隱藏文件

13)文件查找匹配

  • *#通配符
  • ?#匹配符
  • rm -fr f[[:alpha:]]ile    #中間夾帶字母的全部刪除
  • rm -fr f[[:digit:]]ile    #中間夾帶數(shù)字的全部刪除
  • rm -fr f[[:alnum:]]ile    #中間夾帶字母或數(shù)字的全部刪除
  • rm -fr f[[:punct:]]ile    #中間夾帶字符的全部刪除
  • rm -fr f[[:space:]]ile    #中間夾帶空格的全部刪除
  • rm -fr f[[:space:][punct]]ile    #中間夾帶字符或空格的全部刪除
  • rm -fr [[:space:][punct]] #只要夾帶字符或空格的全部刪除,其他也一樣

14)對于vim編輯器的命令及其操作

  • 對于vim編輯器的個(gè)性化配置
    a)可進(jìn)行臨時(shí)配置,信息只存儲(chǔ)在內(nèi)存中,如在vim命令行中輸入":set nu",將在當(dāng)前打開的vim編輯器中顯示行標(biāo)。當(dāng)編輯器關(guān)閉,命令失效,下次打開編輯器行標(biāo)并不存在。
    b)若想要使行標(biāo)一直存在,可進(jìn)行下面的配置。
    當(dāng)前用戶(普通用戶,非超級用戶)對當(dāng)前環(huán)境下vim編輯器的配置在當(dāng)前用戶的家目錄,執(zhí)行vim ~/.vimrc進(jìn)入到vim配置文件
    進(jìn)入配置文件以后,輸入"set 參數(shù)",對當(dāng)前用戶的vim進(jìn)行配置。
    例如:  “:set nu”會(huì)在vim中顯示行標(biāo)。
    (注意,若此時(shí)超級用戶進(jìn)入到vim將不會(huì)顯示行標(biāo),因?yàn)槿缟显O(shè)置只是對普通用戶生效)
    c)超級用戶對vim編輯器的配置,將作用于所有文件,執(zhí)行vim /etc/vimrc 進(jìn)入到vim的配置文件,在配置文件的頭或尾進(jìn)行如上編輯就可以對超級用戶及各個(gè)普通用戶進(jìn)行操作。
    (猜測:普通用戶對超級用戶的配置文件進(jìn)行了繼承,超級用戶的配置普通用戶可以讀取,而普通用戶的配置文件對超級用戶來說不可讀。)
    若想進(jìn)行更多更鉉酷的設(shè)置,可自行搜索!

  • 搜索關(guān)鍵字
    命令行輸入"/關(guān)鍵字" 回車后高亮顯示所輸入的關(guān)鍵字
    :noh   #取消高亮
    n    #向下匹配
    N    #向上匹配
  • 批量操作
    復(fù)制
    y(n)l   #復(fù)制n個(gè)字母
    y(n)w   #復(fù)制n個(gè)單詞
    y(n)y   #復(fù)制n行
    刪除
    d(n)l   #刪除n個(gè)字母
    d(n)w   #刪除n個(gè)單詞
    d(n)d   #刪除n行
    剪切
    c(n)l   #剪切n個(gè)字母
    c(n)w   #剪切n個(gè)單詞
    c(n)c   #剪切n行
    注意:剪切完會(huì)進(jìn)入插入模式
    粘貼
    p
    撤銷
    u
    恢復(fù)
    ctrl+r

  • vim可視化模式,可進(jìn)行批量操作
    在命令模式下按【ctrl+v】進(jìn)入可視化模式
    鍵盤上下左右可以移動(dòng)選擇區(qū)域
    在可視化模式下批量添加字符
    ctrl + v 選中要加入字符所在的列
    a)按大寫的【i】
    b)加入字符
    c)按【esc】

  • vim中字符的替換
    :%s/原字符/替換后字符/g
    (注意:%s表示全文所有的行,g表示全文所出現(xiàn)原字符的列)
    所以上述命令會(huì)替換文檔中所有行列中的目標(biāo)字符
    替換示例:
    ? :%s/: /@/g 替換全文的:為@
    ? :1,5s/: /@/g 替換1-5行的:為@
    ? :/hello/,/bye/s/: /@/g 替換hello到bye之間的:為@
    (注意:兩個(gè)替換關(guān)鍵字之間需要唯一,不可以互相包含。如abcde與abc不可以。)
  • vim 的分屏功能
    ctrl+w s上下分屏
    (注意:分屏文件是同一個(gè)文件,對其中一個(gè)文件的修改就相當(dāng)于對所有分屏文件的修改。)
    ctrl+w v左右分屏
    ctrl+w c關(guān)閉光標(biāo)所在屏幕
    ctrl+w 上下左右 光標(biāo)移動(dòng)到指定屏幕
    :sp file2同時(shí)編輯當(dāng)前文件和file2
  • 在命令模式下光標(biāo)的移動(dòng)
    gg   #光標(biāo)移動(dòng)到第一行行首
    G   #光標(biāo)移動(dòng)到文件的最后
    :數(shù)字   #光標(biāo)移動(dòng)到指定行
  • vim的編寫模式進(jìn)入
    i   #光標(biāo)所在位置插入
    I   #光標(biāo)所在行行首插入
    o   #光標(biāo)所在行下一行插入
    O   #光標(biāo)所在行的上一行插入
    a   #光標(biāo)所在字符的下一個(gè)字符插入
    A   #光標(biāo)所在行的行尾插入
    s   #光標(biāo)所在字符刪除并插入
    S   #光標(biāo)所在行刪除并插入
  • vim的退出模式
    :q   #退出,在文件內(nèi)容沒有被改變時(shí)使用
    :wq   #退出保存
    :q!   #強(qiáng)制退出不保存,在改變文件后不想保存時(shí)使用
    :wq!   #強(qiáng)制退出保存 在對只讀文件編寫時(shí)使用,注意,所編輯的只讀文件必須時(shí)
  • vim異常退出
    文件.swp是vim文件進(jìn)行編輯時(shí)產(chǎn)生的臨時(shí)文件,若文件編輯時(shí)關(guān)閉shell,這個(gè)文件就會(huì)被遺留下來。且此文件內(nèi)會(huì)保存還沒有寫入部分的數(shù)據(jù),此文件如果被手動(dòng)刪掉,vim會(huì)恢復(fù)正常工作,但不會(huì)保存更改過的內(nèi)容。
    當(dāng)vim還沒保存編寫內(nèi)容而被強(qiáng)制關(guān)閉,當(dāng)下次打開時(shí)會(huì)出現(xiàn)報(bào)錯(cuò),以下是處理報(bào)錯(cuò)時(shí)的快捷鍵:
    [O]pen Read-Only 只讀打開
    [E]dit anyway 繼續(xù)編輯
    [R]ecover 恢復(fù)數(shù)據(jù)
    [D]elete it 刪除[.swp]文件
    [Q]uit 退出
    [A]bort 恢復(fù)后退出
    (建議:先r后wq,再D,再打開就可以看到保存過上次更改內(nèi)容的文件了)
    15)家目錄
    家目錄顧名思義就是當(dāng)前用戶的家,其實(shí)就是當(dāng)前用戶可以執(zhí)行當(dāng)前權(quán)限且進(jìn)行操作的地方。
    例如:超級用戶的家目錄就是在root,也就意味著超級用戶可以對根目錄進(jìn)行各種操作。而普通用戶的家目錄在/home/用戶名下,意為著普通用戶在這個(gè)這個(gè)目錄下可進(jìn)行各種操作,對于自己家目錄的上級目錄只能進(jìn)行訪問。(相當(dāng)于只能對別人的家進(jìn)行拜訪而不能進(jìn)行裝修。理解這一點(diǎn)對之后的路徑學(xué)習(xí)與對家命令的操作甚至對權(quán)限的理解都非常重要。)
    提示行中的~ 表示當(dāng)前用戶家目錄
    cd ~  會(huì)進(jìn)入當(dāng)前用戶的
    ~username 進(jìn)入指定用戶的家目錄
    ~+  當(dāng)前目錄( ~ +相當(dāng)于.,不過.只在shell中通用,~ +在Unix中都可以用)
    ~- 進(jìn)入當(dāng)前目錄之前所在目錄(olddir)cd - 中的"-"(注意:cd -中的-只能在cd中表示舊目錄,而~-子阿所有命令中均可表示舊目錄)

    總結(jié)

    了解了上面的命令基本上對linux系統(tǒng),及其shell進(jìn)行日常簡單的操作了,也可以在vim編輯器中進(jìn)行書寫工作。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI