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中第數字條的命令
!!:上一條命令
!-數字:表示執行命令列表中的倒數第數字條命令
!$:執行上個命令中的最後一個參數: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命令進行,以防止網絡抖動時候造成的網絡中斷