Linux運維基礎
Linux操作系統
-
- Linux哲學思想
一切皆文件(包括硬件),99.9%
小型,單一用途的程序
鏈接程序,共同完成復雜的任務
避免令人困惑的用戶界面
配置數據存儲在文本中
1.2linux用戶
1.2.1root用戶
一個特殊的管理帳戶
也被稱為超級用戶
root已接近完整的系統控制
對系統損害幾乎有無限的能力
除非必要,不要登錄為?root?
- Linux哲學思想
1.2.2普通(?非特權?)用戶
權限有限
造成損害的能力比較有限
2.1 SHELL
2.1.1bash shell
GNU Bourne-Again Shell(bash)是GNU計劃中重要的工具軟件之一,目前也是 Linux標準的shell,與sh兼容
顯示當前使用的shell
echo ${SHELL}
顯示當前系統使用的所有shell
cat /etc/shells
3.linux命令
3.1 命令提示符
3.2執行命令
輸入命令後回車
提請shell程序找到鍵入命令所對應的可執行程序或代碼,並由其分析後提交給內核分配資源將其運行起來
在shell中可執行的命令有兩類
內部命令:由shell自帶的,而且通過某命令形式提供
help 內部命令列表
enable cmd 啟用內部命令
enable –n cmd 禁用內部命令
enable –n 查看所有禁用的內部命令
外部命令:在文件系統路徑下有對應的可執行程序文件
查看路徑:which -a |--skip-alias ; whereis
type COMMAND
3.3命令別名
顯示當前shell進程所有可用的命令別名
alias
定義別名NAME,其相當於執行命令VALUE
alias NAME=‘VALUE‘
在命令行中定義的別名,僅對當前shell進程有效
如果想永久有效,要定義在配置文件中
僅對當前用戶:~/.bashrc
對所有用戶有效:/etc/bashrc
編輯配置給出的新配置不會立即生效
bash進程重新讀取配置文件
source /path/to/config_file
. /path/to/config_file
撤消別名:unalias
unalias [-a] name [name ...]
-a 取消所有別名
如果別名同原命令同名,如果要執行原命令,可使用
“ALIASNAME”
’ALIASNAME’
command ALIASNAME
/path/commmand
3.命令格式
COMMAND [OPTIONS...] [ARGUMENTS...]
選項:用於啟用或關閉命令的某個或某些功能
短選項:-c 例如:-l, -h
長選項:--word 例如:--all, --human-readable
參數:命令的作用對象,比如文件名,用戶名等
註意:
多個選項以及多參數和命令之間使用空白字符分隔
取消和結束命令執行:Ctrl+c,Ctrl+d
多個命令可以用;符號分開
一個命令可以用\分成多行
4 命令
tab鍵
命令補全
內部命令:
外部命令:bash根據PATH環境變量定義的路徑,自左而右在每個路徑搜尋以給定命令名命名的文件,第一次找到的命令即為要執行的命令
用戶給定的字符串只有一條惟一對應的命令,直接補全
否則,再次Tab會給出列表
路徑補全
把用戶給出的字符串當做路徑開頭,並在其指定上級目錄下搜索以指定的字符串開頭的文件名
如果惟一:則直接補全
否則:再次Tab給出列表
history
history [-c] [-d offset] [n]
history -anrw [filename]
history -ps arg [arg...]
-c: 清空命令歷史
-d offset: 刪除歷史中指定的第offset個命令
n: 顯示最近的n條歷史
-a: append, 追加本次會話新執行的命令歷史列表至歷史文件
-r: 讀歷史文件附加到歷史列表
-w: 保存歷史列表到指定的歷史文件
-n: 讀歷史文件中未讀過的行到歷史列表
-p: 展開歷史參數成多行,但不存在歷史列表中
-s: 展開歷史參數成一行,附加在歷史列表後
Bash
Bash的使用技巧
命令行展開:{}, ~
命令替換:$(command), command
命令補全:$PATH
路徑補全:從指定的起始位置進行路徑搜索,
命令歷史:.bash_history
HISTCONTROL
ignoredups
ignorespace
ignoreboth
whatis
顯示命令的簡短描述
使用數據庫
剛安裝後不可立即使用
makewhatis | mandb制作數據庫
使用示例:
whatis?cal 或 man –f cal
help
顯示用法總結和參數列表
使用的大多數,但並非所有的
示例:
date?--help
Usage:?date?[OPTION]...?[+FORMAT]?or: date?[-u|--utc|--universal]?[MMDDhhmm[[CC]YY][.ss]]
[]?表示可選項
CAPS或?<>?表示變化的數據
?...?表示一個列表
x |y| z?的意思是“?x?或?y?或?z?“
-abc的?意思是-a -b –c
{ } 表示分組
man
提供命令幫助的文件
手冊頁存放在/usr/share/man
幾乎每個命令都有man的“頁面”
man頁面分組為不同的“章節”
統稱為Linux手冊
man命令的配置文件:/etc/man.config | man_db.conf
MANPATH /PATH/TO/SOMEWHERE: 指明man文件搜索位置
man -M /PATH/TO/SOMEWHERE COMMAND: 到指定位置下搜索COMMAND命令的手冊頁並顯示
中文man需安裝包man-pages-zh-CN
info
man常用於命令參考?,GNU工具info適合通用文檔參考。
沒有參數,列出所有的頁面
info ?頁面的結構就像一個網站
每一頁分為“節點”
鏈接節點之前?*
info [?命令?]
Linux運維基礎