鳥哥私房菜-基礎篇小筆記

mjlfto發表於2018-05-31

最近看了一下鳥哥私房菜基礎篇第四版,收穫多多,下邊是自己的一些簡單筆記,方便後期使用時快速回憶,其中圖片大多來自鳥哥私房菜文件截圖,如有許可權版權問題,立馬刪除!

cat 檢視檔案

tac 倒序檢視檔案

nl 檢視檔案同時顯示檔案行號

chmod

chgrp

chown

touch

mkdir

umask:

umask 檢視系統在建立檔案或資料夾的許可權
[root@localhost ~]# umask
0022

但是這裡檢視到的是0022,首先去掉第一位, 後三位022的許可權顯然不對, 其實這裡使用減法做的
對於檔案:系統預設的最大許可權基數是666,減輕umask給出的022,所以預設建立的檔案全是都是【666-022 = 644】

對於資料夾:系統預設給出的最大許可權基數是777,減輕umask給出的022,所以預設建立的檔案全是都是【777-022 = 754】

驗證:
[root@localhost test]# mkdir test
[root@localhost test]# ll
總用量 0
drwxr-xr-x. 2 root root 6 2月  28 17:49 test

[root@localhost test]# touch test_1
[root@localhost test]# ll
總用量 0
drwxr-xr-x. 2 root root 6 2月  28 17:49 test
-rw-r--r--. 1 root root 0 2月  28 17:51 test_1

檢視檔案建立是許可權減法 如umask為022 則建立的檔案許可權是為【666 - -022】

chattr 設定檔案隱藏屬性
這裡寫圖片描述

lsattr 顯示檔案隱藏屬性

檔案許可權:

SUID
這裡寫圖片描述

SGID
這裡寫圖片描述

SBIT
這裡寫圖片描述

更改方式:chmod 4775 4表示代用SUID許可權

使用者組:

groupadd test
//新增使用者組
groupmod -n test2 test
//將test改名為test2
groups
//檢視當前使用者所在組
cat /etc/group
//檢視所有使用者組
gropdel test
//刪除組

使用者操作

[root@localhost ~]# useradd -help
用法:useradd [選項] 登入
      useradd -D
      useradd -D [選項]

選項:
  -b, --base-dir BASE_DIR	新賬戶的主目錄的基目錄
  -c, --comment COMMENT         新賬戶的 GECOS 欄位
  -d, --home-dir HOME_DIR       新賬戶的主目錄
  -D, --defaults		顯示或更改預設的 useradd 配置
 -e, --expiredate EXPIRE_DATE  新賬戶的過期日期
  -f, --inactive INACTIVE       新賬戶的密碼不活動期
  -g, --gid GROUP		新賬戶主組的名稱或 ID
  -G, --groups GROUPS	新賬戶的附加組列表
  -h, --help                    顯示此幫助資訊並推出
  -k, --skel SKEL_DIR	使用此目錄作為骨架目錄
  -K, --key KEY=VALUE           不使用 /etc/login.defs 中的預設值
  -l, --no-log-init	不要將此使用者新增到最近登入和登入失敗資料庫
  -m, --create-home	建立使用者的主目錄
  -M, --no-create-home		不建立使用者的主目錄
  -N, --no-user-group	不建立同名的組
  -o, --non-unique		允許使用重複的 UID 建立使用者
  -p, --password PASSWORD		加密後的新賬戶密碼
  -r, --system                  建立一個系統賬戶
  -R, --root CHROOT_DIR         chroot 到的目錄
  -s, --shell SHELL		新賬戶的登入 shell
  -u, --uid UID			新賬戶的使用者 ID
  -U, --user-group		建立與使用者同名的組
  -Z, --selinux-user SEUSER		為 SELinux 使用者對映使用指定 SEUSER
  
  useradd -g test -m utest
  //新增utset新使用者,同時加到test組中
  
[root@localhost ~]# gpasswd -help
用法:gpasswd [選項] 組

選項:
  -a, --add USER                向組 GROUP 中新增使用者 USER
  -d, --delete USER             從組 GROUP 中新增或刪除使用者
  -h, --help                    顯示此幫助資訊並推出
  -Q, --root CHROOT_DIR         要 chroot 進的目錄
  -r, --delete-password         remove the GROUP's password
  -R, --restrict                向其成員限制訪問組 GROUP
  -M, --members USER,...        設定組 GROUP 的成員列表
  -A, --administrators ADMIN,...	設定組的管理員列表
除非使用 -A 或 -M 選項,不能結合使用這些選項。

[root@localhost ~]# gpasswd -a utest root
正在將使用者“utest”加入到“root”組中

使用者調整:

[root@localhost ~]# usermod -help
用法:usermod [選項] 登入

選項:
  -c, --comment 註釋            GECOS 欄位的新值
  -d, --home HOME_DIR           使用者的新主目錄
  -e, --expiredate EXPIRE_DATE  設定帳戶過期的日期為 EXPIRE_DATE
  -f, --inactive INACTIVE       過期 INACTIVE 天數後,設定密碼為失效狀態
  -g, --gid GROUP               強制使用 GROUP 為新主組
  -G, --groups GROUPS           新的附加組列表 GROUPS
  -a, --append GROUP            將使用者追加至上邊 -G 中提到的附加組中,
                                並不從其它組中刪除此使用者
  -h, --help                    顯示此幫助資訊並推出
  -l, --login LOGIN             新的登入名稱
  -L, --lock                    鎖定使用者帳號
  -m, --move-home               將家目錄內容移至新位置 (僅於 -d 一起使用)
  -o, --non-unique              允許使用重複的(非唯一的) UID
  -p, --password PASSWORD       將加密過的密碼 (PASSWORD) 設為新密碼
  -R, --root CHROOT_DIR         chroot 到的目錄
  -s, --shell SHELL             該使用者帳號的新登入 shell
  -u, --uid UID                 使用者帳號的新 UID
  -U, --unlock                  解鎖使用者帳號
  -Z, --selinux-user  SEUSER       使用者賬戶的新 SELinux 使用者對映

檢視檔案型別 file

file /etc/profile
[root@localhost ~]# file /etc/profile
/etc/profile: ASCII text

命令查詢

[root@localhost network-scripts]# which ip
/usr/sbin/ip
//這個命令是更加環境變數PATH進行查詢的

[root@localhost network-scripts]# type ip
ip 是 /usr/sbin/ip

檔案查詢

[root@localhost network-scripts]# whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz

whereis查詢比findm命令快,原因是它只到指定的目錄查查詢是否存在檔案,查詢它查詢的目錄命令如下:
[root@localhost network-scripts]# whereis -l
bin: /usr/bin
bin: /usr/sbin
bin: /usr/lib
bin: /usr/lib64
bin: /etc
bin: /usr/etc
bin: /usr/games
bin: /usr/local/bin
bin: /usr/local/sbin
bin: /usr/local/etc
bin: /usr/local/lib
bin: /usr/local/games
bin: /usr/include
bin: /usr/local
bin: /usr/libexec
bin: /usr/share
man: /usr/share/man/man0p
man: /usr/share/man/man1
man: /usr/share/man/man1p
man: /usr/share/man/man1x
man: /usr/share/man/man2
man: /usr/share/man/man2x
man: /usr/share/man/man3
man: /usr/share/man/man3p
man: /usr/share/man/man3x
man: /usr/share/man/man4
man: /usr/share/man/man4x
man: /usr/share/man/man5
man: /usr/share/man/man5x
man: /usr/share/man/man6
man: /usr/share/man/man6x
man: /usr/share/man/man7
man: /usr/share/man/man7x
man: /usr/share/man/man8
man: /usr/share/man/man8x
man: /usr/share/man/man9
man: /usr/share/man/man9x
man: /usr/share/man/mann
man: /usr/share/man/cs
man: /usr/share/man/da
man: /usr/share/man/de
man: /usr/share/man/fr
man: /usr/share/man/hu
man: /usr/share/man/id
man: /usr/share/man/it
man: /usr/share/man/ja
man: /usr/share/man/ko
man: /usr/share/man/pl
man: /usr/share/man/pt_BR
man: /usr/share/man/ru
man: /usr/share/man/sv
man: /usr/share/man/tr
man: /usr/share/man/zh_CN
man: /usr/share/man/zh_TW
man: /usr/share/man/sk
man: /usr/share/man/es
src: /usr/src/debug
src: /usr/src/kernels

locate命令
安裝:yum install mlocate

find命令:

這裡寫圖片描述

這裡寫圖片描述

這裡寫圖片描述

ext分割槽使用情況檢視

[a123@localhost ~]$ sudo dumpe2fs /dev/sda1
[sudo] password for a123: 
dumpe2fs 1.42.9 (28-Dec-2013)
Filesystem volume name:   <none>
Last mounted on:          /boot
Filesystem UUID:          0fb7dbcc-6ef9-4190-929d-ec9ad22b9ae0
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery extent 64bit flex_bg sparse_super huge_file uninit_bg dir_nlink extra_isize
Filesystem flags:         signed_directory_hash 
Default mount options:    user_xattr acl
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              128016
Block count:              512000
Reserved block count:     25600
Free blocks:              374397
Free inodes:              127680
First block:              1
Block size:               1024
Fragment size:            1024
Group descriptor size:    64
Reserved GDT blocks:      256
Blocks per group:         8192
Fragments per group:      8192
Inodes per group:         2032
Inode blocks per group:   254
RAID stride:              4
RAID stripe width:        4
Flex block group size:    16
Filesystem created:       Wed Nov  1 14:42:32 2017
Last mount time:          Thu May 10 20:10:10 2018
Last write time:          Thu May 10 20:10:10 2018
Mount count:              22
Maximum mount count:      -1
Last checked:             Wed Nov  1 14:42:32 2017
Check interval:           0 (<none>)
Lifetime writes:          191 MB
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:	          128
Journal inode:            8
Default directory hash:   half_md4
Directory Hash Seed:      47316edd-79f8-40eb-845a-0b1f883083b2
Journal backup:           inode blocks
Journal features:         journal_64bit
Journal size:             8M
Journal length:           8192
Journal sequence:         0x000001a0
Journal start:            1
...

xfs檔案系統檢視分割槽資訊:

[root@localhost ~]# df -T /boot
檔案系統       型別   1K-塊   已用   可用 已用% 掛載點
/dev/sda2      xfs  1038336 144960 893376   14% /boot
//使用df -T 檔案目錄檢視檔案目錄掛載點,同時檢視檔案系統型別

使用blkid 檢視分割槽型別
[root@localhost data]# blkid
/dev/sda2: UUID="b6805a83-52b0-4877-9010-3763e8de15ea" TYPE="xfs" 
/dev/sda3: UUID="MxzAo8-9TBY-JSI1-YeAS-NCOg-ppTT-3ShcrX" TYPE="LVM2_member" 
/dev/sda5: UUID="7cb488ef-6784-4ebf-b7e3-e08e68e82249" TYPE="swap" 
/dev/mapper/centos-root: UUID="a66d088e-35b0-4e71-b273-a06f7a2d2760" TYPE="xfs" 
/dev/mapper/centos-home: UUID="cc3df57b-a599-4f22-8459-e06a3a96b804" TYPE="xfs" 
/dev/sda6: UUID="1bbc8c68-7841-4c52-9203-cb18958c2d0d" TYPE="xfs" 
[root@localhost data]# mount UUID="1bbc8c68-7841-4c52-9203-cb18958c2d0d" /data

[root@localhost ~]# xfs_info /dev/sda2 檢視掛載資訊
1meta-data=/dev/sda2              isize=512    agcount=4, agsize=65536 blks
2         =                       sectsz=4096  attr=2, projid32bit=1
3         =                       crc=1        finobt=0 spinodes=0
4data     =                       bsize=4096   blocks=262144, imaxpct=25
5         =                       sunit=0      swidth=0 blks
6naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
7log      =internal               bsize=4096   blocks=2560, version=2
8         =                       sectsz=4096  sunit=1 blks, lazy-count=1
9realtime =none                   extsz=4096   blocks=0, rtextents=0

isize表示inode容量,每個有512Bytes,agcount表示儲存去群組個數,agsize表示每個儲存群組有65536個block,
sectsz表示邏輯扇區(sector)的容量設定,為4096Bytes
bsize表示每個block容量,blocks表示由多少個block在檔案系統中
sunit與swidth與磁碟陣列的strip相關性較高
internal表示登入區的位置,容量為4096*2560Bytes

磁碟檢視:

[root@localhost ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   64G  0 disk 
├─sda1            8:1    0    2M  0 part 
├─sda2            8:2    0    1G  0 part /boot
├─sda3            8:3    0   15G  0 part 
│ ├─centos-root 253:0    0   10G  0 lvm  /
│ └─centos-home 253:1    0    5G  0 lvm  /home
├─sda4            8:4    0    1K  0 part 
└─sda5            8:5    0    1G  0 part [SWAP]
NAME 表示磁碟名稱,
RM表示是否可以拆卸,如usb,光碟等是可以被拆卸的
SIZE:磁碟容量大小
RO:表示是否是指定裝置
TYPE:型別,disk表示磁碟,part表示主分割槽,rom表示只讀,lvm邏輯分割槽
MOUNTPOINT:掛載點

檔案系統與裝置的uuid檢視

方法一:
lsblk -f
[root@localhost ~]# lsblk -f
NAME            FSTYPE      LABEL UUID                                   MOUNTPOINT
sda                                                                      
├─sda1                                                                   
├─sda2          xfs               b6805a83-52b0-4877-9010-3763e8de15ea   /boot
├─sda3          LVM2_member       MxzAo8-9TBY-JSI1-YeAS-NCOg-ppTT-3ShcrX 
│ ├─centos-root xfs               a66d088e-35b0-4e71-b273-a06f7a2d2760   /
│ └─centos-home xfs               cc3df57b-a599-4f22-8459-e06a3a96b804   /home
├─sda4                                                                   
└─sda5          swap              7cb488ef-6784-4ebf-b7e3-e08e68e82249   

方法二:
[root@localhost ~]# blkid
/dev/sda2: UUID="b6805a83-52b0-4877-9010-3763e8de15ea" TYPE="xfs" 
/dev/sda3: UUID="MxzAo8-9TBY-JSI1-YeAS-NCOg-ppTT-3ShcrX" TYPE="LVM2_member" 
/dev/sda5: UUID="7cb488ef-6784-4ebf-b7e3-e08e68e82249" TYPE="swap" 
/dev/mapper/centos-root: UUID="a66d088e-35b0-4e71-b273-a06f7a2d2760" TYPE="xfs" 
/dev/mapper/centos-home: UUID="cc3df57b-a599-4f22-8459-e06a3a96b804" TYPE="xfs" 

檢視裝置詳情:

[root@localhost ~]# parted /dev/sda print
Model: ATA centOS_5-0 SSD (scsi)
Disk /dev/sda: 68.7GB
Sector size (logical/physical): 512B/4096B
Partition Table: msdos
Disk Flags: 

Number  Start   End     Size    Type      File system     標誌
 1      1049kB  3146kB  2097kB  primary
 2      3146kB  1077MB  1074MB  primary   xfs             啟動
 3      1077MB  17.2GB  16.1GB  primary                   lvm
 4      17.2GB  68.7GB  51.5GB  extended
 5      17.2GB  18.3GB  1074MB  logical   linux-swap(v1)

新新增分割槽:

fdisk|gdisk
注意:msdos(MBR)用fdisk, GPT格式用gdis,不能混用,否則可能出現磁碟資料不能使用的情況
檢視格式使用命令:blkid檢視磁碟資訊,再用'parted 裝置 print'檢視詳細資訊 

在使用fdisk 命名時 ? 可以列出命令提示,q表示退出不儲存,w表示儲存立即生效,使用w命令一定要慎重

partprobe
//分割槽生效命令

分割槽格式化:

mkfs.xfs /dev/sda6
[root@localhost ~]# mkfs.xfs /dev/sda6
meta-data=/dev/sda6              isize=512    agcount=4, agsize=65536 blks
         =                       sectsz=4096  attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=262144, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=4096  sunit=1 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

//不同的分割槽有不同的格式化命令, xfs型別使用mkfs.xfs
etx->mkfs.etx
etx1->mkfs.etx1

這裡寫圖片描述

檢視cpu核數

grep 'processor' /proc/cpuinfo
processor	: 0
processor	: 1

表示兩核

掛載:

首先確定掛載到什麼目錄下,例如掛載到/home下,但是注意:如果已經存在/home,新掛載會隱藏原來的掛載,在新掛載被取消後,原來的掛載才會顯示
掛載方法:mount
步驟:1.確定掛載路徑,/data 如果沒有該路徑,先建立:makdir /data
	 2.確定掛載到什麼分割槽下:檢視分割槽命令:lsblk
	 3.獲取分割槽UUID:blkid 分割槽名稱:如 blkid /dev/sda6
	 4.執行掛載:mount UUID="1bbc8c68-7841-4c52-9203-cb18958c2d0d" /data
	 5.驗證掛載:df /data, 檢視該目錄掛載的分割槽是否是在sda6上

解除安裝

umount /data
//解除安裝/data目錄掛載

建立記憶體swap

步驟:
1.劃分一個分割槽:fdisk
2.分割槽生效:partprobe
3.格式化分割槽為swap格式:mkswap /dev/sda{x}
4.投入使用:swapon /dev/sda{x}
5.驗證:free

強大的parted命令:

使用man parted 可以檢視該命令使用詳情,它可以支援MBR,GPT兩個格式分割槽,也支援格式轉換,資訊檢視等,

範例三:建立一個約為 512MB 容量的分割槽
 [root@study ~]# parted /dev/sda print
 Model: ATA QEMU HARDDISK (scsi)
 Disk /dev/sda: 2148MB
 Sector size (logical/physical): 512B/512B
 Partition Table: msdos # 確實顯示的是 MBR 的 msdos 格式喔!
 [root@study ~]# parted /dev/sda mklabel gpt
 Warning: The existing disk label on /dev/sda will be destroyed and all data on
 this disk will be lost. Do you want to continue?
 Yes/No? y
 
   [root@study ~]# parted /dev/vda print
 .....(前面省略).....
 Number  Start   End     Size    File system     Name                  Flags
 .....(中間省略).....
 6 35.4GB 36.0GB 537MB linux-swap(v1) Linux swap # 要先找出來下一個分割槽的起始點!
 [root@study ~]# parted /dev/vda mkpart primary fat32 36.0GB 36.5GB
 # 由於新的分割槽的起始點在前一個分割槽的後面,所以當然要先找出前面那個分割槽的 End 位置!
 # 然後再請參考 mkpart 的指令功能,就能夠處理好相關的動作!
 [root@study ~]# parted /dev/vda print
 .....(前面省略).....
 Number  Start   End     Size    File system     Name                  Flags
 7      36.0GB  36.5GB  522MB                   primary
 [root@study ~]# partprobe
 [root@study ~]# lsblk /dev/vda7
 NAME MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
 vda7 252:7 0 498M 0 part

系統允許開啟的檔案數量,記憶體等限制

ulimit -a
//檢視現有配置
[a123@localhost ~]$ ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 7256
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 4096
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

 選項與引數:
-H :hard limit ,嚴格的設定,必定不能超過這個設定的數值;
-S :soft limit ,警告的設定,可以超過這個設定值,但是若超過則有警告訊息。
在設定上,通常 soft 會比 hard 小,舉例來說,soft 可設定為 80 而 hard
設定為 100,那麼你可以使用到 90 (因為沒有超過 100),但介於 80~100 之間時,
系統會有警告訊息通知你!
-a :後面不接任何選項與引數,可列出所有的限制額度;
-c :當某些程式發生錯誤時,系統可能會將該程式在記憶體中的資訊寫成檔案(除錯用),
這種檔案就被稱為核心檔案(core file)。此為限制每個核心檔案的最大容量。
-f :此 shell 可以建立的最大檔案大小(一般可能設定為 2GB)單位為 KBytes
-d :程式可使用的最大斷裂記憶體(segment)容量;
-l :可用於鎖定 (lock) 的記憶體量
-t :可使用的最大 CPU 時間 (單位為秒)
-u :單一使用者可以使用的最大程式(process)數量。

shell中更換變數的值

path=$PATH
[a123@localhost ~]$ echo ${path/bin/all}
/usr/local/all:/usr/bin:/usr/local/sbin:/usr/sbin:/home/a123/.local/bin:/home/a123/bin
[a123@localhost ~]$ echo ${path/all/bin}
/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/a123/.local/bin:/home/a123/bin
[a123@localhost ~]$ echo ${path//bin/sbin}
/usr/local/sbin:/usr/sbin:/usr/local/ssbin:/usr/ssbin:/home/a123/.local/sbin:/home/a123/sbin

這裡寫圖片描述

history命令檢視最近執行的命令

!number	//!number表示執行代號為number的命令
!command//表示執行最近執行過命令中以command開頭的命令
!!//執行上一條命令

系統登入顯示動畫配置:

cat /etc/issue | cat /etc/issue.net
如:
[a123@localhost etc]$ cat /etc/issue
\S
Kernel \r on an \m
issue 內的各程式碼意義
\d 本地端時間的日期;
\l 顯示第幾個終端機介面;
\m 顯示硬體的等級 (i386/i486/i586/i686...);
\n 顯示主機的網路名稱;
\O 顯示 domain name;
\r 作業系統的版本 (相當於 uname -r)
\t 顯示本地端時間的時間;
\S 作業系統的名稱;
\v 作業系統的版本。

cut 字元擷取命令

這裡寫圖片描述

sort排序命令:

這裡寫圖片描述

wc命令

可以列出有多少行,多少字元,多少位元組

/etc/motd

登入動畫歡迎語

grep ‘PATH’ /etc/* &>> /tmp/path.txt

在/etc下的檔案中查詢‘PATH’關鍵字,同時將所有的輸出資訊(包括正確,錯誤)全都輸出到/tmp/path.txt檔案中
如果只需要輸出正確可以使用 ‘>’
如果只需要輸出錯誤可以使用 '2>'

diff 對比兩個檔案的不同

檢視當前系統的加密演算法

authconfig --test &#124; grep hashing

使用者有效群組切換:newgrp

使用者所屬群組檢視:groups, 其中第一個為有效群組

/etc/passwd檔案結構解析

root:x:0:0:root:/root:/bin/bash
以:作為分割
1.賬號
2.賬號密碼
3.賬號id UID
4.賬號初始化組id,GID
5.賬號描述
6.賬號主目錄
7.賬號使用的shell

/etc/shadow檔案結構解析

bin:*:17110:0:99999:7:::
1.賬號
2.密碼
3.賬號最後一個更改日期,1990.1.1開始計算,每天加1
4.賬號多少天內不能更改密碼
5.賬號有效期
6.賬號密碼過期前多少天提示
7.賬號密碼過期後多少天可以繼續使用
8.賬號多少天后自動失效
9.預留

檢視使用者建立初始化引數設定

cat /etc/login.defs

賬號資訊微調

[root@localhost tmp]# usermod --help
用法:usermod [選項] 登入

選項:
  -c, --comment 註釋            GECOS 欄位的新值
  -d, --home HOME_DIR           使用者的新主目錄
  -e, --expiredate EXPIRE_DATE  設定帳戶過期的日期為 EXPIRE_DATE
  -f, --inactive INACTIVE       過期 INACTIVE 天數後,設定密碼為失效狀態
  -g, --gid GROUP               強制使用 GROUP 為新主組
  -G, --groups GROUPS           新的附加組列表 GROUPS
  -a, --append GROUP            將使用者追加至上邊 -G 中提到的附加組中,
                                並不從其它組中刪除此使用者
  -h, --help                    顯示此幫助資訊並推出
  -l, --login LOGIN             新的登入名稱
  -L, --lock                    鎖定使用者帳號
  -m, --move-home               將家目錄內容移至新位置 (僅於 -d 一起使用)
  -o, --non-unique              允許使用重複的(非唯一的) UID
  -p, --password PASSWORD       將加密過的密碼 (PASSWORD) 設為新密碼
  -R, --root CHROOT_DIR         chroot 到的目錄
  -s, --shell SHELL             該使用者帳號的新登入 shell
  -u, --uid UID                 使用者帳號的新 UID
  -U, --unlock                  解鎖使用者帳號
  -Z, --selinux-user  SEUSER       使用者賬戶的新 SELinux 使用者對映

賬號密碼資訊調整:

[root@localhost tmp]# chage --help
用法:chage [選項] 登入

選項:
  -d, --lastday 最近日期        將最近一次密碼設定時間設為“最近日期”
  -E, --expiredate 過期日期     將帳戶過期時間設為“過期日期”
  -h, --help                    顯示此幫助資訊並推出
  -I, --inactive INACITVE       過期 INACTIVE 天數後,設定密碼為失效狀態
  -l, --list                    顯示帳戶年齡資訊
  -m, --mindays 最小天數        將兩次改變密碼之間相距的最小天數設為“最小天數”
  -M, --maxdays 最大天數        將兩次改變密碼之間相距的最大天數設為“最大天數”
  -R, --root CHROOT_DIR         chroot 到的目錄
  -W, --warndays 警告天數       將過期警告天數設為“警告天數”
  
  //結合/etc/shadow學習

賬號刪除:

[root@localhost tmp]# userdel --help
用法:userdel [選項] 登入

選項:
  -f, --force                   force some actions that would fail otherwise
                                e.g. removal of user still logged in
                                or files, even if not owned by the user
  -h, --help                    顯示此幫助資訊並推出
  -r, --remove                  刪除主目錄和郵件池
  -R, --root CHROOT_DIR         chroot 到的目錄
  -Z, --selinux-user            為使用者刪除所有的 SELinux 使用者對映

賬號id查詢

id [username]

檢視當前登入使用者

finger [username]

更改使用者finger資訊

[a123@localhost ~]$ chfn 
Changing finger information for a123.
名稱 []: a123
辦公 []: a123
辦公電話 []: 193202834832
住宅電話 []: 382831

密碼:
Finger information changed.
[a123@localhost ~]$ finger 
Login     Name       Tty      Idle  Login Time   Office     Office Phone   Host
a123      a123       pts/0          May 11 11:44 a123       193202834832   (10.220.109.108)
root      root       tty1     2:33  May  9 22:41           
[a123@localhost ~]$ 

更改使用者shell

chsh -l //檢視可用的shell
chsh -s /bin/sh; grep a123 /etc/passwd 更改/bin/sh為a123使用的shell

使用者組操作:

[root@localhost a123]# groupadd --help
用法:groupadd [選項] 組

選項:
  -f, --force		如果組已經存在則成功退出
			並且如果 GID 已經存在則取消 -g
  -g, --gid GID                 為新組使用 GID
  -h, --help                    顯示此幫助資訊並推出
  -K, --key KEY=VALUE           不使用 /etc/login.defs 中的預設值
  -o, --non-unique              允許建立有重複 GID 的組
  -p, --password PASSWORD       為新組使用此加密過的密碼
  -r, --system                  建立一個系統賬戶
  -R, --root CHROOT_DIR         chroot 到的目錄

[root@localhost a123]# groupmod --help
用法:groupmod [選項] 組

選項:
  -g, --gid GID                 將組 ID 改為 GID
  -h, --help                    顯示此幫助資訊並推出
  -n, --new-name NEW_GROUP      改名為 NEW_GROUP
  -o, --non-unique              允許使用重複的 GID
  -p, --password PASSWORD	將密碼更改為(加密過的) PASSWORD
  -R, --root CHROOT_DIR         chroot 到的目錄

[root@localhost a123]# groupdel --help
用法:groupdel [選項] 組

選項:
  -h, --help                    顯示此幫助資訊並推出

判斷使用者是否可以使用sudo

visudo 
然後加入: a123	ALL=(ALL)	ALL
這樣a123使用者就有sudo許可權了
這個命令還可以指定部分許可權, 如:
a123 ALL=(root) !/etc/passwd
這樣就沒有更改密碼許可權了

使用者切換

su -l a123
使用login-shell的方式切換到a123使用者

檢視當前登入使用者

who,w
root     tty1         2018-05-09 22:41
a123     pts/0        2018-05-11 16:26 (192.168.199.108)
utest    pts/1        2018-05-11 17:18 (192.168.199.108)
root     pts/2        2018-05-11 17:23 (192.168.199.108)

使用者間發生資訊

 write a123 pts/0
 a123為用名稱
 pts/0使用者終端
 可以使用who檢視
 
 [utest@localhost ~]$ write a123 pts/0
asdf
asdf
用ctrl+d結束髮送
msge n//拒絕接受訊息,如果是root使用者傳來的訊息,無法拒絕接受
msge y //重新開啟接受訊息

mail 郵件傳送

pwck使用者檢測,檢測存在文件使用者

[root@localhost ~]# pwck
使用者“ftp”:目錄 /var/ftp 不存在
使用者“vManager1”:目錄 /home/vManager1 不存在
pwck:無改變

定時任務執行

1,at
安裝:yum install at
啟動:service atd start
系統自啟動:systemctl enable atd
檢視狀態:systemctl status atd
檢視允許使用的使用者:cat /etc/at.allow,一行一個
檢視禁止使用的使用者:cat /etc/at.deny

新增任務:
定時任務:[root@localhost ~]# at 05:40 2018-05-12
at> write a123 pts/1
at> hello a123, I'm comming
at> <EOT>
指定多少時間後的任務:
[root@localhost ~]# at now + 5minutes
at> write a123 pts/1
at> hello a123, I'm comming
at> <EOT>
檢視當前尚未執行的任務:atq
取消尚未執行的任務:atrm [id]
其他時間格式見下圖

batch 可以讓系統在負載<0.8的時候執行任務

這裡寫圖片描述

檢視cpu負載

uptime
05:58:08 up 2 days,  7:14,  3 users,  load average: 0.00, 0.01, 0.05
05:58:08 系統當前時間
up 2 days 系統執行時間
3 users 系統當前登入使用者
load average: 0.00, 0.01, 0.05 系統負載,分別是1分鐘,5分鐘, 15分鐘

迴圈任務:

crontab,使用這個命令可以定時執行任務
同時可以編輯/etc/crontb配置檔案,新增或更新迴圈定時任務

這裡寫圖片描述

這裡寫圖片描述

這裡寫圖片描述

任務背景化

ctrl + z//將正在進行的任務暫停,放到背景

jobs 檢視背景中暫停的任務
[a123@localhost ~]$ jobs
[1]-  已停止               vim
[2]+  已停止               vim

fg 喚醒背景任務, 預設喚醒帶有+號的任務

fg %jobnumber 喚醒指定任務

程式檢視:

ps:
top:
pstree:
renice:更改程式的NI
在執行命令前定義NI:nice -n number command
改變一個已有程式的NI:renice -n number PID

這裡寫圖片描述

top:

這裡寫圖片描述

這裡寫圖片描述
top:

這裡寫圖片描述

這裡寫圖片描述

檢視記憶體使用情況free:

這裡寫圖片描述

檢視系統執行情況:

[a123@localhost tmp]$ uptime
 13:11:23 up 2 days, 14:28,  3 users,  load average: 0.00, 0.01, 0.05
 啟動時間,執行時間,線上使用者,系統負載:1分鐘, 5分鐘, 15分鐘

網路程式監聽:

這裡寫圖片描述

監聽系統資源變化:vmstat

這裡寫圖片描述

vmstat1

檢視檔案被程式使用的情況:fuser

這裡寫圖片描述

通過lsof檢視檔案被引用的情況:

這裡寫圖片描述

安全策略:

selinux:
檢視:ps -eZ
檢視安全策略模式:Enforcing:強制,permissive:寬容模式, disable關閉模式
[a123@localhost ~]$ getenforce
Enforcing
檢視完全策略型別:
[a123@localhost ~]$ sestatus
SELinux status:                 enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   enforcing
Mode from config file:          enforcing
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Max kernel policy version:      28
配置檔案位置:
[a123@localhost ~]$ cat /etc/selinux/config 

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=enforcing
# SELINUXTYPE= can take one of three two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted 

模式設定:
[a123@localhost ~]$ setenforce --help
usage:  setenforce [ Enforcing | Permissive | 1 | 0 ]

檢視安全策略規則:
[root@localhost ~]# getsebool
usage:  getsebool -a or getsebool boolean...
[root@localhost ~]# getsebool -a
abrt_anon_write --> off
abrt_handle_event --> off
abrt_upload_watch_anon_write --> on
antivirus_can_scan_system --> off
antivirus_use_jit --> off
auditadm_exec_content --> on
authlogin_nsswitch_use_ldap --> off
authlogin_radius --> off
authlogin_yubikey --> off
awstats_purge_apache_log_files --> off
boinc_execmem --> on
cdrecord_read_content --> off
cluster_can_network_connect --> off
...

安裝工具:
yum install setools*
檢視每個規則的限制:
[root@localhost ~]# seinfo

Statistics for policy file: /sys/fs/selinux/policy
Policy Version & Type: v.28 (binary, mls)

   Classes:            94    Permissions:       262
   Sensitivities:       1    Categories:       1024
   Types:            4748    Attributes:        256
   Users:               8    Roles:              14
   Booleans:          307    Cond. Expr.:       356
   Allow:          101791    Neverallow:          0
   Auditallow:        155    Dontaudit:        8906
   Type_trans:      17760    Type_change:        74
   Type_member:        35    Role allow:         39
   Role_trans:        416    Range_trans:      5697
   Constraints:       109    Validatetrans:       0
   Initial SIDs:       27    Fs_use:             29
   Genfscon:          105    Portcon:           602
   Netifcon:            0    Nodecon:             0
   Permissives:         6    Polcap:              2

判斷一個程式是否能讀取檔案路程:
ps -eZ
1.[root@localhost ~]# ps -eZ
LABEL                             PID TTY          TIME CMD
system_u:system_r:init_t:s0         1 ?        00:00:55 systemd
system_u:system_r:kernel_t:s0       2 ?        00:00:00 kthreadd
system_u:system_r:kernel_t:s0       3 ?        00:00:00 ksoftirqd/0
system_u:system_r:kernel_t:s0       5 ?        00:00:00 kworker/0:0H
system_u:system_r:kernel_t:s0       7 ?        00:00:00 migration/0

2. [root@localhost ~]# ls -Z
-rw-------. root root system_u:object_r:admin_home_t:s0 anaconda-ks.cfg
drwxr-xr-x. root root unconfined_u:object_r:user_tmp_t:s0 shell

3.分別取到type
[root@localhost ~]# sesearch -A -s kernel_t | grep  admin_home_t
   allow domain admin_home_t : lnk_file { read getattr } ; 
   allow userdom_filetrans_type admin_home_t : lnk_file { read getattr } ; 
   allow userdom_filetrans_type admin_home_t : dir { ioctl read write getattr lock add_name remove_name search open } ; 
   allow domain admin_home_t : dir { getattr search open } ; 

這裡寫圖片描述

更改安全策略配置:

[root@localhost cron.d]# chcon --help
用法:  chcon [選項]... 環境 檔案...
 或:  chcon [選項]... [-u 使用者] [-r 角色] [-l 範圍] [-t 型別] 檔案...
 或:  chcon [選項]... --reference=參考檔案 檔案...
Change the SELinux security context of each FILE to CONTEXT.
With --reference, change the security context of each FILE to that of RFILE.

Mandatory arguments to long options are mandatory for short options too.
      --dereference      affect the referent of each symbolic link (this is
                         the default), rather than the symbolic link itself
  -h, --no-dereference   affect symbolic links instead of any referenced file
  -u, --user=USER        set user USER in the target security context
  -r, --role=ROLE        set role ROLE in the target security context
  -t, --type=TYPE        set type TYPE in the target security context
  -l, --range=RANGE      set range RANGE in the target security context
      --no-preserve-root  do not treat '/' specially (the default)
      --preserve-root    fail to operate recursively on '/'
      --reference=RFILE  use RFILE's security context rather than specifying
                         a CONTEXT value
  -R, --recursive        operate on files and directories recursively
  -v, --verbose          output a diagnostic for every file processed

The following options modify how a hierarchy is traversed when the -R
option is also specified.  If more than one is specified, only the final
one takes effect.

  -H                     if a command line argument is a symbolic link
                         to a directory, traverse it
  -L                     traverse every symbolic link to a directory
                         encountered
  -P                     do not traverse any symbolic links (default)

      --help		顯示此幫助資訊並退出
      --version		顯示版本資訊並退出

GNU coreutils online help: <http://www.gnu.org/software/coreutils/>
請向<http://translationproject.org/team/zh_CN.html> 報告chcon 的翻譯錯誤
要獲取完整文件,請執行:info coreutils 'chcon invocation'

restorecon:修改安全策略與父目錄相同

服務預設啟動命令:

chkconfig daemon on
預設系統啟動開啟服務
chkconfig daemon off
系統啟動不開啟服務

檢視當前服務預設啟動配置
[root@localhost init.d]# chkconfig --list

注:該輸出結果只顯示 SysV 服務,並不包含
原生 systemd 服務。SysV 配置資料
可能被原生 systemd 配置覆蓋。 

      要列出 systemd 服務,請執行 'systemctl list-unit-files'。
      檢視在具體 target 啟用的服務請執行
      'systemctl list-dependencies [target]'。

netconsole     	0:關	1:關	2:關	3:關	4:關	5:關	6:關
network        	0:關	1:關	2:開	3:開	4:開	5:開	6:關

系統自定義服務:

在/usr/lib/systemd/system/下建立service
如nginx.service
[root@localhost system]# cat nginx.service 
[Unit]
Description=nginx - high performance web server
Documentation=http://nginx.org/en/docs/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target

[Service]
Type=forking
PIDFile=/var/run/nginx.pid
ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID

[Install]
WantedBy=multi-user.target

新增完新服務後需要重新載入daemon:systemctl daemon-reload

要求見鳥哥私房菜第四版17章

systemctl 常用命名:
  914  systemctl enable atd
  915  systemctl status atd
  992  pidof systemctl
  998  systemctl restart network
  999  systemctl status  network
 1012  systemctl 
 1014  systemctl list-units
 1015  systemctl list-units --type=service --all
 1016  systemctl list-dependens
 1017  systemctl list-dependencies
 1018  systemctl list-dependencies --type target
 1043  systemctl daemon-reload
 1044  systemctl list-units 
 1045  systemctl list-units | grep test
 1046  systemctl list-units-files --all | grep test
 1047  systemctl list-unit-files --all | grep test
 1048  systemctl start test.service 
 1058  systemctl daemon-reload
 1059  systemctl list-unit-files | grep nginx
 1060  systemctl start nginx-test
 1063  systemctl start nginx-test.service
 1067  systemctl start nginx
 1069  systemctl stop nginx
 1072  systemctl stop nginx-test
 1076  systemctl start nginx-test.service 
 1079  systemctl stop nginx-test.service 
 1096  systemctl status rsyslog.service

系統日誌查詢:

last:使用者登入系統認真檢視
lastlog:每個使用者最後一次登入系統的日誌檢視
dmesg:查詢系統呼叫硬體的日誌
[root@localhost system]# lastlog
使用者名稱           埠     來自             最後登陸時間
root             pts/0    macbook-pro.lan  六 5月 26 13:59:09 +0800 2018
bin                                        **從未登入過**
daemon                                     **從未登入過**
adm                                        **從未登入過**
lp                                         **從未登入過**
sync                                       **從未登入過**
shutdown                                   **從未登入過**
halt                                       **從未登入過**
mail                                       **從未登入過**
operator                                   **從未登入過**
games                                      **從未登入過**
ftp                                        **從未登入過**
nobody                                     **從未登入過**
systemd-network                            **從未登入過**
dbus                                       **從未登入過**
polkitd                                    **從未登入過**
postfix                                    **從未登入過**
chrony                                     **從未登入過**
sshd                                       **從未登入過**
utest            pts/1    192.168.199.108  五 5月 11 17:18:38 +0800 2018
a123             pts/1    192.168.199.108  六 5月 12 19:24:31 +0800 2018
vbird2                                     **從未登入過**
vManager1                                  **從未登入過**
utest1           pts/0                     五 5月 11 16:38:12 +0800 2018
mjlf1                                      **從未登入過**
mjlf2                                      **從未登入過**
mjlf3                                      **從未登入過**
mjlf4                                      **從未登入過**
mjlf_1                                     **從未登入過**
mjlf_2                                     **從未登入過**
mjlf_3                                     **從未登入過**
mjlf_4                                     **從未登入過**
mjlf_5                                     **從未登入過**
mjlf_6                                     **從未登入過**
mjlf_7                                     **從未登入過**
mjlf_8                                     **從未登入過**
tss                                        **從未登入過**
setroubleshoot                             **從未登入過**
nginx                                      **從未登入過**

日誌主要記錄在/var/log/下

journalctl:本性系統啟動後的所以日誌記錄

日誌檔案滿足指定條件後自動切換檔案:
更改配置檔案:/etc/logrotate.conf 
但是一般不建議在這個檔案中更改,可以在/etc/logrotate.d/下為每個服務新增一個自己的配置服務,然後讓/etc/logrotate.conf/引用該檔案,如果nginx的自動日誌檔案處理:
[root@localhost logrotate.d]# cat nginx 
/var/log/nginx/*.log {
        daily
        missingok
        rotate 52
        compress
        delaycompress
        notifempty
        create 640 nginx adm
        sharedscripts
        postrotate
                if [ -f /var/run/nginx.pid ]; then
                        kill -USR1 `cat /var/run/nginx.pid`
                fi
        endscript
}
daily表示執行每天執行,還可以有weekly,month
missingok表示可以執行日誌丟失
rotate 52表示儲存52個日誌檔案
compress壓縮
create 640 nginx adm 建立新的檔案的許可權及所屬使用者和組
在sharedscripts 與endscript之間執行切換所需要執行的命令
pretotate表示在執行logrotate之前執行命令
postrotate表示在執行完logrotate執行的命令
如nginx則是在執行完檔案切換後執行重載入nginx服務命令

系統不同級別切換:

![螢幕快照 2018-05-28 22.19.54](/Users/a123/Desktop/es/螢幕快照 2018-05-28 22.19.54.png)

centOS 忘記密碼:

1. systemctl reboot
2. 開機過程中按 e 進入編輯過程
3. 在第一個linux16 最後加上 elevator=deadline rd.break
4. ctrl + x 重啟
5. mount | grep sysroot 檢視是否掛載這個目錄
6. mount -o remount,rw /sysroot
7. chroot /sysroot
8. echo "new_passwd" | passwd --stdin root
9. touch /.autorelabel
10. exit
11. reboot

網路資訊檢視:

[root@localhost ~]# nmcli connection show
名稱   UUID                                  型別            裝置  
ens33  bee2c570-ffb4-43b2-9969-bdfa2cc1dfc0  802-3-ethernet  ens33 

網路卡資訊檢視
[root@localhost ~]# nmcli connection show ens33
connection.id:                          ens33
connection.uuid:                        bee2c570-ffb4-43b2-9969-bdfa2cc1dfc0
connection.stable-id:                   --
connection.interface-name:              ens33
connection.type:                        802-3-ethernet
connection.autoconnect:                 yes
connection.autoconnect-priority:        0
connection.autoconnect-retries:         -1 (預設)
connection.timestamp:                   1527593398
connection.read-only:                   no
connection.permissions:                 --
connection.zone:                        --
connection.master:                      --
connection.slave-type:                  --
connection.autoconnect-slaves:          -1 (預設)
connection.secondaries:                 --
connection.gateway-ping-timeout:        0
connection.metered:                     未知
connection.lldp:                        -1 (default)
802-3-ethernet.port:                    --
802-3-ethernet.speed:                   0
802-3-ethernet.duplex:                  --
802-3-ethernet.auto-negotiate:          no
802-3-ethernet.mac-address:             00:50:56:37:00:D9
802-3-ethernet.cloned-mac-address:      --
802-3-ethernet.generate-mac-address-mask:--
802-3-ethernet.mac-address-blacklist:   --
802-3-ethernet.mtu:                     自動
802-3-ethernet.s390-subchannels:        --
802-3-ethernet.s390-nettype:            --
802-3-ethernet.s390-options:            --
802-3-ethernet.wake-on-lan:             1 (default)
802-3-ethernet.wake-on-lan-password:    --
ipv4.method:                            manual
ipv4.dns:                               8.8.8.8
ipv4.dns-search:                        --
ipv4.dns-options:                       (預設)
ipv4.dns-priority:                      0
ipv4.addresses:                         10.0.0.77/24
ipv4.gateway:                           10.0.0.1
ipv4.routes:                            --
ipv4.route-metric:                      -1
ipv4.ignore-auto-routes:                no
ipv4.ignore-auto-dns:                   no
ipv4.dhcp-client-id:                    --
ipv4.dhcp-timeout:                      0
ipv4.dhcp-send-hostname:                yes
ipv4.dhcp-hostname:                     --
ipv4.dhcp-fqdn:                         --
ipv4.never-default:                     no
ipv4.may-fail:                          yes
ipv4.dad-timeout:                       -1 (預設)
ipv6.method:                            auto
ipv6.dns:                               --
ipv6.dns-search:                        --
ipv6.dns-options:                       (預設)
ipv6.dns-priority:                      0
ipv6.addresses:                         --
ipv6.gateway:                           --
ipv6.routes:                            --
ipv6.route-metric:                      -1
ipv6.ignore-auto-routes:                no
ipv6.ignore-auto-dns:                   no
ipv6.never-default:                     no
ipv6.may-fail:                          yes
ipv6.ip6-privacy:                       -1 (未知)
ipv6.addr-gen-mode:                     stable-privacy
ipv6.dhcp-send-hostname:                yes
ipv6.dhcp-hostname:                     --
ipv6.token:                             --
proxy.method:                           none
proxy.browser-only:                     no
proxy.pac-url:                          --
proxy.pac-script:                       --
GENERAL.名稱:                           ens33
GENERAL.UUID:                           bee2c570-ffb4-43b2-9969-bdfa2cc1dfc0
GENERAL.裝置:                           ens33
GENERAL.狀態:                           已啟用
GENERAL.預設:                           是
GENERAL.預設6:                          否
GENERAL.VPN 引數:                       否
GENERAL.區:                             --
GENERAL.DBUS路徑:                       /org/freedesktop/NetworkManager/ActiveConnection/1
GENERAL.連線路徑:                       /org/freedesktop/NetworkManager/Settings/1
GENERAL.指定物件:                       --
GENERAL.主路徑:                         --
IP4.地址[1]:                            10.0.0.77/24
IP4.閘道器:                               10.0.0.1
IP4.DNS[1]:                             8.8.8.8
IP6.地址[1]:                            fe80::1156:67b4:4acb:a7eb/64
IP6.地址[2]:                            fe80::e2af:4798:fd58:2475/64
IP6.地址[3]:                            fe80::fd18:9f20:21ee:54c4/64
IP6.閘道器:                               --

引數調整;
nmcli connection modified eth0 \
ipv4.method manual \
ipv4.address 192.168.1.101

生效引數:
nmcli connection up eth0

檢視主機資訊:

[root@localhost ~]# hostnamectl 
   Static hostname: localhost.localdomain
         Icon name: computer-vm
           Chassis: vm
        Machine ID: 1812dada698544a8b8cd93697d6c758f
           Boot ID: 4f73631df47047bf92ffb03ab9c6ea21
    Virtualization: vmware
  Operating System: CentOS Linux 7 (Core)
       CPE OS Name: cpe:/o:centos:centos:7
            Kernel: Linux 3.10.0-693.el7.x86_64
      Architecture: x86-64
      

檢視系統資訊:

[root@localhost ~]# uname -a
Linux localhost.localdomain 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

時間設定

檢視時間
[root@localhost ~]# timedatectl 
      Local time: 二 2018-05-29 19:59:29 CST
  Universal time: 二 2018-05-29 11:59:29 UTC
        RTC time: 二 2018-05-29 11:59:29
       Time zone: Asia/Shanghai (CST, +0800)
     NTP enabled: yes
NTP synchronized: yes
 RTC in local TZ: no
      DST active: n/a
      
檢視時區支援: timedatectl list-timezones

設定時區:timedatectl set-timezone Asia/Shanghai

設定時間:timedatectl set-time "2018-05-29 19:09"

網路時間同步:
ntpdate tock.stdtime.gov.tw
hwlock -w

系統語言設定

檢視語言設定
[root@localhost ~]# locale 
LANG=zh_CN.UTF-8
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
LC_ALL=

[root@localhost ~]# localectl 
   System Locale: LANG=zh_CN.UTF-8
       VC Keymap: cn
      X11 Layout: cn

語言設定
[root@localhost ~]# localectl set-locale LANG=zh_CN.UTF8

系統硬體資訊檢視

dmidecode -t 1//檢視系統資訊
num:
   ────────────────────────────────────────────
          0   BIOS
          1   System
          2   Baseboard
          3   Chassis
          4   Processor
          5   Memory Controller
          6   Memory Module
          7   Cache
          8   Port Connector
          9   System Slots
         10   On Board Devices
         11   OEM Strings
         12   System Configuration Options
         13   BIOS Language
         14   Group Associations
         15   System Event Log
         16   Physical Memory Array
         17   Memory Device
         18   32-bit Memory Error
         19   Memory Array Mapped Address
         20   Memory Device Mapped Address
         21   Built-in Pointing Device
         22   Portable Battery
         23   System Reset
         24   Hardware Security
         25   System Power Controls
         26   Voltage Probe
         27   Cooling Device
         28   Temperature Probe
         29   Electrical Current Probe
         30   Out-of-band Remote Access
         31   Boot Integrity Services
         32   System Boot
         33   64-bit Memory Error
         34   Management Device
         35   Management Device Component
         36   Management Device Threshold Data
         37   Memory Channel
         38   IPMI Device
         39   Power Supply
         40   Additional Information
         41   Onboard Devices Extended Information
         42   Management Controller Host Interface

cpu資訊檢視

[root@localhost ~]# 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
Core(s) per socket:    2
座:                 1
NUMA 節點:         1
廠商 ID:           GenuineIntel
CPU 系列:          6
型號:              142
型號名稱:        Intel(R) Core(TM) i5-7360U CPU @ 2.30GHz
步進:              9
CPU MHz:             2304.000
BogoMIPS:            4608.00
超管理器廠商:  KVM
虛擬化型別:     完全
L1d 快取:          32K
L1i 快取:          32K
L2 快取:           256K
L3 快取:           4096K

磁碟資訊檢視:

[root@localhost ~]# smartctl -a /dev/sda
smartctl 6.5 2016-05-07 r4318 [x86_64-linux-3.10.0-862.3.2.el7.x86_64] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Device Model:     centOS_5-0 SSD
Serial Number:    2D0NGTNW5QT4X95XC1A0
Firmware Version: F.HB4WA4
User Capacity:    68,719,476,736 bytes [68.7 GB]
Sector Sizes:     512 bytes logical, 4096 bytes physical
Rotation Rate:    Solid State Device
Device is:        Not in smartctl database [for details use: -P showall]
ATA Version is:   ATA8-ACS, ATA/ATAPI-5 T13/1321D revision 1
SATA Version is:  SATA 2.6, 3.0 Gb/s
Local Time is:    Tue May 29 20:54:38 2018 CST
SMART support is: Unavailable - device lacks SMART capability.

A mandatory SMART command failed: exiting. To continue, add one or more '-T permissive' options.

相關文章