用戶類型
-
root用戶
一個(gè)特殊的管理用戶
也被稱為超級(jí)管理員
root擁有最高權(quán)限拍埠,接近完整的系統(tǒng)控制
對(duì)系統(tǒng)的損害接近無(wú)限的能力
除非必要慨畸,不要登錄為root
-
普通用戶
權(quán)限有限
造成損害能力有限
注意:怎樣區(qū)分超級(jí)用戶和普通用戶
超級(jí)用戶唯一標(biāo)識(shí):uid=0
普通用戶:uid>100
終端
終端的類型
控制臺(tái)終端: /dev/console
串行終端:/dev/ttyS#
虛擬終端:tty:teletypewriters, /dev/tty#骗绕,tty 可有n個(gè)檐嚣,Ctrl+Alt+F#
-
圖形終端:startx, xwindows
CentOS 6: Ctrl + Alt + F7
CentOS 7: 在哪個(gè)終端啟動(dòng),即位于哪個(gè)虛擬終端
偽終端:pty:pseudo-tty 熬北, /dev/pts/# 如:SSH遠(yuǎn)程連接
設(shè)備終端:鍵盤、鼠標(biāo)诚隙、顯示器
查看當(dāng)前終端設(shè)備
[19:36:02 root@centos8 ~]#tty
/dev/pts/1
圖形界面和字符界面的切換
[19:41:42 root@centos8 ~]#init 3 #切換為字符界面
[19:41:42 root@centos8 ~]#init 5 #切換為圖形界面
查看終端的連接情況
#查看有幾個(gè)終端在連接
[19:50:25 root@centos8 ~]#who
root pts/1 2020-07-25 08:22 (10.0.0.1)
root pts/0 2020-07-27 19:49 (10.0.0.1)
#查看哪個(gè)是我的終端
[19:51:34 root@centos8 ~]#who am i
root pts/1 2020-07-25 08:22 (10.0.0.1)
#查看其它終端在干什么
[19:52:39 root@centos8 ~]#w
19:54:02 up 2 days, 11:33, 3 users, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/1 10.0.0.1 Sat08 1.00s 1.42s 0.01s w
root pts/0 10.0.0.1 19:49 10.00s 0.03s 0.00s ping 127.0.0.1
每個(gè)終端窗口對(duì)應(yīng)的相應(yīng)的用戶讶隐,互相之間不受影響
交互式接口
交互式接口:?jiǎn)?dòng)終端后,在終端設(shè)備啟動(dòng)一個(gè)交互式程序
交互式接口類型
-
GUI:Graphic User Interface
X protocol, window manager, desktop
Desktop:
GNOME (C, 圖形庫(kù)gtk)久又,
KDE (C++,圖形庫(kù)qt)
XFCE (輕量級(jí)桌面)
-
CLI:Command Line Interface
==shell程序==
什么是shell
==shell是Linux系統(tǒng)的用戶界面巫延,提供了用戶與操作系統(tǒng)內(nèi)核交互的一種接口效五,它接受用戶輸入的命令并把它送入內(nèi)核去執(zhí)行==
shell也被稱為L(zhǎng)INUX的命令解釋器(command interpreter),Shell 本身是一個(gè)程序炉峰。將用戶輸入的命令行拆解為”命令名“與”參數(shù)“畏妖。接著,根據(jù)命令名找到對(duì)應(yīng)要執(zhí)行的程序疼阔,對(duì)被執(zhí)行的程序進(jìn)行初始化戒劫,然后將剛才解析出來(lái)的參數(shù)傳給該程序并執(zhí)行
shell是一種高級(jí)程序設(shè)計(jì)語(yǔ)言,提供了變量竿开,函數(shù)谱仪,條件判斷,循環(huán)等開發(fā)語(yǔ)言的功能由于Shell本身是個(gè)程序否彩,所以它可以被任何用戶自己開發(fā)的各種Shell所代替
各種shell
- sh:Steve Bourne
- ==bash:Bourne-Again Shell疯攒,GPL,CentOS 和 Ubuntu 默認(rèn)使用==
- csh:c shell , C 語(yǔ)言風(fēng)格
- tcsh
- ksh :Korn Shell, AIX 默認(rèn) shell
- zsh: MacOS默認(rèn)shell
bash shell
GNU Bourne-Again Shell(bash)是GNU計(jì)劃中重要的工具軟件之一列荔,目前也是 Linux標(biāo)準(zhǔn)的shell敬尺,與sh兼容
顯示當(dāng)前使用的shell
[19:54:39 root@centos8 ~]#echo $SHELL
/bin/bash
查看當(dāng)前系統(tǒng)支持的shell類型
[20:16:30 root@centos8 ~]#cat /etc/shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
設(shè)置主機(jī)名
#查看主機(jī)名
[20:16:32 root@centos8 ~]#hostname
centos8.xbd.com
#臨時(shí)設(shè)置主機(jī)名
[20:19:02 root@centos8 ~]#hostname centos.ding.com
[20:19:33 root@centos8 ~]#hostname
centos.ding.com
#永久設(shè)置主機(jī)名
[20:19:36 root@centos8 ~]#hostnamectl set-hostname centos8.ding.org #命令修改
[20:20:40 root@centos8 ~]#hostname
centos8.ding.org
[20:20:43 root@centos8 ~]#vim /etc/hostname #修改配置文件
注意
- ==主機(jī)名不能用下劃線,不能用“.+數(shù)字”結(jié)尾贴浙,但支持橫線砂吞,可使用字母橫線或數(shù)字組合==
- ==有些軟件對(duì)主機(jī)名有特殊要求==
#主機(jī)名設(shè)置不規(guī)范出現(xiàn)的問(wèn)題
[root@centos8 ~]#hostnamectl set-hostname centos8.1
[root@centos8 ~]#systemctl restart postfix
Job for postfix.service failed because the control process exited with error code.
See "systemctl status postfix.service" and "journalctl -xe" for details.
命令提示符(prompt)
登錄Linux系統(tǒng)后,系統(tǒng)默認(rèn)的命令提示符沒(méi)有絲毫個(gè)性崎溃,無(wú)法明顯區(qū)分測(cè)試環(huán)境和生產(chǎn)環(huán)境蜻直,而導(dǎo)致誤操作≡可以通過(guò)修改PS1變量來(lái)實(shí)現(xiàn)個(gè)性的提示符個(gè)格式概而,避免出現(xiàn)這種低級(jí)錯(cuò)誤。
默認(rèn)的提示符
- ‘#’:超級(jí)用戶
- $:普通用戶
顯示當(dāng)前提示符格式
[root@centos8 ~]#echo $PS1
\[\e[1;35m\][\u@\h \W]\$\[\e[0m\]
修改提示符格式案例
PS1="\[\e[1;5;41;33m\][\u@\h \W]\\$\[\e[0m\]"
PS1="\[\e[1;32m\][\t \[\e[1;33m\]\u\[\e[35m\]@\h\[\e[1;31m\] \W\[\e[1;32m\]]\[\e[0m\]\\$"
#centos永久保存提示符格式
#在/etc/profile.d/下創(chuàng)建一個(gè)以“.sh”結(jié)尾的文件
[root@centos8 ~]# echo 'PS1="\[\e[1;32m\][\t \[\e[1;33m\]\u\[\e[35m\]@\h\[\e[1;31m\] \W\[\e[1;32m\]]\[\e[0m\]\\$"' > /etc/profile.d/env.sh
[root@centos8 ~]#cat /etc/profile.d/env.sh
PS1="\[\e[1;32m\][\t \[\e[1;33m\]\u\[\e[35m\]@\h\[\e[1;31m\] \W\[\e[1;32m\]]\[\e[0m\]\\$"
[root@centos8 ~]# exit
#實(shí)現(xiàn)Ubuntu永久保存提示符
[root@ubuntu2004 ~]#tail -1 .bashrc
PS1='\[\e[1;35m\][\u@\h \W]\$\[\e[0m\]'
提示符格式說(shuō)明
- \e 控制符\033
- \u 當(dāng)前用戶
- \h 主機(jī)名簡(jiǎn)稱
- \H 主機(jī)名
- \w 當(dāng)前工作目錄
- \W 當(dāng)前工作目錄基名
- \t 24小時(shí)時(shí)間格式
- \T 12小時(shí)時(shí)間格式
- ! 命令歷史數(shù)
- "#" 開機(jī)后命令歷史數(shù)
執(zhí)行命令
執(zhí)行命令的過(guò)程
命令執(zhí)行的背后的原理:
==終端上敲入命令之后囱修,shell會(huì)去判斷是否為內(nèi)部命令赎瑰,如果不是內(nèi)部命令那么shell會(huì)到$PASH下面的路徑下去找對(duì)應(yīng)的可執(zhí)行文件,找到命令之后由其分析后交給內(nèi)核分配資源將其運(yùn)行起來(lái)==
shell可執(zhí)行的兩類命令
- ==內(nèi)部命令:集成在shell程序本身的命令==
- ==外部命令:在文件系統(tǒng)路徑下有對(duì)應(yīng)的可執(zhí)行程序文件==
判斷是內(nèi)部命令還是外部命令
[21:03:25 root@centos8 ~]#type cd
cd is a shell builtin #提示為內(nèi)部命令
[21:03:36 root@centos8 ~]#type ping
ping is hashed (/usr/sbin/ping) #提示為外部命令
#又是外部命令又是內(nèi)部命令
[21:04:11 root@centos8 ~]#type -a echo
echo is a shell builtin
echo is /usr/bin/echo
內(nèi)部命令相關(guān)
help :內(nèi)部命令列表
enable:管理內(nèi)部命令
- enable cmd 啟用內(nèi)部命令
- enable –n cmd 禁用內(nèi)部命令
- enable –n 查看所有禁用的內(nèi)部命令
執(zhí)行外部命令
查看外部命令的路徑
#which查看外部命令的路徑
[21:13:40 root@centos8 ~]#which cd
/usr/bin/cd
#whereis查看外部命令路徑的同時(shí)還能查看命令的man手冊(cè)在哪
[21:14:22 root@centos8 ~]#whereis cd
cd: /usr/bin/cd /usr/share/man/man1/cd.1.gz /usr/share/man/man1p/cd.1p.gz
Hash緩存表
==系統(tǒng)的初始hash表為空破镰,當(dāng)外部命令執(zhí)行時(shí)餐曼,默認(rèn)會(huì)從PASH路徑下尋找該命令舰褪,找到該命令后锄俄,命令的路徑會(huì)緩存在hash表中,當(dāng)下次再執(zhí)行命令時(shí)壹置,shell會(huì)先去查看hash表孕似,存在將執(zhí)行瓶佳,不存在將再PASH路徑下尋找,利用hash緩存表能大大提高命令的執(zhí)行效率==
hash 命令的常見(jiàn)用法
- hash 顯示hash緩存
- hash -l 顯示hash緩存鳞青,可作為輸入使用
- hash -p path name 將命令全路徑path起別名為name
- hash -t name 打印緩存中name的路徑
- hash -d name 清除name緩存
- hash -r 清除緩存
緩存的優(yōu)缺點(diǎn)
優(yōu)點(diǎn):效率提升
缺點(diǎn):內(nèi)存資源霸饲,數(shù)據(jù)易丟失,不能馬上同步數(shù)據(jù)臂拓,如果把命令所在的文件一定到別的路徑下就會(huì)找不找命令
命令的別名
對(duì)經(jīng)常執(zhí)行的比較長(zhǎng)的命令厚脉,可以將其定義成較短的別名,以便于執(zhí)行
對(duì)別名的操作
#查看當(dāng)前shell可以使用所有命令的別名
[21:14:35 root@centos8 ~]#alias
alias cman='man -M /usr/local/zhman/share/man/zh_CN'
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
......
#定義別名
alias NAME='VALUE'
[21:52:24 root@centos8 ~]#echo free='free -h' >> .bashrc
[21:53:00 root@centos8 ~]#free
total used free shared buff/cache available
Mem: 1.8Gi 339Mi 128Mi 14Mi 1.3Gi 1.3Gi
Swap: 2.0Gi 12Mi 2.0Gi
#取消別名
unalias
unalias [-a] name [name ...]
unalias -a #取消所有別名
注意:在命令中配置別名只對(duì)當(dāng)前shell進(jìn)程有效胶惰,想要永久生效需要寫入配置文件中傻工。
- 對(duì)當(dāng)前用戶生效:./.bashrc
- 對(duì)所有用戶生效:/etc/bashrc
編輯好的配置文件不會(huì)立即生效,bash進(jìn)程重新讀取配置文件
source /path/to/config_file
. /path/to/config_file
如果別名和原命令同名孵滞,想要執(zhí)行原命令中捆,可使用以下方法
\ALIASNAME
“ALIASNAME”
‘ALIASNAME’
command ALIASNAME
/path/commmand #只適用于外部命令
命令執(zhí)行的優(yōu)先級(jí)
有時(shí)候內(nèi)部命令和外部命令重時(shí),優(yōu)先執(zhí)行內(nèi)部命令坊饶,再執(zhí)行外部命令
別名>內(nèi)部命令>外部命
命令的格式
COMMAND [OPTIONS...] [ARGUMENTS...] #命令 選項(xiàng) 參數(shù)
COMMAND [COMMAND] [COMMAND] .... #命令 子命令 子命令
選項(xiàng):用于啟用或關(guān)閉命令的某個(gè)或某些功能
- 短選項(xiàng):UNIX 風(fēng)格選項(xiàng)泄伪,-c 例如:-l, -h
- 長(zhǎng)選項(xiàng):GNU風(fēng)格選項(xiàng),--word 例如:--all, --human
- BSD風(fēng)格選項(xiàng):一個(gè)字母匿级,例如:a蟋滴,使用相對(duì)較少
參數(shù):命令作用的對(duì)象 如:文件名,用戶名等
[root@centos8 ~]#id -u wang
1000
[root@centos8 ~]#ls -a
[root@centos8 ~]#ls --all
[root@centos8 ~]#free -h
[root@centos8 ~]#free --human
[root@centos8 ~]#ps a
注意
- 多個(gè)選項(xiàng)以及多參數(shù)和命令之間使用空白字符分隔
- 取消和結(jié)束命令執(zhí)行:Ctrl+c痘绎,Ctrl+d
- 多個(gè)命令可以用 ";" 符號(hào)分開
- 一個(gè)命令可以用\分成多行
常見(jiàn)命令
查看硬件信息
查看CPU信息
#lscpu命令查看
[22:01:37 root@centos8 ~]#lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 2
On-line CPU(s) list: 0,1
Thread(s) per core: 1 #每個(gè)core有幾個(gè)線程
Core(s) per socket: 1 #每個(gè)槽位有1個(gè)core
Socket(s): 2 #服務(wù)器面板上有2個(gè)ccpu槽位
NUMA node(s): 1 #nodes的數(shù)量
.......
#cat /proc/cpuinfo也可以查看
[07:41:39 root@centos8 ~]#cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 58
model name : Intel(R) Core(TM) i5-3320M CPU @ 2.60GHz
stepping : 9
microcode : 0x20
cpu MHz : 2594.119
cache size : 3072 KB
.......
查看內(nèi)存大小
[07:48:54 root@centos8 ~]#free
total used free shared buff/cache available
Mem: 1.8Gi 340Mi 127Mi 14Mi 1.3Gi 1.3Gi
Swap: 2.0Gi 12Mi 2.0Gi
[07:48:57 root@centos8 ~]#free -h #加-h參數(shù)顯示單位
total used free shared buff/cache available
Mem: 1.8Gi 340Mi 126Mi 14Mi 1.3Gi 1.3Gi
Swap: 2.0Gi 12Mi 2.0Gi
[07:49:00 root@centos8 ~]#cat /proc/meminfo
MemTotal: 1849464 kB
MemFree: 130360 kB
MemAvailable: 1321952 kB
Buffers: 108 kB
Cached: 1304468 kB
SwapCached: 2472 kB
Active: 1134300 kB
Inactive: 274844 kB
Active(anon): 51912 kB
Inactive(anon): 67788 kB
Active(file): 1082388 kB
Inactive(file): 207056 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal: 2097148 kB
SwapFree: 2084348 kB
Dirty: 0 kB
Writeback: 0 kB
AnonPages: 102784 kB
Mapped: 60264 kB
Shmem: 15136 kB
Slab: 164188 kB
SReclaimable: 66004 kB
SUnreclaim: 98184 kB
KernelStack: 6240 kB
PageTables: 8468 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 3021880 kB
Committed_AS: 746972 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 0 kB
VmallocChunk: 0 kB
HardwareCorrupted: 0 kB
AnonHugePages: 18432 kB
ShmemHugePages: 0 kB
ShmemPmdMapped: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
Hugetlb: 0 kB
DirectMap4k: 255872 kB
DirectMap2M: 1841152 kB
查看硬盤和分區(qū)情況
[07:50:43 root@centos8 ~]#lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk
├─sda1 8:1 0 1G 0 part /boot
├─sda2 8:2 0 50G 0 part /
├─sda3 8:3 0 2G 0 part [SWAP]
├─sda4 8:4 0 1K 0 part
└─sda5 8:5 0 47G 0 part /data
sr0 11:0 1 6.7G 0 rom /run/media/ding/CentOS-8-BaseOS-x86_64
07:53:06 root@centos8 ~]#cat /proc/partitions
major minor #blocks name
8 0 104857600 sda
8 1 1048576 sda1
8 2 52428800 sda2
8 3 2097152 sda3
8 4 1 sda4
8 5 49281024 sda5
11 0 6968320 sr0
查看系統(tǒng)版本信息
查看內(nèi)核信息
#Centos8
[07:53:46 root@centos8 ~]#uname -r
4.18.0-80.el8.x86_64
#Centos7
[17:34:33 root@centos7 ~]#uname -r
3.10.0-862.el7.x86_64
查看操作系統(tǒng)的發(fā)行版本
#Centos8
[07:56:19 root@centos7 ~]#cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)
[07:57:51 root@centos7 ~]#cat /etc/os-release
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"
[root@centos8 ~]#lsb_release -a #需要安裝此程序
LSB Version: :core-4.1-amd64:core-4.1-noarch
Distributor ID: CentOS
Description: CentOS Linux release 8.1.1911 (Core) Release: 8.1.1911
Codename: Core
#ubuntu
root@ubuntu1804:~# cat /etc/os-release
NAME="Ubuntu"
VERSION="18.04.4 LTS (Bionic Beaver)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 18.04.4 LTS"
VERSION_ID="18.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=bionic
UBUNTU_CODENAME=bionic
root@ubuntu1804:~# cat /etc/issue
Ubuntu 18.04.4 LTS \n \l
[root@ubuntu1804 ~]#lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 18.04.1 LTS
Release: 18.04
Codename: bionic
日期和時(shí)間
Linux的兩個(gè)時(shí)鐘
- 系統(tǒng)時(shí)鐘:由Linux內(nèi)核通過(guò)CPU的工作頻率進(jìn)行的
- 硬件時(shí)鐘:來(lái)自主板
相關(guān)命令
- date:顯示和設(shè)置系統(tǒng)時(shí)間
[07:55:28 root@centos8 ~]#date +%s
1595895190
[08:13:14 root@centos8 ~]#date +%T
08:13:17
[08:14:42 root@centos8 ~]#date -d @`date +%s`
Tue Jul 28 08:14:58 CST 2020
[08:18:44 root@centos8 ~]#date -d @1595895190 +%F_%T
2020-07-28_08:13:10
[08:23:19 root@centos8 ~]#date -s '-1 year'
Sun Jul 28 08:24:21 CST 2019
-
clock津函,hwclock:顯示硬件時(shí)鐘
-s, --hctosys 以硬件時(shí)鐘為準(zhǔn),校正系統(tǒng)時(shí)鐘
-w, --systohc 以系統(tǒng)時(shí)鐘為準(zhǔn)孤页,校正硬件時(shí)鐘
時(shí)區(qū)
#查看系統(tǒng)時(shí)區(qū)
[08:26:29 root@centos8 ~]#ll /etc/localtime
lrwxrwxrwx. 1 root root 35 Jul 21 08:40/etc/localtime>../usr/share/zoneinfo/Asia/Shanghai
#查看系統(tǒng)可支持的時(shí)區(qū)
[root@centos8 ~]#timedatectl list-timezones
#設(shè)置系統(tǒng)時(shí)區(qū)
[root@centos8 ~]#timedatectl set-timezone Asia/Shanghai
#啟用所設(shè)置的時(shí)區(qū)
[root@centos8 ~]#timedatectl status
日歷
[08:32:44 root@centos8 ~]#cal
July 2020
Su Mo Tu We Th Fr Sa
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
[08:34:56 root@centos8 ~]#cal 9 1752
September 1752
Su Mo Tu We Th Fr Sa
1 2 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
關(guān)機(jī)和重啟
關(guān)機(jī)
- halt
- poweroff
重啟
-
reboot
-f:強(qiáng)制尔苦,不調(diào)用shutdown
-p:切斷電源
關(guān)機(jī)或重啟:shutdown
shutdown [OPTION]... [TIME] [MESSAGE]
-r: reboot -h: halt
-c:cancel
TIME:無(wú)指定,默認(rèn)相當(dāng)于+1(CentOS7)
now: 立刻,相當(dāng)于+0
+#: 相對(duì)時(shí)間表示法行施,幾分鐘之后允坚;例如 +3
hh:mm: 絕對(duì)時(shí)間表示,指明具體時(shí)間
用戶登錄信息查看命令
- whoami:查看當(dāng)前終端登錄用戶
- who:查看當(dāng)前所有終端登錄的用戶
- w:查看系統(tǒng)所有登錄的用戶及其所有操作