溫馨提示×

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

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

常用linux命令(+vim編輯器的常用命令與設(shè)置)

發(fā)布時(shí)間:2020-08-03 14:36:19 來源:網(wǎng)絡(luò) 閱讀:228 作者:海蜘蛛 欄目:系統(tǒng)運(yùn)維

前言:

本篇博客主要以一個(gè)linux新手的視角,分享linux系統(tǒng)中的一些常用shell命令。幫助大家快速上手,以最實(shí)用的命令為主。

如果大家對(duì)linux內(nèi)核與shell與bash之間的關(guān)系不太清楚,詳見另外一篇博客。

再此,有一個(gè)概念,即所有的命令都相當(dāng)于某個(gè)軟件,它幫助你完成某個(gè)任務(wù)。無論是cd,ls,mv還是vim,less,update,這些都會(huì)在bash中被解釋最終對(duì)linux內(nèi)核進(jìn)行操作。

博主用的系統(tǒng)為RedHat8.0

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)文件無法加載,就可以對(duì)虛擬機(jī)進(jìn)行重置,相當(dāng)于手機(jī)的格式化。
至此,大家就擁有了一臺(tái)虛擬機(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 多級(jí)文件名 #建立多級(jí)目錄,若沒有則創(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)容和行號(hào)(不顯示空行)
  • cat -n 文件名 #顯示文件全部內(nèi)容和行號(hào)(顯示空行)

  • 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 絕對(duì)路徑/相當(dāng)路徑 #移動(dòng)到某個(gè)路徑下
  • cd.. #返回上一級(jí)目錄
  • 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)對(duì)于vim編輯器的命令及其操作

  • 對(duì)于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)前用戶(普通用戶,非超級(jí)用戶)對(duì)當(dāng)前環(huán)境下vim編輯器的配置在當(dāng)前用戶的家目錄,執(zhí)行vim ~/.vimrc進(jìn)入到vim配置文件
    進(jìn)入配置文件以后,輸入"set 參數(shù)",對(duì)當(dāng)前用戶的vim進(jìn)行配置。
    例如: “:set nu”會(huì)在vim中顯示行標(biāo)。
    (注意,若此時(shí)超級(jí)用戶進(jìn)入到vim將不會(huì)顯示行標(biāo),因?yàn)槿缟显O(shè)置只是對(duì)普通用戶生效)
    c)超級(jí)用戶對(duì)vim編輯器的配置,將作用于所有文件,執(zhí)行vim /etc/vimrc 進(jìn)入到vim的配置文件,在配置文件的頭或尾進(jìn)行如上編輯就可以對(duì)超級(jí)用戶及各個(gè)普通用戶進(jìn)行操作。
    (猜測:普通用戶對(duì)超級(jí)用戶的配置文件進(jìn)行了繼承,超級(jí)用戶的配置普通用戶可以讀取,而普通用戶的配置文件對(duì)超級(jí)用戶來說不可讀。)
    若想進(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è)文件,對(duì)其中一個(gè)文件的修改就相當(dāng)于對(duì)所有分屏文件的修改。)
    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)制退出保存 在對(duì)只讀文件編寫時(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)行操作的地方。
    例如:超級(jí)用戶的家目錄就是在root,也就意味著超級(jí)用戶可以對(duì)根目錄進(jìn)行各種操作。而普通用戶的家目錄在/home/用戶名下,意為著普通用戶在這個(gè)這個(gè)目錄下可進(jìn)行各種操作,對(duì)于自己家目錄的上級(jí)目錄只能進(jìn)行訪問。(相當(dāng)于只能對(duì)別人的家進(jìn)行拜訪而不能進(jìn)行裝修。理解這一點(diǎn)對(duì)之后的路徑學(xué)習(xí)與對(duì)家命令的操作甚至對(duì)權(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é)

    了解了上面的命令基本上對(duì)linux系統(tǒng),及其shell進(jìn)行日常簡單的操作了,也可以在vim編輯器中進(jìn)行書寫工作?;A(chǔ)的操作雖然枯燥,但包含著此系統(tǒng)區(qū)別于其他系統(tǒng)的最基本的特點(diǎn),更應(yīng)該積極思考,區(qū)別聯(lián)系,才能以小見大,慢慢發(fā)掘系統(tǒng)深層次的設(shè)計(jì)理念。同時(shí)也應(yīng)量力而行,不懂就問,能解決的困惑當(dāng)下立即解決,困惑沒有大小也并不絕對(duì),只有不斷學(xué)習(xí)!

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

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

AI