首頁 > 軟體

RHEL7基本命令詳解

2020-06-16 17:34:44

Terminal

TTY

TTY是TeleTYpe的一個老縮寫。
Teletypes,或者teletypewriters,原來指的是電傳打字機,是通過序列線用印表機鍵盤通過閱讀和傳送資訊的東西,和古老的電報機區別並不是很大。
之後,當計算機只能以批次處理方式執行時(當時穿孔卡片閱讀器是唯一一種使程式載入執行的方式),電傳打字機成為唯一能夠被使用的“實時”輸入/輸出裝置。
最終,電傳打字機被鍵盤和顯示器終端所取代,但在終端或TTY接插的地方,作業系統仍然需要一個程式來監視串列埠。
一個getty“Get TTY”的處理過程是:一個程式監視物理的TTY/終端介面。

PTY

但是假如我們遠端telnet到主機或使用xterm時不也需要一個終端互動麼?是的,這就是虛擬終端pty(pseudo-tty)。

PTS/PTMX

pts(pseudo-terminal slave)是pty的實現方法,和ptmx(pseudo-terminal master)配合使用實現pty(PTS/PTMX結合使用實現PTY)。

實驗:驗證SSH的終端

在圖形介面下開啟一個終端,檢視當前終端對應的pts號

[root@ linuxidc.com ~]# who am i
root     pts/0        2016-08-07 12:06 (:0)

使用SSH連線本機:

[root@ linuxidc.com ~]# ssh root@127.0.0.1
The authenticity of host '127.0.0.1 (127.0.0.1)' can't be established.
ECDSA key fingerprint is 3b:42:8d:2e:84:6f:1e:b9:b6:eb:6d:34:23:b5:f2:57.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '127.0.0.1' (ECDSA) to the list of known hosts.
root@127.0.0.1's password:
Last login: Sun Aug  7 12:02:57 2016 from localhost

再次檢視pts號:

[root@ linuxidc.com ~]# who am i
root     pts/1        2016-08-07 12:08 (localhost)

可以看出已經不是之前的終端號了,說明啟用了一個新的偽終端
檢視進程:

[root@ linuxidc.com ~]# ps -aux | grep pts
root       7767  0.0  0.1 116676  3340 pts/0    Ss   12:06   0:00 /bin/bash
root       7820  0.0  0.2  80420  4208 pts/0    S+   12:08   0:00 ssh root@127.0.0.1
root       7821  0.0  0.2 143344  5440 ?        Ss   12:08   0:00 sshd: root@pt/1
root       7824  0.0  0.1 116564  3264 pts/1    Ss   12:08   0:00 -bash
root       7888  0.0  0.0 141576  1672 pts/1    R+   12:11   0:00 ps -aux
root       7889  0.0  0.0 112644   952 pts/1    R+   12:11   0:00 grep --color=auto pts

可以看出通過ssh連線後 其實使用的是pts終端

Shell提示符

對比普通使用者和root使用者的Shell提示符
普通使用者

[courier@ linuxidc.com ~]$

root使用者

[root@ linuxidc.com ~]#

[使用者名稱@主機名 當前所在目錄]root/普通使用者
$為普通使用者 #為root使用者

Bash Shell 基本語法

使用下面的兩個命令檢視所有的直譯器:

[root@ linuxidc.com root]# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh
[root@ linuxidc.com root]# chsh -l
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh

命令的格式:命令字 [選項][引數]
命令字:具體執行的命令
選項:匹配的條件
引數:命令處理的物件
舉例說明:

[root@ linuxidc.com root]# touch example.txt
[root@ linuxidc.com root]# ls
anaconda-ks.cfg  Documents  example.txt           Music     Public     Videos
Desktop          Downloads  initial-setup-ks.cfg  Pictures  Templates
[root@ linuxidc.com root]# rm -rf example.txt
[root@ linuxidc.com root]# ls
anaconda-ks.cfg  Documents  initial-setup-ks.cfg  Pictures  Templates
Desktop          Downloads  Music                 Public    Videos

常用基本命令

ls

作用:檢視當前目錄下有哪些檔案
語法:ls 目錄 如果不加目錄則檢視當前目錄

[root@ linuxidc.com root]# ls
anaconda-ks.cfg  Documents  initial-setup-ks.cfg  Pictures  Templates
Desktop          Downloads  Music                 Public    Videos
[root@ linuxidc.com ~]# ls ~
anaconda-ks.cfg  Documents  initial-setup-ks.cfg  Pictures  Templates
Desktop          Downloads  Music  

-l 顯示詳細資訊(ll命令等同於ls -l)

[root@ linuxidc.com ~]# ls -l
total 8
-rw-------. 1 root root 1545 Aug  7 09:04 anaconda-ks.cfg
drwxr-xr-x. 2 root root    6 Aug  7 00:23 Desktop
drwxr-xr-x. 2 root root    6 Aug  7 00:23 Documents
drwxr-xr-x. 2 root root    6 Aug  7 00:23 Downloads
-rw-------. 1 root root 1638 Aug  7 00:23 initial-setup-ks.cfg
drwxr-xr-x. 2 root root    6 Aug  7 00:23 Music
drwxr-xr-x. 2 root root    6 Aug  7 00:23 Pictures
drwxr-xr-x. 2 root root    6 Aug  7 00:23 Public
drwxr-xr-x. 2 root root    6 Aug  7 00:23 Templates
drwxr-xr-x. 2 root root    6 Aug  7 00:23 Videos

-a 顯示所有 包括隱藏檔案

[root@ linuxidc.com ~]# ls -a
.                .bashrc    Downloads             Pictures   .viminfo
..               .cache     .esd_auth             Public     .xauthO64wyA
anaconda-ks.cfg  .config    .ICEauthority         .ssh
.bash_history    .cshrc     initial-setup-ks.cfg  .tcshrc
.bash_logout     Desktop    .local                Templates
.bash_profile    Documents  Music                 Videos

-d 檢視目錄(不檢視裡面的內容)

[root@ linuxidc.com ~]# ls -d
.

pwd命令

作用:檢視當前所在目錄的絕對路徑

[root@ linuxidc.com ~]# cd /etc/sysconfig/network-scripts/
[root@ linuxidc.com network-scripts]# pwd
/etc/sysconfig/network-scripts

cd命令

作用:切換目錄
語法:cd 目錄名
不跟目錄名則切換到當前使用者目錄
.表示當前目錄 ..當前目錄的上級目錄

[root@ linuxidc.com network-scripts]# cd
[root@ linuxidc.com ~]# pwd
/root
[root@ linuxidc.com ~]# cd /home
[root@ linuxidc.com home]# pwd
/home
[root@ linuxidc.com home]# cd /etc/sysconfig/network-scripts/
[root@ linuxidc.com network-scripts]# cd .
[root@ linuxidc.com network-scripts]# pwd
/etc/sysconfig/network-scripts
[root@ linuxidc.com network-scripts]# cd ..
[root@ linuxidc.com sysconfig]# pwd
/etc/sysconfig
[root@ linuxidc.com sysconfig]# cd ./../
[root@ linuxidc.com etc]# pwd
/etc

系統時間管理

檢視BIOS時間

[root@ linuxidc.com ~]# hwclock
Sun 07 Aug 2016 01:18:25 PM EDT  -0.147639 seconds

檢視系統時間

[root@ linuxidc.com ~]# date
Sun Aug  7 13:19:29 EDT 2016

修改時間

[root@ linuxidc.com ~]# date -s 2016-10-1
Sat Oct  1 00:00:00 EDT 2016

格式化時間

[root@ linuxidc.com ~]# date '+%Y-%m-%d %H:%M'
2016-10-01 00:02

命令太多如何獲取幫助

命令字 -h/--help

[root@ linuxidc.com ~]# systemctl --help
[root@ linuxidc.com ~]# systemctl -h

man 命令字

[root@ linuxidc.com ~]# man systemctl

關機命令

shutdown

作用:關機/重新啟動/定時關機
語法:shutdown [選項]
-r 重新啟動計算機

[root@ linuxidc.com ~]# shutdown -r
Shutdown scheduled for Mon 2016-08-08 01:38:34 EDT, use 'shutdown -c' to cancel.
[root@ linuxidc.com ~]#
Broadcast message from root@ linuxidc.com (Mon 2016-08-08 01:37:34 EDT):

The system is going down for reboot at Mon 2016-08-08 01:38:34 EDT!
[root@ linuxidc.com ~]# shutdown -now
[root@ linuxidc.com ~]# shutdown -r +10
Shutdown scheduled for Sun 2016-08-07 13:50:56 EDT, use 'shutdown -c' to cancel.
[root@ linuxidc.com ~]#
Broadcast message from root@ linuxidc.com (Sun 2016-08-07 13:40:56 EDT):

The system is going down for reboot at Sun 2016-08-07 13:50:56 EDT!
[root@ linuxidc.com ~]# shutdown -r 01:50
Shutdown scheduled for Mon 2016-08-08 01:50:00 EDT, use 'shutdown -c' to cancel.

-h 關機

[root@ linuxidc.com ~]# shutdown -h +10
Shutdown scheduled for Sun 2016-08-07 13:54:14 EDT, use 'shutdown -c' to cancel.

Broadcast message from root@ linuxidc.com (Sun 2016-08-07 13:44:14 EDT):

The system is going down for power-off at Sun 2016-08-07 13:54:14 EDT!
[root@ linuxidc.com ~]# shutdown -h 01:55
Shutdown scheduled for Mon 2016-08-08 01:55:00 EDT, use 'shutdown -c' to cancel.
[root@ linuxidc.com ~]# shutdown -h now

init 0 關機

[root@ linuxidc.com ~]# init 0

reboot 重新啟動

[root@ linuxidc.com ~]# reboot

poweroff 關機

[root@ linuxidc.com ~]# poweroff

啟動級別

命令:init
作用:切換系統執行級別
語法:init 0-6

7個啟動級別

0 系統停機模式 系統預設執行級別不能設定為0,否則不能正常啟動機器關閉
1 單使用者模式 root許可權,用於系統維護,禁止遠端登陸,類似windows安全模式
2 多使用者模式 沒有NFS網路支援
3 完整的多使用者文字模式 有NFS網路支援,登陸後進入控制台命令列模式
4 系統未使用 保留一般不用,在一些特殊情況下可以用它來做一些事情,例如:筆記型電腦的電池用盡時可以切換到該模式做一些設定
5 圖形化模式 登陸後進入圖形GUI模式
6 重新啟動模式 預設執行級別不能設為6,否則不能正常啟動,執行init 6機器就會重新啟動

啟動級別設定

RHEL7不再使用/etc/inittab檔案進行預設的級別設定
檢視inittab檔案

[root@ linuxidc.com ~]# vim /etc/inittab
# inittab is no longer used when using systemd.
#
# ADDING CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
#
# Ctrl-Alt-Delete is handled by /usr/lib/systemd/system/ctrl-alt-del.target
#
# systemd uses 'targets' instead of runlevels. By default, there are two main targets:
#
# multi-user.target: analogous to runlevel 3
# graphical.target: analogous to runlevel 5
#
# To view current default target, run:
# systemctl get-default
#
# To set a default target, run:
# systemctl set-default TARGET.target
#                 

該檔案的註釋中已經說明不再使用inittab進行預設級別的設定
根據該檔案注釋,下面使用紅帽7提供的級別進行設定
切換到第3執行級

[root@ linuxidc.com ~]# systemctl isolate multi-user.target
[root@ linuxidc.com ~]# systemctl isolate runlevel3.target

切換到第5執行級

[root@ linuxidc.com ~]# systemctl isolate graphical.target
[root@ linuxidc.com ~]# systemctl isolate runlevel5.target

設定預設的執行級別為第三執行級別

[root@ linuxidc.com ~]# systemctl set-default multi-user.target
Removed symlink /etc/systemd/system/default.target.
Created symlink from /etc/systemd/system/default.target to /usr/lib/systemd/system/multi-user.target.

設定預設的執行級別為第五執行級別

[root@ linuxidc.com ~]# systemctl set-default graphical.target
Removed symlink /etc/systemd/system/default.target.
Created symlink from /etc/systemd/system/default.target to /usr/lib/systemd/system/graphical.target.

檢視當前執行級別

[root@ linuxidc.com ~]# runlevel
3 5

3為上次的執行級別 5為本次 如果系統剛啟動 上次則會顯示為N

檢視預設執行級別

[root@ linuxidc.com ~]# systemctl get-default
graphical.target

設定伺服器在來電後自動開機

該功能需要BIOS支援

  1. 進入BIOS(一般是在開機後出現主機板畫面時Del鍵,部分品牌機可能按F2/F1)
  2. 找到Power Management Setup進入電源設定
  3. 找到Wake Up Event Setup
  4. 將Disabledd更改為Enabled
  5. 再繼續設定時間和日期
  6. 儲存並退出

附錄

Linux下不同的顏色代表了不同的檔案型別

顏色型別舉例
藍色 目錄 /etc
黑色 檔案 /etc/passwd
淺藍色 連結 /etc/grub2.cfg
紅色 壓縮包 boot.tar.gz
綠色 可執行檔案 /etc/init.d/network
黑底黃字 裝置檔案 /dev/sda

who、whoami命令 和 who am i 命令的區別  http://www.linuxidc.com/Linux/2008-04/12001.htm
Linux中tty、pty、pts的概念區別  http://www.linuxidc.com/Linux/2006-10/397.htm

本文永久更新連結地址http://www.linuxidc.com/Linux/2016-08/134614.htm


IT145.com E-mail:sddin#qq.com