Linux系統登錄的兩種方式
GUI:圖形界面 Graphic User Interface
默認在Linux下面有三種可用的圖形界面程序可選,分別為
1.gnome(c,圖形庫gtk)
2.kde(c++,圖形庫qt)
3.xface(輕量級桌面)
每一種圖形界面下面開發的軟件并不兼容,因為它們開發時候所用的開發語言也各不相同
啟動方式:cli模式下面輸入 startx 或者 init 5
CLI:命令行界面 Command Line Interface
Linux的CLI模式下默認的命令解析器是Shell
Shell是Linux系統的用戶界面,提供了用戶與內核進行交互操作的一種接口。它接收用戶輸入的命令并把它送入內核去執行。
Shell是一種高級程序設計語言
Linux下面有多種可用的Shell語言可選擇,包括
1.sh bourne
2.csh c語言版本
3.tcsh c語言加強版
4.ksh 商業版本,如AIX
5.bash bourne again shell ,linux默認SH
6.zsh 等等
也可以輸入命令 cat /etc/shells 查看系統系統里面的所有shell
可通過輸入 echo $SHELL 來查看當前系統的默認shell
其中nologin給系統一些不需要登陸的程序用的
GUI和ClI命令行可以自由切換,不同系統版本之間的不同
通過物理按鍵切換
ctrl+alt+F1-6 字符, F7 圖形界面,centos5
ctrl+alt+F1 圖形,F2-F7字符 , centos6 7
可以通過命令輸入進行切換
chvt x (x=1-7)
注意,通過startx和init 5來啟動的圖形界面方式是有所有不同的
startx啟動的圖行界面,當通過ctrl + F1切換到界面時候,可以看到界面里面有很多命令輸入的信息,而再通過按ctrl + F7的時候才會正確顯示圖形界面,可以判斷為這種方式啟動的圖形界面并不是直接啟動圖形界面的
init 5啟動的圖形界面,按ctrl + F1的時候,能正常切換到圖形界面,可以判斷為這種方式是直接啟動圖形界面,而不依靠其他程序。
不過在大家學習的過程中,建議大家還是使用CLI命令模式吧,shell用默認的bash即可。
CentOS在安裝桌面之后,將圖形界面設置為默認模式,給PC內存帶來較大壓力,所以希望修改系統的默認啟動模式為命令號界面,而不啟動圖形界面。方法如下:
CentOS6的方法
1.以 root用戶登錄系統;或者 用su切換到超級用戶模式;
2.修改/etc/inittab 文件:
vim /etc/inittab
將最后一句:
id:5:initdefault:
修改為:
id:3:initdefault:
保存退出,重啟系統即可。
CentOS7的方法
在CLI下面輸入
系統登錄界面
Linux登錄的用戶分為兩種
-
root用戶,超級管理員,提示符是# ,如[root@localhost~]#
-
普通用戶,權限有限制,提示符是$ ,如[w@localhost ~]$
[root@localhost~]這個稱為PS1,靠環境變量定義
用戶的PS1命令提示符是有格式的,輸入 echo $PS1可以查看現在用戶的命令提示符格式
例如 \u 表示用戶
\h 表示主機名
\W 表示當前位置
還有其他參數,暫時就不一一詳說
系統登陸歡迎界面
當我們進入系統看見的歡迎登陸界面,如下圖
該文件在 /etc/issue 里面,而且CentOS6和CentOS7也有點不一樣
這是CentOS 6
這是CentOS 7
這里里面可以看到,文檔里面的數據跟我們看到的數據不一致,是因為文檔里面的是參數,這些參數又調用了其他地方的參數,所以我們看起來就不一樣了
還有的是我們可以cat /etc/redhat-release的文檔也同樣可以查看到系統的信息
還有注意一點的就是,這個登陸提示信息嚴禁welcome之類字眼,以免被黑以后打官司對自己不利的事
SHELL的命令類型
SHELL的命令分為兩種
內部命令:
由shell自帶的,而且通過某命令形式提供
enable命令可以啟用或禁用內部命令
外部命令:
在當前系統的某文件系統路徑下有對應的可執
系統里面執行的命令是有對應路徑的,系統通過變量PATH可以知道外部命令的路徑
命令還有命令別名,如下圖
別名可以通過alias COMMAND ='COMMAND -參數'之類格式實現
不需要別擰,也可以通過 unalias COMMAND 來刪除別名
而且別名的優先級都是最高的
可以通過如\ls、‘ls’、/usr/bin/ls 等方法取消使用已定義的別名
別名的命令都是存儲在內存里面,開機自動加載到內存里面
這些命令的優先級為
別名命令>內部命令>緩存命令>外部命令
其他相關命令:
type COMMAND:查看命令的類型
which COMMAND:查看命令文件位置
hash 已經加載到內存的外部命令
whereis COMMAND:查看文件路徑及其幫助文件等路徑
命令的區別:
內部命令,系統開機自動加載,不表示為單獨文件
外部命令,表示為一個單獨文件,可以用ls的命令查看到相應文件
命令的格式
COMMAND [OPTIONS…] [ARGUMENTS…]
選項:用于啟用或關閉命令的某個或某些功能;
短選項:-c, 例如:-l, -h
長選項:–word,例如:–all, –human-readable
參數:命令的作用對象,比如文件名,用戶名等
注意:
1、多選項,以及多參數和命令之間使用空白字符分隔
2、取消和結束命令執行:Ctrl+c,Ctrl+d
3、多個命令可以用;符號分開
4、一個命令可以用\分成多行
一般的寫命令的順序是 命令 +選項 +參數,其他順序可能會有問題
中斷命令的方法,ctrl+c
命令補全
命令+ '\' 表示換行寫命令,不過使用的時候注意不要漏了空格之類
可以用:號隔開同時輸入多個命令,如 ls:cd:who
命令補全
內部命令:
外部命令:bash根據PATH環境變量定義的路徑,自左而右在每個路徑搜尋以給定命令名命名的文件,第一次找到的命令即為要執行的命令
用戶給定的字符串只有一條惟一對應的命令,直接補全
否則,再次Tab會給出列表
路徑補全
把用戶給出的字符串當做路徑開頭,并在其指定上級目錄下搜索以指定的字符串開頭的文件名
如果惟一:則直接補全
否則:再次Tab給出列表
centos7系統上面支持長選項的命令補全,6或者以前版本都不可以,這個主要是由于bash版本的問題
幫助文件的使用方法
幫助文件的獲取途徑
whatis
command –help
man and info
本地幫助文檔/usr/share/doc
官網在線文檔
其他網站和搜索
內部命令查找幫助的方法:
#help COMMAND
#man bash
外部命令查找幫助的方法:
(1) # COMMAND –help
# COMMAND -h
(2) 使用手冊(manual)
# man COMMAND
(3) 信息頁
# info COMMAND
(4) 程序自身的幫助文檔
README
INSTALL
ChangeLog
(5) 程序官方文檔
官方站點:Documentation
(6) 發行版的官方文檔
(7) Google
whatis命令:
whatis幫助文檔,要系統安裝以后過一段時間才能完全安裝,如果一定需要用的話,可使用命令makewhatis命令
whatis = man -f
man命令:
提供命令幫助的文件
手冊頁存放在/usr/share/man
幾乎每個命令都有man的“頁面”
man頁面分組為不同的“章節”
統稱為Linux手冊
man [章節] 命令
man命令的配置文件:/etc/man.config | man_db.conf
MANPATH /PATH/TO/SOMEWHERE: 指明新手冊文件搜索位置
# man -M/PATH/TO/SOMEWHERE COMMAND: 到指定位置下搜索COMMAND命令的手冊頁并顯示
man命令有9個章節,其中重點關注1、4、5、8章節
1: 用戶命令
4: 設備文件及特殊文件
5: 配置文件格式
8: 管理類的命令
bash的快捷鍵
Ctrl+l 清屏,相當于clear命令
Ctrl+c取消命令的執行
Ctrl-a 會移動到命令行的最前面
Ctrl-e 會移動到命令行的最后面
Ctrl-u 會刪除到行首
Ctrl-k 會刪除到行尾
arrow ctrl-b ctrl-f會向左或向右移動一個字符
Esc-b左移一個單詞
Esc-f右移一個單詞
其他中重要命令整理:
date 顯示當前系統時間
date MMDDhhmm[cc]YY.ss
date[+FORMAT]
%Y:四位年份
%y:兩位年份
%m:月
%M:分鐘
%d:日
%h:英文簡寫的月
%H:時
%S:秒
%s:現在距離1970年1月1號0點0分(unix元年)的秒數,timestamp(時間戳)
%D:月/日/年
%F:年-月-日
%T:時:分:秒
clock,hwclock
-s:以硬件時鐘為準 –hctosys
-w:以軟件時鐘為準 –systohc
Linux有兩個時鐘
硬件時鐘:
軟件時鐘:開機時讀取硬件時鐘
cal 顯示日歷
echo命令:
-n 不在字符的最后自動換行
-e 若字符串中出現以下字符,則特別加以處理,而不會將它當成一般文字輸出:
""中間 只是變量引用
''最傻的強引用,字符竄引用
“最聰明的 命令引用
history命令:查看命令歷史
-d 數字 刪除第數字條記錄
-c 清空history列表
-a:追加當前回話的命令到歷史列表中去
-n:讀取所有在回話列表中的 但是不在當前回話列表中
history靈活用法:
!數字:執行history中第數字條的命令
?。。荷弦粭l命令
!-數字:表示執行命令列表中的倒數第數字條命令
!$:執行上個命令中的最后一個參數:ESC,.
!string:執行命令列表中的最近一次以string開頭的命令
命令歷史相關的環境變量
HISTSIZE:歷史命令中可以保存的個數
HISTFILE: 歷史命令保存的文件
HISTFILESIZE:歷史文件中可以保存的命令個數
HISTCONTROL:控制命令歷史的生成機制
ignoredups:忽略記錄重復的命令,連續的相同命令
ignorespace:以空格開頭的命令不會被記錄
ignoreboth:同時具有上面兩種特性
screen命令:一個遠程的同步命令
打開新的screen:
screen –S [SESSION]
加入會話:
screen –x [SESSION]
退出并關閉screen:
exit
剝離當前screen:
Ctrl+a,d
顯示所有已經打開的screen:
screen -ls
恢復某screen
screen -r [SESSION]
建議在生產環境中遠程備份數據的時候,用screen命令進行,以防止網絡抖動時候造成的網絡中斷
原創文章,作者:~微風~,如若轉載,請注明出處:http://www.www58058.com/28240