2018.03.05
LINUX:
切換虛擬終端:CTRL+ALT+F[1-6]
查看當前得終端設備命令:tty
查看內存:
cat /proc/meminfo
free -h
查看分區:
cat /proc/partitions
lsblk
查看CPU:
lscpu
cat /proc/cpuinfo
查看版本
cat /etc/centos-release
lsb_release -a
查看內核:
uname -r
查看主機名:
hostname
絕對路徑
一定以 / 開頭
相對路徑
MBR分區
主分區:1—4,一塊硬盤最多四個主分區,對主機必須有,主區可以格式化ntfs,存數據
擴展分區:1—4,一塊硬盤最多一個擴展分區,可以沒有擴展分區,劃分成更小的單元,即邏輯分區
邏輯分區:5—-,可以格式化ntfs,存數據
2018.03.07
測試機與生產機要有所區別
如主機名 bash命令控制臺顏色、描述
修改提示符格式
PS1=”\[\e[1;5;41;33m\][\u@\h \W]\\$\[\e[0m\]”
\e \033
|
\u 當前用戶
|
\h 主機名簡稱
|
\H 主機名
|
\w 當前工作目錄
|
\W 當前工作目錄基名
|
\t 24小時時間格式
|
\T 12小時時間格式
|
\! 命令歷史數
|
\# 開機后命令歷史數
|
修改centos7的網卡名稱
gedit /boot/grub2/grub.cfg
linux16 后加 net.ifnames=0
查看內部命令:
enable
help
內部命令執行效率高于外部命令
如果別名同原命令同名,如果要執行原命令,可使用
\ALIASNAME
“ALIASNAME”
’ALIASNAME’
command ALIASNAME
/path/commmand
多個命令可以用;符號分開
一個命令可以用\分成多行
clock
硬件時間
date
內核時間
修改內核時間
date 月日時分年
clock同步內核時間
clock -w
與其他服務器同步時間
ntpdate IP
固化同步時間設置
修改/etc/ntp.conf
加入
server IP iburst
再執行
service ntpd restart
或
systemctl restart ntpd
時區
/etc/localtime
日歷
cal
查看時區
centOS 7
timedatectl status
列出時區
timedatectl list-timezones
修改時區
timedatectl set-timezone 時區名
設置關機時間
shutdown -h +3
3分鐘后關機
取消關機
shutdown -c
w:
系統當前所有的登錄會話及所做的操作
screen命令:
創建新screen會話
screen –S [SESSION]
加入screen會話
screen –x [SESSION]
退出并關閉screen會話
exit
剝離當前screen會話
Ctrl+a,d
顯示所有已經打開的screen會話
screen -ls
恢復某screen會話
screen -r [SESSION]
“” 強引用
‘’ 弱引用
命令行擴展:$( ) 或 “
把一個命令的輸出打印給另一個命令的參數
echo “xxx`hostname`xxx”
echo “xxx$(hostname)xxx”
計算器
bc
obase=2 輸入十進制轉成2進制
ibase=2 輸入2進制轉成十進制
/0nnn 八進制
/xHH 十六進制
echo -e ‘/x41’
括號擴展:{ }
打印重復字符串的簡化形式
echo file{1,3,5}
file1 file3 file5
rm -f file{1,3,5}
echo {1..10}
echo {a..z}
echo {000..20..2}
登錄shell時,會讀取命令歷史文件中記錄下的命令~/.bash_history
登錄進shell后新執行的命令只會記錄在緩存中;這些命令會用戶退出時“追加”至命令歷史文件中
重復前一個命令,有4種方法
重復前一個命令使用上方向鍵,并回車執行
? 按 !! 并回車執行
? 輸入 !-1 并回車執行
? 按 Ctrl+p 并回車執行
!:0 執行前一條命令(去除參數)
!n 執行history命令輸出對應序號n的命令
!-n 執行history歷史中倒數第n個命令
!s 執行最近的以s開頭的命令
!?iti 執行最近的包含iti的命令
echo $HISTSIZE
默認保留1000個歷史命令記錄
在/etc/profile中修改
要重新調用前一個命令中最后一個參數:
? !$ 表示
? Esc, .(點擊Esc鍵后松開,然后點擊 . 鍵)
? Alt+ .(按住Alt鍵的同時點擊 . 鍵)
ctrl-r來在命令歷史中搜索命令
? (reverse-i-search)`’:
?Ctrl+g:從歷史搜索模式退出
history -c
只是清內存,~.bash_history中依然存在
正常操作順序時先刪文件再清內存
man 數字 intro
fhs
文件系統分層標準
顏色配置文件
/etc/DIR_COLORS
CentOS 7目錄變化
?/bin 和 /usr/bin
?/sbin 和 /usr/sbin
?/lib 和/usr/lib
?/lib64 和 /usr/lib64
pwd: printing working directory
-P 顯示真實物理路徑
-L 顯示鏈接路徑(默認)
?絕對路徑
以正斜杠開始
完整的文件的位置路徑
可用于任何想指定一個文件名的時候
?相對路徑名
不以斜線開始
指定相對于當前工作目錄或某目錄的位置
可以作為一個簡短的形式指定一個文件名
?基名:basename
?目錄名:dirname
PWD:當前目錄路徑
OLDPWD:上一次目錄路徑
查看文件狀態
stat
access time:訪問時間,atime,讀取文件內容
modify time: 修改時間, mtime,改變文件內容(數據)
change time: 改變時間, ctime,元數據發生改變
記錄atime會輕微影響服務器效率,一些場景下會禁止記錄atime,服務器效率會提高大約%5
方法:修改/etc/fstab
比如在你的系統中,要為/home文件系統設置notime選項,可以修改/etc/fstab文件相應的行如下:
? LABEL=/home???????? /home?????????????? ext2??? noatime??????? 1 2
要使該設置立即生效,可運行命令”mount -o remount /home”。這樣以后系統讀取/home下的文件時將不會再修改atime屬性。
或
mount -o remount,noatime? /
如果指定某個路徑的話:
chattr -R +A /home
cp -p
保留原有權限、所有者、時間戳
cp -a
保留所有,加遞歸
cp -v
顯示詳細信息
cp xxxx{,.}bak
默認cp不復制權限與所有者
掛載點刪除不了
inode
每個文件占用一個節點編號,
分區內的節點編號有限制,占滿之后無法創建新文件
dd 創建大文件
如果刪除一個正在使用的文件,其空間并不釋放,
需要先執行
> 文件名
因為重定向的默認操作是刪除文件后重建再寫入,即可讓目標文件變成一個空文件
?在 CP的 命令:
分配一個空閑的inode號,在inode表中生成新條目
在目錄中創建一個目錄項,將名稱與inode編號關聯
拷貝數據生成新的文件
?rm 命令:
鏈接數遞減,從而釋放的inode號可以被重用
把數據塊放在空閑列表中
刪除目錄項
數據實際上不會馬上被刪除,但當另一個文件使用數據塊時將被覆蓋。
?如果mv命令的目標和源在相同的文件系統,作為mv 命令
用新的文件名創建對應新的目錄項
刪除舊目錄條目對應的舊的文件名
不影響inode表(除時間戳)或磁盤上的數據位置:沒有數據被移動!
?如果目標和源在一個不同的文件系統, mv相當于cp和rm
2018.03.09
file
確定文件內容
標準輸入
標準輸出
標準錯誤
> 把STDOUT重定向到文件
2> 把STDERR重定向到文件
&> 把所有輸出重定向到文件
> 文件內容會被覆蓋
set -C
禁止將內容覆蓋已有文件,但可追加
>| file 強制覆蓋
set +C 允許覆蓋
>> 原有內容基礎上,追加內容
?2> 覆蓋重定向錯誤輸出數據流
?2>> 追加重定向錯誤輸出數據流
?標準輸出和錯誤輸出各自定向至不同位置
COMMAND > /path/to/file.out 2> /path/to/error.out
?合并標準輸出和錯誤輸出為同一個數據流進行重定向
? &> 覆蓋重定向
? &>> 追加重定向
? COMMAND > /path/to/file.out 2>&1 (順序很重要)
? COMMAND >> /path/to/file.out 2>&1
? ():合并多個程序的STDOUT
( cal 2007 ; cal 2008 ) > all.txt
tr 轉換和刪除字符
使用“<<終止詞”命令從鍵盤把多行重導向給STDIN
管道
STDERR默認不能通過管道轉發,可利用2>&1 或 |& 實現
管道中 – 符號
將 /home 里面的文件打包,但打包的數據不是記錄到文件,而是傳送到 stdout,
經過管道后,將 tar -cvf – /home 傳送給后面的 tar -xvf – , 后面的這個 – 則是取
前一個命令的 stdout, 因此,就不需要使用臨時file了
?tar -cvf – /home | tar -xvf –
命令1 | tee [-a ] 文件名 | 命令2
把命令1的STDOUT保存在文件中,做為命令2的輸入
-a 追加
系統只識別用戶UID
系統用戶 1-499 CentOS6 1-999 CentOS7
對守護進程獲取資源進行權限分配
用戶和組的配置文件
/etc/passwd:用戶及其屬性信息(名稱、 UID、主組ID等)
/etc/group:組及其屬性信息
/etc/shadow:用戶密碼及其相關屬性
/etc/gshadow:組密碼及其相關屬性
passwd文件格式
?login name:登錄用名(wang)
?passwd:密碼 (x) 如果賬號被鎖則顯示!!
?UID:用戶身份編號 (1000)
?GID:登錄默認所在組編號 (1000)
?GECOS:用戶全名或注釋
?home directory:用戶主目錄 (/home/wang)
?shell:用戶默認使用shell (/bin/bash)
?用戶管理命令
? useradd
? usermod
? userdel
?組帳號維護命令
? groupadd
? groupmod
? groupdel
用戶創建:useradd
? useradd [options] LOGIN
-u UID
-o 配合-u 選項,不檢查UID的唯一性
-g GID:指明用戶所屬基本組,可為組名,也可以GID
-c “COMMENT”:用戶的注釋信息
-d HOME_DIR: 以指定的路徑(不存在)為家目錄
-s SHELL: 指明用戶的默認shell程序
可用列表在/etc/shells文件中
-G GROUP1[,GROUP2,…]:為用戶指明附加組,組須事先存在
-N 不創建私用組做主組,使用users組做主組
-r: 創建系統用戶 CentOS 6: ID<500,CentOS 7: ID<1000
-m 創建家目錄,用于系統用戶
-M 不創建家目錄,用于非系統用戶
默認值設定:/etc/default/useradd文件中
顯示或更改默認設置
useradd -D
useradd –D -s SHELL
useradd –D –b BASE_DIR
useradd –D –g GROUP
查看用戶相關的ID信息
id [OPTION]… [USER]
-u: 顯示UID
-g: 顯示GID
-G: 顯示用戶所屬的組的ID
-n: 顯示名稱,需配合ugG使用
/etc/login.defs
換個身份執行命令:
su [-] UserName -c ‘COMMAND
umask
如果所得結果某位存在執行(奇數)權限,則將其權限+1
umask –S 模式方式顯示
umask –p 輸出可被調用
可執行文件上SUID權限
?任何一個可執行程序文件能不能啟動為進程:取決發起者對程序文件是否擁有
執行權限
?啟動為進程之后,其進程的屬主為原程序文件的屬主
?SUID只對二進制可執行程序有效
?SUID設置在目錄上無意義
?權限設定:
chmod u+s FILE…
chmod u-s FILE…
可執行文件上SGID權限
?任何一個可執行程序文件能不能啟動為進程:取決發起者對程序文件是否擁有
執行權限
?啟動為進程之后,其進程的屬組為原程序文件的屬組
?權限設定:
chmod g+s FILE…
chmod g-s FILE…
目錄上的SGID權限
?默認情況下,用戶創建文件時,其屬組為此用戶所屬的主組
?一旦某目錄被設定了SGID,則對此目錄有寫權限的用戶在此目錄中創建的文件
所屬的組為此目錄的屬組
?通常用于創建一個協作目錄
?權限設定:
chmod g+s DIR…
chmod g-s DIR…
Sticky 位
?具有寫權限的目錄通常用戶可以刪除該目錄中的任何文件,無論該
文件的權限或擁有權
?在目錄設置Sticky 位,只有文件的所有者或root可以刪除該文件
?sticky 設置在文件上無意義
?權限設定:
chmod o+t DIR…
chmod o-t DIR…
?例如:
ls -ld /tmp drwxrwxrwt 12 root root 4096 Nov 2 15:44 /tmp
?ACL:Access Control List,實現靈活的權限管理
?除了文件的所有者,所屬組和其它人,可以對更多的用戶設置權限
?CentOS7 默認創建的xfs和ext4文件系統具有ACL功能
?CentOS7 之前版本,默認手工創建的ext4文件系統無ACL功能,需手動增加
tune2fs –o acl /dev/sdb1
mount –o acl /dev/sdb1 /mnt/test
?ACL生效順序:所有者,自定義用戶,自定義組,其他人
?為多用戶或者組的文件和目錄賦予訪問權限rwx
? mount -o acl /directory
? getfacl file |directory
? setfacl -m u:wang:rwx file|directory
? setfacl -Rm g:sales:rwX directory
? setfacl -M file.acl file|directory
? setfacl -m g:salesgroup:rw file| directory
? setfacl -m d:u:wang:rx directory
? setfacl -x u:wang file |directory
? setfacl -X file.acl directory
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/92450