一、系統管理和維護
1.1Tab補全
輸入Tab一次: 輸入的指令能夠唯一辨別,直接跳出指令
輸入的内容不能唯一表示,再按Tab,顯示出所有比對指令
Tab指令補全的原理:vi, 系統根據環境變量$PATH去檔案下尋找指令
1.2 Shell指令操作
Ctrl+a 跳到指令一行最前面
Ctrl+e 跳到指令一行最後面
Ctrl+k 删除光标後面所有指令
Ctrl+u 删除光标前面所有内容
Ctrl+l 清空螢幕所有内容
Ctrl+r 搜尋曆史指令
Ctrl+c 停止目前正在運作的程式
1.3 vim操作
編輯模式 : i: 在目前光标下插入
O:上一行插入
o:下一行輸入
指令行模式: :q q!
: w w! wq!
: x (儲存退出)
: set nu
1.4 History指令
!10 !+曆史指令
! $ 執行最後一次曆史指令
help history 檢視幫助
history -w 把曆史指令清單同步到曆史指令檔案中
echo $HISTFILE 檢視曆史指令檔案位置
如何設定曆史指令的儲存數量
echo $HISTSIZE
vim /etc/profile
HISTSIZE=10
source /etc/profile
如何設定曆史指令的時間戳和使用使用者
vim /etc/profile
export HISTTIMEFORMAT="%F %T
whoami
"
source /etc/profile
1.5 alias
[[email protected] ~]# alias net=“vim /etc/sysconfig/network-scripts/ifcfg-eth0” #定義别名
[[email protected] ~]# unalias net #取消别名
[[email protected] ~]# \net #跳過别名
[[email protected] ~]# vim /etc/bashrc #讓别名永久生效
alias net=“vim /etc/sysconfig/network-scripts/ifcfg-eth0”
:wq
[[email protected] ~]# source /etc/bashrc
1.6 變量
#!/bin/bash
who=‘whoami’ #全局變量,作用于目前檔案
test(){IP=‘192.168.254.125’ #局部變量,作用于一行代碼,或者代碼塊
ping $IP
echo $who}
test
環境變量:正對于目前的shell下的所有子程序都生效
1.7 标準輸入、輸出
>filename 标準輸出到檔案
[[email protected] ~]# ls >file1
2> errname 錯誤輸出到檔案
[[email protected] ~]# mysql 2>err
重定向:
三種方法将标準輸出與錯誤輸出放入同一個檔案
>filename 2>errname 将标準輸出到filename檔案,錯誤輸出到errname
[[email protected] ~]# ll anaconda-ks.cfg anaconda-ksl.cfg >ceu 2>err
[[email protected] ~]# ll anaconda-ks.cfg anaconda-ksl.cfg &>file4
[[email protected] ~]# ll anaconda-ks.cfg anaconda-ksl.cfg >file5 2> &1
标準輸入到file3
[[email protected] ~]# ll > test1[[email protected] ~]# ll >> test1
[[email protected] ~]# fdisk 2>test2
[[email protected] ~]# fdisk 2>>test2
[[email protected] ~]# ll anaconda-ks.cfg anaconda-ksl.cfg >test3 2>test4[[email protected] ~]# ll anaconda-ks.cfg anaconda-ksl.cfg &>test5[[email protected] ~]# ll anaconda-ks.cfg anaconda-ksl.cfg >>test5 2>&1
1.8 特殊符号、通配符
“|”:把上一個指令交給下一個指令繼續處理
[[email protected] ~]# ll |grep err
[[email protected] ~]# ip a |grep inet
[[email protected] ~]# ip a |grep inet |tee test6
“tee”: 把過濾的結果列印到檔案中
“…”: 上一級目錄
[[email protected] ~]# ll …/
[[email protected] ~]# cd …/
“.”: 代表目前目錄
“;”: 代表多條指令的分割 [[email protected] ~]# a=abc;echo $a
“``” (反撇号) 把内容還原成指令 [[email protected] ~]# a=
ls
;echo $a
“”: (星号) 比對所有 [[email protected] ~]# ll te
“?”: 比對單個任意字元 [[email protected] ~]# ll te?
二、系統管理的常用指令
ls 顯示的是連結檔案及連接配接目錄
ls -a 顯示所有的隐藏檔案及目錄
ls -A 隻顯示隐藏檔案
ls -l 等同于ll
ls -L 顯示的是連接配接路徑下的真實檔案
2.1絕對路徑、相對路徑、pwd
用絕對路徑表示: index.html;/root/test/app/index.html
用相對路徑表示: index.html;app/index.html^C
pwd 顯示目前工作目錄,目前路徑 -p 顯示連結檔案的真實路徑
cd - 切換到上一次檔案所在路徑
cd~ 切換到使用者的家目錄
cd…/…/ 切換到上上層目錄
[[email protected] ~]# cd …/…/
date
時鐘顯示格式拼接:
[[email protected] ~]# date “+%Y-%m-%d %H:%M:%S”
修改系統時間:
[[email protected] ~]# date -s 17:54:30
顯示時區:
[[email protected] ~]# date +%Z
uname
[[email protected] ~]# uname -a 檢視系統核心資訊
[[email protected] ~]# uname -r
![]()
系統管理維護與常用指令
free
[[email protected] ~]# free
[[email protected] ~]# free -m
[[email protected] ~]# free -h
![]()
系統管理維護與常用指令 ![]()
系統管理維護與常用指令
mem: 記憶體
swap: 在磁盤上格式化的一個和記憶體格式相同的分區
buffer: 資料讀的緩存空間
cache: 資料寫的緩存空間
reboot 重新開機系統
shutdown -h now 關機