目錄
Linux用戶登錄以及命令執行原理
一、用戶分類
Linux的用戶分為兩類
1、root用戶
- 一個特殊的管理賬戶
- 接近完整的系統控制
- 無窮大的權力
2、普通用戶
- 權力有限
- 對系統造成不可恢復損害能力低
二、登錄界面
1、交互式接口
啟動終端后,在終端設備附加一個交互式應用程序
? ? ? GUI:Graphic User Interface(圖形用戶接口)。
他提供了很多桌面環境系統,像Windows一樣,有窗口、圖標和菜單。常見
的有一下三種
- GNOME (C,圖形庫gtk)
- KDE (C++,圖形庫qt),下圖為CentOS6.10的KDE界面
- XFCE (輕量級桌面)
PS: 如果用戶需要用到圖形處理小工具,需要查看圖形工具支持的圖形庫,選擇對應的GUI,否則小工具無法使用。
? ? CLI:Command Line Interface(文本模式)
?登錄畫面
[root@hai 6~]#
~表示在家目錄中?? #管理員??? $普通用戶
PS:下圖第一,第二行的內容來自/etc/issue這個文件,可修改,步驟如下
- cat /etc/issue查看文件格式
- 方法一、通過man pam_issue查看各參數含義
- 方法二、whitis issue? 查看幫助文件章節
- man issue? 得到也可以看看 agetty(8)? mingetty(8)因為8是管理類的命令,所以直選這兩個;
man 8 agetty 查詢;
搜索hostname,得到參數說明。
- 英文看傻了。。。堅持習慣,試著修改
2、界面切換
Linux預設情況下會提供六個terminal(終端)來讓使用者登錄,切換的方式為[Ctrl]+[alt]+[F1]~[F6]的組合鍵,系統會將[F1]~[F6]命名為tty1~tty6。
- [Ctrl]+[alt]+[F2] ~[F6]:文字接口登錄tty2~tty6
- [Ctrl]+[alt]+[F2] : 圖形接口(桌面)
PS:如果你的Linux預設使用的純文本界面,那么tty1~tty6就都會被文本界面占用
- echo $ {shell}查看當前使用的shell
- cat /etc/shells查看系統有的shell
3、免密登錄Linux
學習階段,我們要不停的在個版本Linux之間切換,可以考慮使用免密登錄,工作中切不可這么操作。
使用nano命令編制文本ect/gdm/custom.conf如下圖所示,在[daemon]下面輸入AutomaticLoginEnable=true;AutomaticLogin=root(其中ALE為大寫)保存,退出,重新登錄實驗一下。
三、通過文本界面了解本機硬件
1、查看當前CentOS版本
- ????使用cat命令查看文件/etc/centos-release
- lsb_release –a也可以查看
2、查看內核版本
- uname –r
3、查看cpu參數
- lscpu(圖很長,簡略了)
4、查看內存
- free [-kmgh]分別以k、M、G、易懂,單位表示
5、查看硬盤情況
- lsblk
6、查看網卡
- dmesg 查看啟動的硬件
- dmesg |grep eth 查看網卡
四、shell的介紹
實際上Shell是一個命令解釋器,它解釋由用戶輸入的命令并且把它們送到內核。不僅如此,Shell有自己的編程語言用于對命令的編輯,它允許用戶編寫由shell命令組成的程序。
1、Linux中常用的shell種類
- sh
是一個快捷方式,已經被/bin/bash所取代。
- csh
C shell 使用的是“類C”語法,csh是具有C語言風格的一種shell,其內部命令有52個,較為龐大。目前使用的并不多,已經被/bin/tcsh所取代
- tcsh
tcsh是csh的增強版,與 C shell 完全兼容。
- bash
大多數Linux系統默認使用的shell,bash shell 是 Bourne shell 的一
個免費版本,它是最早的 Unix shell,bash還有一個特點,可以通過help
命令來查看幫助。包含的功能幾乎可以涵蓋shell所具有的功能,所以一般
的shell腳本都會指定它為執行路徑。
- zsh
目前Linux里最龐大的一種shell:zsh。它有84個內部命令,使用起來也比較復雜。一般情況下,不會使用該shell。
PS: CentOS默認使用的是bash,bash兼容sh,還有一種nologin的shell是給
底層計算機使用的。
2、在shell中可執行的命令類
1內部命令:自己內建的命令集,開機時加載到內存中。
- Help 可以列出所有的內部命令用法幫助
- enable cmd ?????啟用內部命令
- enable –n cmd ??禁用內部命令
- enable –n ????查看所有禁用的內部命令
- hexdump –c ????查看二進制碼
2外部命令:在文件系統下有對應的可執行程序文件。系統通過變量PATH(代表一堆文件夾的集合)去搜索,執行搜索到的第一個文件。
另外,外部命令在第一次執行后,會放到hash里,在下一次執行時,shell解析器首先會查看hash表,存在將執行,常見hash用法如下
- hash 顯示hash緩存
- hash -p path name 顯示hash緩存
- hash -d name 清除name緩存
- hash -r 清除緩存
- hash -l 顯示hash緩存,可作為輸入使用
3、判斷命令
- type cmd
- type –a cmd顯示所有存放位置
4、命令別名
在管理和維護Linux系統過程中,將會有一些很長的命令或用法經常被用到,這時候可以使用命令別名來簡化。
? 1? 系統定義的別名
通常情況下,系統中已經定義了一些別名,要查看已經定義的命令別名,可以使用alias命令,從下圖可以看出使用cp命令時,系統會用cp –i代替cp。
- alias 顯示當前shell所有可用的命令別名
2? 用戶自定義別名
使用命令alias將cd /etc/sysconfig/network-scripts重新命名為cdnet后,在執行cdnet時,系統會自動用cd /etc/sysconfig/network-scripts將其替代。
- alias 別名=“原名”
3? 取消定義的別名
- unalias name 刪除定義的別名
- unalias –a 刪除所有別名
4? 保存別名設置
Linux想要永久保存,就要修改文件,可以在系統別名目錄中添加別名配置文件。
定義某個用戶想要定義自己的命令別名,可以將命令添加到.bashrc中,重新注銷或者..bashrc,就可以生效了。
PS: ..bashrc前面的.相當于source命令重讀文件。
定義全局別名,通常將命令添加到/etc/bashrc中,不建議定義全部用戶。
5忽略別名
- \aliasname
- “aliasname”
- ?? ‘aliasname’
- command aliasname
- /path/commmand
5、命令讀取流程
- 判斷路徑:是否以路徑的方式輸入,是的話直接執行
- 檢查別名:別名的優先級要高于內部命令,優先執行
- 判斷命令類型:是內部命令直接執行
- hash /bin/cat: 從hash中提取已用過的外部命令,有就執行
- PATH變量查找: has中沒有,系統通過變量PATH查找
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/103497