Linux學習隨記(三)

2021-08-25 12:04:14 字數 2898 閱讀 5209

一、文字編輯命令vi

1. 開啟檔案:上下左右鍵可移動游標

vi 檔名
2.開啟檔案後,按下字母 i 進入編輯模式,按esc退出編輯模式,輸入  :wq 儲存後退出vi

瀏覽模式命令

[ctrl] + f

向下翻頁

[ctrl] + b

向上翻頁

0 或 home 鍵

移動游標到行首

$ 或 end 鍵

移動游標到行尾

g移動到檔案最後一行

ngn為陣列,移動到檔案的第n行

gg移動到檔案第1行,相當於1g

n[enter]

n為數字,下移n行

/word

向下查詢word關鍵字

?word

向上查詢word關鍵字

nxn為數字,向後刪除n個字元

ndd向下刪除游標所在n行

nyy複製游標所在的向下n行

p,pi

進入編輯模式

:w儲存資料

:w!強制儲存

:q離開vi

:q!離開不儲存

:wq儲存後離開

:! command

暫時離開vi執行command

二、shell指令碼

1.命令別名設定

ls -al設定別名為lm,因此可使用lm代替 ls -al

alias lm='ls -al'

取消別名: unalias lm

2. 變數設定顯示 

varible=111      <=設定

echo $varible <=顯示

單引號內的特殊字元僅為一般文字,雙引號不受限制

lang=en_us

var1="lang is $lang" <= var1的值為lang is en_us

var2='lang is $lang' <= var2的值為lang is $lang

使用export可匯出變數,變數將變成環境變數,但重啟電腦後,變數會消失

3、反單引號 ` ,其內的命令將會被先執行,其執行結果將被作為另一命令的輸入

ls -l `locate crontab`  <= locate的查詢結果將作為ls的輸入
4. 變數的鍵盤讀取、宣告: read, declare

read [-pt] variable

引數: -p : 後面接提示符

-t : 後面接等待的秒數

如: read -p 'please input your name:' -t 30 name

declare [-aixr] variable

引數: -a : 變數型別為陣列

-i : 變數型別為整數

-x : 變數匯出為環境變數

-r : 變數為readonly

5. bash的環境配置檔案

(1)login shell : 取得bash時需要完整的登入流程。

(2)  non-login shell : 取得bash介面的方法不需要重複登入的舉動

(3)/etc/profile ;系統整體的配置檔案

(4)~/.bash_profile或~/.bash_login或~/.profile :使用者個人配置檔案

(5)source : 讀入環境配置檔案的命令      

source 配置檔名
6. 復合命令:;,&&, ||

cmd1; cmd2  : 順序執行cmd1和cmd2

cmd1 && cmd2  :  先執行cmd1,如果cmd1執行正確,則執行cmd2,否則不執行cmd2

cmd1 || cmd2  : 先執行cmd2,  如果cmd1執行正確,則不執行cmd2,否則執行cmd2

7. 管道命令

豎線 | :  前乙個命令的輸出作為後乙個命令的輸如

如: 

ls -al /etc | less       <=  將ls的結果作為less的輸入,因此可用一些less命令的特性
(1)cut : 字串擷取命令 

cut -d '分隔符' -f fields

引數: -f : 取出第幾段,多個用逗號分開

如: echo $path | cut -d ':' -f 3,5

(2) grep : 字串查詢命令

如:last | grep 'root'

(3)排序命令:sort, wc, uniq

wc : 顯示檔案的行數,字數,字元數

8.  使用者身份切換

(1) su : 切換使用者

su [-lm] [-c 命令] [username]

引數: -l : 代表李longin-shell 方式登入系統

-m : 表示使用目前的環境設定而不讀取切換使用者的配置

-c : 僅執行一次命令

(2)sudo

相對於su需要切換目標使用者的密碼,sudo的執行則僅需要自己的密碼即可。並非所有賬戶都能執行sudo,而僅有/etc/sudoers內的使用者才能執行sudo.

sudo [-b] [-u 新使用者賬號]

如: sudo -u sshd touch /tmp/mysshd <= 以sshd的身份在/tmp下新建mysshd檔案

Linux學習隨記(一)

1.硬體裝置 1 各裝置在linux中的檔名 裝置檔名 ide硬碟 dev hd a d scsi sata usb 硬碟 dev sd a p u盤 dev sd a p 與sata相同 軟碟機 dev fd 0 1 印表機25針 dev lp 0 2 usb dev usb lp 0 15 滑鼠...

linux學習隨記 bash及其特性

1.程序 在每個程序看來,當前主機只存在核心和當前程序,程序時程式的別名,程序是程式的例項。2.ctrl a 命令列置首 ctrl e 命令列位 ctrl u 游標至命令列首 ctrl k 游標置行尾 3.history 命令歷史 命令歷史 n執行命令歷史第n條命令 4.bash支援的引號 弱引用 ...

LINUX命令隨記

pidof 找出正在執行程式的程序pid 格式 pidof program 找出program程式的程序pid,如果有多個就會全部列出,program不能是shell指令碼名稱。格式 pidof s program 找出program程式的程序pid,只列出乙個。single shot this i...