天天看點

Linux-基礎入門相關(二)

作者:不寐旋律

每日進步一點點,快樂也會增加一點點,話接上回。。。。

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           
Linux-基礎入門相關(二)

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目錄結構圖

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系統中安裝的軟體大多數是儲存在這個目錄下)

聰明如你,想必又吸收到了想要的知識。。。

快樂的時光總是短暫,今天的分享就到這裡吧!

繼續閱讀