每日進步一點點,快樂也會增加一點點,話接上回。。。。
6.3 指令别名
執行經常使用且較長的指令時,可以将其定義成較短的别名,以友善執行顯示目前shell程序所有可用的指令别名
alias
6.3.1 定義别名:(aiias)新名字(name),其相當于執行指令的:值(value)
暫時生效
[root@nginx ~]#alias NAME='VALUE'
例如:
設定一個别名為test,echo輸出nihao并重定向到到/opt/目錄下的test.txt檔案,執行test這個設定好的别名後,再檢視test.txt檔案可知是否成功
[root@nginx ~]# alias test='echo "nihao" >/opt/test.txt'
[root@nginx ~]# test
[root@nginx ~]# cat /opt/test.txt
nihao
[root@nginx ~]#
檢視自己設定的别名,隻需在指令行鍵入alias即可,回車即可看到系統設定好的别名,以及自己設定好的
[root@nginx ~]# alias
alias test='echo "nihao" >/opt/test.txt'
***溫馨提示,最好不要随意更改系統設定好的别名,非必要别把自定義的别名名字與系統設定的重名
6.3.2 删除别名:(unalias)
#删除上面設定的别名
[root@nginx ~]#unalias test
#檢視是否成功删除
[root@nginx ~]#alias
[root@nginx ~]unalias [-a] name [name ...]
unalias -a #表示取消所有别名,别輕易使用
注意:上面為暫時設定别名,僅對目前shell程序有效,關掉終端視窗或者重新開機機器後會失效;以下為持久儲存别名方法
如果想永久有效,要定義在配置檔案中
- 僅對目前使用者:~/.bashrc
- 對所有使用者有效:/etc/bashrc
找到目前使用者的 .bashrc檔案,vi編輯插入你自定義的别名即可,或者追加重定向到最後一行儲存退出。
[root@nginx ~]# ls -A
.bashrc
[root@nginx ~]# cat .bashrc
# .bashrc
# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
編輯配置給出的新配置不會立即生效,bash程序需要重新讀取配置檔案
source /path/config_file #source /路徑/需要重新加載的檔案名
例如:
[root@nginx ~]#source /etc/bashrc
7 常見指令
7.1檢視硬體資訊
7.1.1檢視cpu方法:
- lscpu指令可以檢視cpu資訊
- cat /proc/cpuinfo也可以檢視到
例如:
[root@nginx /]# lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 1
On-line CPU(s) list: 0
Thread(s) per core: 1 #每個core 有幾個線程
Core(s) per socket: 1 #每個槽位有幾個core
座: 1
NUMA 節點: 1 #nodes的數量
廠商 ID: GenuineIntel
CPU 系列: 6
步進: 3
CPU MHz: 3092.869
BogoMIPS: 6185.73
超管理器廠商: VMware
虛拟化類型: 完全
L1d 緩存: 32K
L1i 緩存: 32K
L2 緩存: 256K
L3 緩存: 6144K
NUMA 節點0 CPU: 0 #對應的core
....#太長其他就不過展開
[root@nginx /]#cat /proc/cpuinfo
7.1.2 檢視記憶體大小
- 可用free
- 也可用cat /proc/meminfo
例如:
[root@nginx ~]# free
total used free shared buff/cache available
Mem: 2012740 102860 1745952 9636 163928 1730952
Swap: 2097148 0 2097148
[root@nginx ~]# cat /proc/meminfo
#太多不做展開
7.1.3 檢視硬碟和分區相關
方式兩種如下:
[root@nginx ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 80G 0 disk
├─sda1 8:1 0 400M 0 part /boot
└─sda2 8:2 0 79.6G 0 part
├─centos-root 253:0 0 77.6G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sr0 11:0 1 1024M 0 rom
[root@nginx ~]# cat /proc/partitions
major minor #blocks name
8 0 83886080 sda
8 1 409600 sda1
8 2 83475456 sda2
11 0 1048575 sr0
253 0 81375232 dm-0
253 1 2097152 dm-1
[root@nginx ~]#
7.2 檢視系統版本資訊
7.2.1檢視核心版本
這uname -r指令在centos6至8都是同樣的檢視方法
[root@nginx ~]# uname -r
3.10.0-862.el7.x86_64
解釋:(3)主版本号.(10)次版本号.(0)末版本号-(862)更新次數.(el7)enterprise linux 7平台.(x86_64)架構
7.2.2 檢視作業系統發行版本
方式兩種如下:
[root@nginx ~]# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)
[root@nginx ~]#
[root@nginx ~]# cat /etc/os-release
#不做展開
8 日期和時間
Linux的兩種時鐘
- 系統時鐘:由Linux核心通過CPU的工作頻率進行的
- 硬體時鐘:主機闆提供
8.1 對應指令
date :顯示和設定系統時間
例如:
[root@nginx ~]# date
2023年 06月 21日 星期三 13:48:24 CST
[root@nginx ~]# date -d @`date +%s`
2023年 06月 21日 星期三 13:49:01 CST
[root@nginx ~]# date -s "2023/06/05 11:00" 修改 時間 日期
8.1.1 clock,hwclock: 顯示硬體時鐘
- -s, --hctosys 以硬體時鐘為準,校正系統時鐘
- -w, --systohc 以系統時鐘為準,校正硬體時鐘
8.2 時區相關
[root@nginx ~]# timedatectl list-timezones #顯示時區清單
root@nginx ~]# timedatectl set-timezone Asia/Shanghai #設定時區為亞洲上海
root@nginx ~]#[root@nginx ~]# timedatectl status #檢視時間、時區狀态
Local time: 三 2023-06-21 14:05:09 CST
Universal time: 三 2023-06-21 06:05:09 UTC
RTC time: 三 2023-06-21 06:05:09
Time zone: Asia/Shanghai (CST, +0800)
NTP enabled: n/a
NTP synchronized: no
RTC in local TZ: no
DST active: n/a
[root@nginx ~]# ll /etc/localtime #檢視歸屬時區
lrwxrwxrwx. 1 root root 35 8月 27 2021 /etc/localtime -> ../usr/share/zoneinfo/Asia/Shanghai
8.3 月曆顯示
cal + 月份 + 年份
[root@nginx ~]# cal 6 2023
六月 2023
日 一 二 三 四 五 六
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
[root@nginx ~]#
9 關機與重新開機
關機:
- halt
- poweroff
重新開機:
reboot
- -f: 強制,不調用shutdown
- -p: 切斷電源
- 關機或重新開機:shutdown
shutdown [OPTION]... [TIME] [MESSAGE]
-r: reboot #重新啟動
-h: halt #使中斷
-c:cancel #取消,終止
TIME:無指定,預設相當于+1(CentOS7)
now: 立刻,相當于+0
+#: 相對時間表示法,幾分鐘之後;例如 +3
hh:mm: 絕對時間表示,指明具體時間
例如:
關機指令(關機操作,生産環境不能随便使用)
[root@nginx ~]# init 0 #先将服務都關閉掉,再執行halt -pf拔電源
[root@nginx ~]# shutdown -h now #立刻關機,先給使用者發送消息,然後關閉服務,拔掉電源
[root@nginx ~]# shutdown -h 10 #十分鐘之後關機
[root@nginx ~]# shutdown -c #cancel取消正在運作的關機指令
[root@nginx ~]#poweroff # 直接關閉電源
[root@nginx ~]# halt
重新開機指令
[root@nginx ~]# init 6
[root@nginx ~]# reboot
[root@nginx ~]# shutdown -r now #立刻重新開機
延遲重新開機:shutdown -r 10 #十分鐘之後重新開機
10 使用者登入資訊檢視指令
- whoami: 顯示目前登入有效使用者
- who: 系統目前所有的登入會話
- w: 系統目前所有的登入會話及所做的操作
[root@nginx ~]# whoami
root
[root@nginx ~]# who
root pts/0 2023-06-21 11:38 (192.168.223.1)
[root@nginx ~]# w
16:11:07 up 4:34, 1 user, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.223.1 11:38 3.00s 0.10s 0.01s w
11 資訊輸出
11.1 echo基本用法
echo 指令可以将後面跟的字元進行輸出
作用:顯示字元,echo會将輸入的字元串送往标準輸出;輸出的字元串間以空白字元隔開, 并在最後加上換行号
echo 也常用于列印空行或換行
文法:
echo [-neE][字元串]
參數:
- -E (預設)不支援 \ 解釋功能
- -n 不自動換行
- -e 啟用 \ 字元的解釋功能
啟用指令選項-e,若字元串中出現以下字元,則特别加以處理,而不會将它當成一般文字輸出
- \a 發出警告聲
- \b 倒退鍵
- \c 最後不加上換行符号
- \e escape,相當于\033
- \n 換行且光标移至行首
- \r 回車,即光标移至行首,但不換行
- \t 插入tab
- \\ 插入\字元
- \0nnn 插入nnn(八進制)所代表的ASCII字元
- \xHH插入HH(十六進制)所代表的ASCII數字(man 7 ascii)
例如:
[root@nginx ~]# echo -e '\033[43;31;1;5mnihao\e[0m'
nihao
[root@nginx ~]# echo -e '\x58\x75'
Xu
[root@nginx ~]#
[root@nginx ~]#echo \
[root@nginx ~]#echo \\
\
[root@nginx ~]#echo \\\
>
[root@nginx ~]#echo \\\\
\\
[root@nginx ~]#echo \$PATH
$PATH
[root@nginx ~]# echo "$PATH"
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
11.2 echo 進階用法
在終端中,ANSI定義了用于螢幕顯示的Escape螢幕控制碼具有顔色的字元,其格式如下:
"\033[字元背景顔色;字型顔色m字元串\033[0m"
- \033[30m -- \033[37m 設定前景色
- \033[40m -- \033[47m 設定背景色
#字元背景顔色範圍: 40--47
40: 黑
41:紅
42:綠
43:黃
44:藍
45:紫
46:深綠
47:白色
#字型顔色: 30--37
30: 黑
31: 紅
32: 綠
33: 黃
34: 藍
35: 紫
36: 深綠
37: 白色
加顔色隻是以下控制碼中的一種,下面是常見的一些ANSI控制碼:
\033[0m 關閉所有屬性
\033[1m 設定高亮度
\033[4m 下劃線
\033[5m 閃爍
\033[7m 反顯
\033[8m 消隐
\033[nA 光标上移n行
\033[nB 光标下移n行
\033[nC 光标右移n行
\033[nD 光标左移n行
\033[x;yH 設定光标位置x行y列
\033[2J 清屏
\033[K 清除從光标到行尾的内容
\033[s 儲存光标位置
\033[u 恢複光标位置
\033[?25l 隐藏光标
\033[?25h 顯示光标
\033[2J\033[0;0H 清屏且将光标置頂
11.3 ASCII碼
計算機内部,所有資訊最終都是一個二進制值。上個世紀60年代,美國制定了一套字元編碼,對英語字元與二進制位之間的關系,做了統一規定,即ASCII(American Standard Code for InformationInterchange) 碼.
ASCII 碼一共規定了128個字元的編碼,占用了一個位元組的後面7位,最前面的一位統一規定為 0
安裝
[root@nginx ~]#yum -y install man-pages
檢視ASCII表
[root@nginx ~]#man ascii
12 selinux設定
12.1臨時修改,立即生效
臨時修改,立即生效
[root@nginx ~]# setenforce 0
-
setenforce [ Enforcing | Permissive | 1 | 0 ]
1 Enforcing 強制模式 啟用selinux
0 Permissive 寬容模式
12.1.1永久修改,重新開機生效
[root@nginx ~]# vi /etc/selinux/config #編輯config檔案把SELINUX=enforcing改為下面所示
SELINUX=disabled #disabled :表示不加載selinux的政策
12.1.2檢視selinux狀态的方法
[root@nginx ~]# getenforce
Enforcing
[root@nginx ~]#
12.2 firewalld防火牆關閉
12.2.1臨時關閉,立即生效
[root@nginx ~]#systemctl stop firewalld
12.2.2永久關閉,重新開機生效
[root@nginx ~]#systemctl disable firewalld
13 linux目錄結構圖
常見目錄的用途
-
/bin(binary): 存放的是系統的指令(普通使用者和超級使用者都可以執行該目錄下的指令)
/sbin(super binary):存放的是管理指令(儲存和系統環境設定相關的指令,隻有超級使用者可以使用這些指令來對系統環境進行設定,但是有些指令是可以允許普通使用者進行檢視的)
/boot:存放的是系統的啟動檔案及核心
/dev: 裝置檔案目錄 device
/etc:系統主配置檔案主目錄
/home:普通使用者的家目錄
/root:超級管理者的家目錄
/lib:系統庫檔案主目錄
/media:挂載點目錄,移動裝置,比如軟碟、CD光牒。
/mnt:這也是個挂載目錄,早期的Linux是隻有這一個挂載目錄的,并沒有進行細分。現在這個目錄主要用來挂載額外的裝置,比如U盤、移動硬碟以及其它作業系統分區等。
/opt:第三方安裝的軟體儲存位置,這個目錄就是用來放置和安裝其它軟體的,我們平時安裝的源碼包軟體都可以存放到這個目錄。
/proc:僞檔案系統,系統程序相關資訊 cpu資訊 /proc/cpuinfo 記憶體的資訊 /proc/meminfo
/sys:僞檔案系統,跟硬體裝置相關的屬性映射檔案(虛拟檔案系統,類似于/proc,都是儲存在記憶體當中,主要是儲存一些和核心相關的資訊)
/srv:服務資料目錄。一些系統服務啟動之後,可以在這個目錄中儲存所需要的資料。
/run : 與程式運作相關的資訊,如程序号,套接字檔案等
/tmp:臨時檔案目錄, /var/tmp
/var(variable):變化的資料檔案目錄,經常用于部署項目程式(php)檔案 /var/spool/mail 使用者的郵件 /var/ftp/pub ftp釋出的站點(動态資料儲存位置,主要儲存緩存、日志以及軟體運作所産生的檔案)
/usr(unix system resource):使用者安裝程式目錄,包含二進制檔案、庫檔案、文檔和源碼安裝的程式等 文檔 /usr/share/doc 源碼安裝 /usr/local 安裝軟體産生指令 /usr/bin /usr/sbin (系統軟體資源目錄,需要注意的是usr并不是user的縮寫,而是指“Unix Software Resource”,也就是指系統軟體資源,Linux系統中安裝的軟體大多數是儲存在這個目錄下)
聰明如你,想必又吸收到了想要的知識。。。
快樂的時光總是短暫,今天的分享就到這裡吧!