筆記開始整理時間:2018年3月29日19:22:02linux
本章內容:ios
1.用戶登陸shell
2.終端數據庫
3.shell介紹windows
4.執行命令緩存
5.簡單命令bash
6.Tap鍵補全服務器
7.命令行歷史網絡
8.bash快捷鍵ide
9.使用gnome-terminal
10.whatis
11.command --help
12.man and info
13.本地幫助文檔/usr/share/doc/
14.官網在線文檔
15.其餘網站和搜索
用戶登陸
root用戶
uid=0
一個特殊的管理帳戶,也被稱爲超級用戶
root已接近完整的系統控制
對系統誰還幾乎有無限的能力
除非必要,不要登陸爲root
普通(非特權)用戶
權限有限
形成損害的能力比較有限
終端teirminal
設備終端 鍵盤鼠標顯示器
物理終端 /dev/console
控制檯console
虛擬終端(tty:teletypewriters,/dev/tty#,#爲[1-6])
圖形終端(/dev/tty7)startx,xwindows)
CentOS 6:ctrl+alt+F7
CentOS 7:在哪一個終端啓動,即位於哪一個虛擬終端
串行終端(/dev/ttyS#)
ttyS
僞終端(pty:pseudo-tty,/dev/pts/#)
pty,SSH遠程鏈接
查看當前的終端設備:tty
交互式接口
啓動終端後,在終端設備附加一個交互式應用程序
GUI:Graphic User Interface
X protocol,windowmanager,desktop
Desktop:
GNOME(C,圖形庫gtk),
KDE(C++,圖形庫qt)
XFCE (輕量級桌面)
Cli:Commmand Line Interface
shell程序:sh,csh,tcsh,ksh,bash(bourn again shell) GPL zsh
什麼是shell
shell是Linux系統的用戶界面,提供了用戶與內核進行交互操做的一種接口
它接收用戶輸入的命令並把它送到內核去執行。
shell也被稱爲Linux的命令解釋器(command interpreter)
shell是一種高級程序設計語言
bash shell
GNU Bourne-Again Shell(bash)是GNU計劃中重要的工具軟件之一
目前也是Linux的標準shell,與sh兼容
CentOS默認使用
顯示當前使用的shell
echo $SHELL
顯示當前系統使用的全部shell
cat /etc/shells
命令提示符:prompt
echo $PS1 顯示提示符格式
PS1="\[\e[1;35m\][\u@\h \w]\\$\[\e[0m\]"
執行命令
輸入命令後回車
提請shell程序找到鍵入命令所對應的可執行程序或代碼,並由其分析後
提交給內核分配資源將其運行起來
在shell中可執行的命令有兩類
內部命令:由shell自帶的,並且經過某命令形式提供
help 顯示內部命令列表
enable 查看所有可用內部命令
enable -n cmd 禁用內部命令
enable cmd 啓用內部命令
enable -n 查看全部禁用的內部命令
外部命令:在文件系統路徑下有對應的可執行程序文件
which -a
which --skip-alias
whereis
區別指定的命令是內部或外部命令
type cmd
執行外部命令
hash緩存表
系統初始hash表爲空,當外部命令執行時,默認會從PATH路徑下尋找命令。
找到後會將這條命令的路徑記錄到hash表中,當再次使用該命令時,shell解釋
器首先會查看hash表,存在將執行之,若是不存在,將會去PATH路徑下尋找。利
用hash緩存可大大提升命令的調用速率
hash常見用法
hash 顯示hash緩存
hash -l 顯示hash緩存,包含路徑,可做爲輸入使用
hash -p path name 將命令全路徑path起別名爲name
hath -t name 顯示hash中name的路徑
hash -r 清除hash緩存
命令別名
alias 顯示當前shell進程全部可用的命令別名
alias NAME="VALUE" 定義別名NAME,其至關於執行命令VALUE
例如:
alias cdnet=‘cd /etc/sysconfig/network-scripts/`
unalias cdnet 取消別名cdnet
unalias -a 取消全部別名
PS: 在命令行中定義的別名,僅對當前shell進程有效,且註銷以後失效
如想永久有效,需寫入配置文件
.bashrc 僅對當前用戶有效
/etc/.bashrc 修改對全部用戶有效
編輯配置給出的新配置不會當即生效,需註銷或者使用
. .bashrc 或者
source .bashrc 執行以後配置生效
命令格式
COMMAND [OPTIONS] [ARGUMENTS..]
選項OPTIONS:用於啓用或者關閉命令的某個或某些功能
參數ARGUMENT,命令的做用對象,好比文件名,用戶名等
例如:
ls -a etc/
rm -rf /etc/ -rf=-r -f
PS:
參數和選項能夠多個,使用空白字符分隔
命令運行過程可中斷,使用ctrl+C,ctrl+D
多個命令能夠一行執行,使用;符號隔開,如:
pwd;ls;ifconfig
一個命令能夠分開成多行顯示,用\分開,如
p\
w\
d +回車
日期和時間:
Linux的兩種時鐘
date 顯示系統時間
clock 硬件時間,即主板bios芯片時間
date mmDDHHMMYYYY.ss 設置時間,格式爲月日時分年。秒
date -d "-2 day" 顯示2天以前的時間
date +%F 顯示時間,按照2018-03-31格式顯示
date "+%F %T" 顯示時間格式爲2018-03-31 02:08:14
date +%s 顯示時間爲1970年1月1日0點至今通過多少秒
date -d @nnnn 將秒時間換成正常時間
clock -s 硬件時間覆蓋系統時間
clock -w 系統時間覆蓋硬件時間
ll /etc/localtime 顯示當前時區
timedatectl list-timezones 顯示所有時區
timedatectl set-timezones Asia/Shanghai 設置時區爲上海
cal 顯示日曆
cal -y 顯示全年日曆
cal 5 1978 顯示1978年5月日曆
PS:更多用法能夠參見date --help
簡單命令
halt,poweroff 關機
init 0 關機
reboot / init 6 重啓
reboot -f 強制重啓,不調用shutdown
reboot -p 切斷電源,至關於關機
shutdown 1分鐘以後關機
shutdown -r 10 wall 10分鐘後重啓,且給全部用戶發送提醒信息
shutdown -c 退出shutdown
shutdown -now 當即關機
shutdown -r 21:30 21:30重啓
PS:linux提供了不少種關機方式,有時會有細微的差異,實際工做中服務器的
關機重啓還需慎重。
tty 查看當前在哪一個終端(tty1-6,pts/)
who 查看當有全部的登陸會話
whoami 查看本終端當前用戶
w 系統當前全部的登陸會話以及所作的操做
ifconfig 查看網絡連接
nano /etc/motd 簡單的文本編輯命令
screen 新建會話命令
screen -S help 新建help會話
screen -ls 顯示當前全部screen會話
screen -x help 加入help會話
ctrl+a,d 脫離當前screen會話
screen -r 恢復斷開的screen會話
exit 離開會話
PS: screen命令的功能可使不一樣終端使用同一個會話窗口,要求鏈接的終端
接入同一臺主機,且使用相同的帳號登陸。
echo 顯示字符
echo abc 顯示abc,默認-E,會去掉\的解釋做用
echo -n aaa 輸出aaa,結束以後不換行
echo -e "aaa\a" 輸出aaa且發出警告音,-e選項會開啓\解釋功能
\b 退格鍵
\c 最後不加換行字符,效果等於-n
\n 換行且光標移到行首
\r 回車,即光標移到行首,但不換行
\t 插入tap
\\ 插入\字符
\0nnn 插入八進制數nnn所表明的ASCII字符
\xHH 插入十六進制數HH所表明的ASCII字符
單引號,雙引號,反向單引號以及 $() 和 {} 的用法
能夠嘗試查看執行如下命令觀察輸出
echo echo $PS1 輸出結果:echo \[\e[1;35m\][\u@\h \w]\$\[\e[0m\]
echo "echo $PS1" 輸出結果:同上
echo 'echo $PS1' 輸出結果:echo $PS1
echo `echo $PS1` 輸出結果:\[\e[1;35m\][\u@\h \w]\$\[\e[0m\]
能夠看出:
單引號之內皆爲字符,不識別變量和命令
雙引號能夠識別變量,但不識別命令操做
反向單引號,可識別變量和命令
可是若是須要嵌套輸出命令結果:如:
echo echo pwd
若是最終須要輸出命令pwd的顯示結果,
echo `echo `pwd`` 是沒法識別pwd的,即反向單引號沒法嵌套使用
echo `echo $(pwd)` 此爲正確用法
其中$(pwd) 等同於`pwd` 爲調用命令輸出的標準用法,且可嵌套
如以上命令還能夠寫成:
echo $(echo $(pwd))
echo f{1,3,5} 顯示f1 f3 f5
touch f{1..10} 建立文件f1 f2..f10
touch a{1..30..2} 建立文件a(1-30) 間隔爲2
rm file{00000..00100} 刪除file00000-file00100
Tab鍵的使用
命令補全:
用戶給定的字符串只有一條惟一對應的命令時候是,按tab鍵會直接補全命令
如不惟一,單機tab無反應,再次按下tab鍵,則會給出全部匹配列表
ifcon+tab鍵 ifconfig
ifc+2tap 列出全部ifc開頭的命令
路徑補全:
在輸入路徑時如給出的字符串在上級目錄對應惟一的一個目錄或者文件,按下
tap鍵,直接補全
如不惟一,兩下tap鍵會列出知足條件的全部目錄或者文件列表
cmd 2tap 全部子命令或文件補全
ifc+2tap 全部以ifc開頭的命令
/2tap 顯示全部根目錄下一級目錄,包括隱藏目錄,但不顯示文件
./2tap 當前目錄下子目錄,包括隱藏目錄,不顯示文件
*2tap 當前目錄下子目錄,不包含隱藏目錄,不顯示文件
~2tap 顯示全部用戶列表
$2tap 顯示全部變量
@2tap /etc/hosts記錄,sentos7不支持
=2tap 至關於ls -A,sentos7不支持
命令行歷史
重複前一個命令,有4種方法
使用上方向鍵,並回車執行
按!!,並回車執行
輸入!-1,並回車執行
按ctrl+P,並回車執行,至關於上方向鍵
!:0 執行前一條命令,去除參數
ctrl+n 顯示當前歷史中的的下一條命令,但不執行,至關於下方向鍵
ctrl+j 執行當前命令
ctrl+r 在命令歷史中搜索命令
ctrl+g 從歷史搜索模式中退出
!n 執行history命令輸出對應序號n的命令
!-n 執行history歷史中倒數第n個命令
!l 重複前一個以l開頭的命令
!?s 重複前一個包含s的命令
!l:p 顯示前一個以l開頭的命令結果
!$:p 打印輸出!$(上一條命令的最後一個參數)的內容
!*:p 打印輸出!*(上一條命令的全部參數)的內容
^string 刪除上一條命令中的第一個string字符串
^string1^string2 將上一條命令中的第一個string1替換成sting2
!:gs/string1/string2 將上一條命令中的全部string1換成string2
!$ 調用前一個命令中最後一個參數
esc,. 調用前一個命令中最後一個參數
alt+. 調用前一個命令中最後一個參數
cmd !^ 利用上一個命令的第一個參數作cmd的參數
cmd !$ 利用上一個命令的最後一個參數做爲cmd的參數
cmd !* 利用上一個命令的所有參數做爲cmd的參數
cmd !:n 利用上一個命令的第n個參數最爲cmd的參數
cmd !n:^ 調用第n條命令的第一個參數
cmd !n:$ 調用第n條命令的最後一個參數
cmd !n:m 調用第n條命令的第m參數
cmd !n:* 調用第n條命令的所有參數
history 命令
history 顯示命令歷史記錄
history -c 清空歷史記錄
history -d nnn 刪除歷史記錄中的第nnn個命令
history n 顯示最近的n條記錄
history -a 追加本次會話新執行的命令歷史列表至歷史文件
history -r 讀歷史文本附加到歷史列表
history -w 保存歷史列表到指定的歷史文件
history -n 讀歷史文本中未讀過的行到歷史列表
history -p $(cmd) 執行命令cmd,不生成歷史,如不加引號,
會直接打印命令
history -s cmd 生成記錄cmd,可是不執行,如用$(),命令會執行,
執行的結果會記錄到歷史
HISTSEZE 命令歷史就的條數
HISTFILE 指定歷史文件,默認爲~/.bash_history
HISTFILESIZE 命令歷史文件記錄的條數
HISTTIMEFORMAT="+%F %T「 歷史記錄顯示時間
HISTIGNORE="str1:str2*..." 忽略str1命令,str2開頭的文件
HISTCONTROL 環境變量
=ignoredups 默認,忽略重複的命令,連續且相同爲重複
=ignorspace 忽略全部以空白開頭的命令
=ignoreboth 至關於dups+space
erasedups 刪除重複命令
以上變量存放 /etc/profile 或~/.bashrc
bash的快捷鍵
ctrl+l 清屏,至關於clear命令
ctrl+o 執行當前命令,並從新顯示本命令
ctrl+s 阻止屏幕輸出,鎖定
ctrl+q 容許屏幕輸出
ctrl+c 終止命令
ctrl+z 掛起命令
ctrl+a 光標移到命令行首,至關於Home
ctrl+e 光標移動命令行尾,至關於end
ctrl+f 光標向右移動一個字符
ctrl+b 光標向左移動一個字符
alt+f 光標向右移動一個單詞尾
alt+b 光標向左移動一個單詞尾
ctrl+u 從光標處刪除至命令行首
ctrl+k 從光標處刪除至命令行尾
alt+r 刪除當前整行
PS:還有部分快捷鍵用法以及圖形界面快捷鍵用法並未列出,alt組合鍵常常
和其餘軟件衝突
得到幫助
##得到幫助的能力決定了技術的能力。
##Linux提供了多種得到幫助的方式
whatis 顯示命令的簡短描述,如:
whatis ls
makewhatis sentos6安裝whatis
mandb sentos7安裝whatis
help cmd 內部命令用法介紹
cmd --help 外部命令用法介紹,有些命令是-h
man bash 所有內部命令用法接受
man -f 簡短描述,等於whatis
man cmd 得到命令cmd的man幫助
man 5 cmd 看命令man幫助的第5章節
man -k keyword 列出全部匹配的頁面,使用wahtis數據庫
man章節
#1:用戶命令
#2:系統調用
#3:C庫調用
#4設備文件及特殊文件。
#5:配置文件格式
#6:遊戲
#7:雜項
#8:管理類的命令
#9:Linux內核API
man幫助段落說明
NAME 名稱及簡要說明
SYNOPSIS 用法格式說明
[] 可選內容
<> 必選內容
a丨b 二選一
{} 分組
... 同一內容可出現屢次
DESCRIPTION 詳細說明
OPTIONS 選項說明
FILES 相關文件
AUTHOR 做者
COPYRIGHT 版本信息
REPORTING BUGS bug信息
SEE ALSO 其餘幫助參考
man文檔查看相關操做
space 向下翻屏
b 向上翻屏
G 跳轉至文件尾部
1G 翻至文件首部
q 退出
搜索方式:
/keyword 從當前位置向文件尾部搜索,不區分字符大小寫
n:下一個
N:上一個
?keyword 從當前位置向文件首部搜索,不區分字符大小寫
n:下一個,與搜索方向同向
N:上一個,與搜索方向反向
導航info頁
info cmd 打開info幫助文檔
Home 顯示主題首部
enter 進入選定連接
tab鍵 移動到下一個連接
d 顯示主題目錄
n/p/u/l 進入下/前/上一層/最後一個連接
s 文字文本搜索
q 退出info
其餘得到幫助的途徑
經過本地文檔獲取幫助
/usr/share/doc/ 大多數安裝了的軟件包的子目錄,包括了這些軟件的
相關原理說明
在線文檔獲取幫助
比較大型的軟件,能夠上官方網站獲取官方文檔說明
經過發行版官方的文檔光盤或者網站能夠得到
安裝指南、部署指南、虛擬化指南等
紅帽知識庫和官方在線文檔
紅帽全球技術支持服務
筆記整理完成時間:2018年3月31日14:44:00