linux 命令筆記

---------常用命令--------------

echo 打印

————日期
[root@zsf ~]# date 顯示日期
2019年 07月 08日 星期一 18:03:48 CST
[root@zsf ~]# date "+%Y-%m-%d %H:%M:%S %j" 格式化顯示
2019-07-08 18:05:15 189(一年中多少天)
[root@zsf ~]# date -s "20190708 10:10:00" 修改日期
2019年 07月 08日 星期一 10:10:00 CST

reboot 重啓

poweroff 關閉系統

wget
-b 後臺下載模式
-p 下載到指定目錄 (下載頁面所有資源)
-t 最大嘗試次數
-c 短點續傳
-r 遞歸下載

ps 查看系統進程狀態
-a 顯示所有進程(包括其他用戶進程)
-u 用戶及其他詳細信息
-x 顯示沒有控制終端的進程

 

top 顯示系統負載信息

pidof 查詢進程pid號值
[root@zsf ~]# pidof sshd
7230 6408

kill 終止某個pid進程

killall 終止某個指定名稱的服務所對應的全部進程

ifconfig 網卡配置 ifcfg-eth0 文件在/etc/sysconfig/network-scripts/下

uname 查看系統內核與系統版本
系統內核 uname-a
系統版本 [root@zsf network-scripts]# cat /etc/centos-release
CentOS release 6.8 (Final)

uptime 查看系統負載
[root@zsf network-scripts]# uptime
10:48:27 up 1:43, 2 users, load average: 0.00, 0.01, 0.05

free -h
系統內存的使用量信息 以gb顯示

who 當前登入主機的終端信息

last 查看所有系統登陸記錄

history 查看歷史命令

sosreport 收集系統配置和架構信息 輸出診斷文檔

---------------目錄切換-------------

pwd 顯示當前用戶所出的工作目錄

cd

ls

ll

---------------文本編輯-----------------

cat 查看純文本文件(內容較少的)

more 查看純文本文件(內容較多的)

head -n 20 查看文本的前20行

tail -n 20 查看文件的後20行
實時查看後多少行 tail -f

tr 【原始字符】【目標字符】 替換
cat 文件 | tr ‘[a-z]’‘[A-Z]’ 將文件中的小寫替換爲大寫
-c 用前字符串的補集替換此字符串字符集,要求字符集爲ASCII
-d 刪除前字符串的所有字符
-s 刪除所有重複出現的字符序列,保留一個

wc 統計指定文本行數
-l 只顯示行數
-w 只顯示單詞數
-c 只顯示字節數
/etc/passwd 系統用戶


stat 文件名 查看文件的存儲信息和時間信息

cut 按列提取文本字符
cut -

diff 比較多個文本之間文件的差異


---------------文件管理-----------------
touch 創建空白文件或設置文件的時間
-a 讀取時間 atime
-m 修改時間 mtime
-d 同時修改 atime與mtime

mkdir 創建文件夾 -p 創建多層文件夾

cp 複製文件或目錄
-p 保留原始文件的屬性
-d 若對象爲‘連接文件’,則保留該‘連接文件’屬性
-r 遞歸持續複製(用於目錄)
-i 若目標文件存在則詢問是否覆蓋
-a 相當於-pdr

mv 剪切文件或文件重命名
mv 源文件 【目標路徑 目標文件名】

rm 刪除文件或目錄 -f 強制刪除
-r 刪除目錄

dd 按照指定大小和個數的數據塊來複制或轉換文件
if= 輸入文件名稱
of= 輸出文件名稱
bs= 設置每個塊的大小
count= 設置要複製塊的個數
[root@linuxprobe
dd if=/dev/cdrom of=RHEL server 7.0 x86 64 LinuxProbe.Com.iso
7311360+0
records in
7311360+0
records out
3743416320
bytes (3.7 GB) copied, 370.758 s, 10.1 MB/s

file 查看文件類型

---------------打包與壓縮-----------------

tar 對文件進行打包或壓縮
-c 創建壓縮文件
-x 解壓
-t 查看壓縮包裏有哪些文件
-z 用Gzip壓縮或解壓
-j 用bzip2壓縮或解壓
-v 顯示壓縮或解壓
-f 目標文件名
-p 保留原始的權限和屬性
-p 使用絕對路徑來壓縮
-c 指定解壓到那個目錄

創建一般用 tar -czvf 壓縮包名.tar.gz 要壓縮的目錄
解壓 tar -xzvf 壓縮包名.tar.gz


grep 用於在文本中執行關鍵詞搜索,屏顯示匹配結果
-b 將可執行文件(binary)當作文本文件搜索
-c 顯示找到的行數
-i 忽略大小寫
-n 顯示行號
-v 反向選擇 僅列出沒有關鍵詞的行

cat 文件 | grep 關鍵詞

[root@zsf home]# cat 表空間.txt |grep -c 表
20


find 按照指定條件來查找文件,比如(文件名、大小、修改時間、權限等)
-name 匹配名稱
-perm 匹配權限
-user 匹配所有者
-group 匹配所有組
-mtime -n +n 匹配修改時間 (-n 指n天以內,+n 指n天以前)
-atime -n +n 匹配訪問時間
-ctime -n +n 匹配修改文件權限的時間
-nouser 匹配無所有者的文件
-nogroup 匹配無所有組的文件
-newer f1 !f2 匹配比f1新 但比f2 舊的文件
--type b/d/c/p/l/f 匹配文件類型 (塊設備/目錄/字符設備/管道/鏈接文件/文本文件)
-size 文件大小
-prune 忽略某個目錄
-exec ······{}\; 後面可跟用於進一步處理搜索結果的命令

find / -user root -exec cp -a {} /home/ \;
意思是 在根目錄西安查找有root所有者的所有文件 執行復制 所有文件到 /home下


-----------------管道符、重定向、環境變量-------------------

標準輸入重定向(stdin) 默認從鍵盤輸入,也可從其他文件或命令輸入

標準輸出重定向(stdout) 默認輸出到屏幕

錯誤輸出重定向(stderr) 默認輸出到屏幕

[root@zsf home]# man ls > read.txt 將查出的信息寫入 read中
[root@zsf home]# man ll >read.txt 在之前的基礎上追加

[root@zsf home]# echo > read.txt 清空read
[root@zsf home]# wc -l < read.txt 轉入wc輸出文本行數

--------------管道符-------------
| 連接多個命令


---------------通配符--------------
? 匹配一個或多個
* 匹配任意個
[ ] 在之中選一個
------------轉義---------------

反斜槓(\):使反斜槓後面的一個變量變爲單純的字符串。

單引號(''):轉義其中所有的變量爲單純的字符串。

雙引號(""):保留其中的變量屬性,不進行轉義處理。

反引號(``):把其中的命令執行後返回結果。

[root@zsf home]# p=5
[root@zsf home]# echo price is $$p 不用轉義符
price is 32265p

[root@zsf home]# echo price is \$$p 用轉義符
price is $5


[root@zsf home]# echo `uname -a`
Linux zsf 2.6.32-642.el6.x86_64 #1 SMP Tue May 10 17:27:01 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux


--------重要的10個環境變量---------
HOME 主目錄
SHELL 用戶在使用的shell解釋器名稱
HISTSIZE 輸出的歷史命令記錄條數
HISTFILESIZE 保存的歷史命令記錄條數
MAIL 郵件保存路徑
LANG 系統語言、語系名稱
RANDOM 生成一個隨機數字
PSL bash解釋器的提示符
PATH 定義解釋器搜索用戶執行命令的路徑
EDITOR 用戶默認的文本編輯器


自定義變量 簡化較深層的路徑(這種變量不具有全局性,作用範圍有限,不能被其他用戶使用)但如果有需要,可以用export提升爲全局變量
[root@zsf ~]# mkdir /home/kkk
[root@zsf ~]# WORK=/home/kkk/
[root@zsf ~]# echo $WORK
[root@zsf ~]# cd $WORK

搜索所執行的命令的路徑
[root@zsf home]# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

----------vim文本編輯器-------------------
命令模式:控制光標移動,可對文本進行復制、粘貼、刪除、查找等公國

輸入模式:正常的文本錄入

末行模式:保存或退出文檔,以及設置編輯環境

------------常用命令--------------

dd 剪切/刪除光標所在整行
5dd 剪切/刪除光標處考試的5行
yy 複製光標所在整行
5yy 複製從光標處開始的5行
n 顯示搜索命令定位到的下一個字符串
N 顯示搜索命令定位到的上一個字符串
u 撤銷上一步操作
p 將之前刪除(dd)或複製(yy)的數據粘貼到光標後面


----------------末行模式
:w 保存
:q 退出
:q!強制退出
:wq! 強制保存退出
:set nu 顯示行號
:set nonu 不顯示行號
:命令 執行該命令
:整數 跳轉到該行
:s/one/two 將當前光標所在行的第一個one 替換成two
:s/one/two/g 將當前光標所在行的所有one 替換成two
:%s/one/two/g 將全文中的所有one 替換成two
?字符串 在文本從下至上搜索該字符串
/字符串 在文本中從上至下搜索該字符串


修改主機名

vim /etc/sysconfig/network

修改網卡信息

[root@zsf etc]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
HWADDR=00:0C:29:5A:47:AC
TYPE=Ethernet
UUID=12d5cf31-6820-4e86-8d52-35da3ac0a373
ONBOOT=yes --開機自啓
NM_CONTROLLED=yes
BOOTPROTO=dhcp


配置yum軟件倉庫

yum配置文件
[root@zsf etc]# cd /etc/yum.repos.d/
[root@zsf yum.repos.d]# ll
總用量 24
-rw-r--r--. 1 root root 1991 5月 19 2016 CentOS-Base.repo
-rw-r--r--. 1 root root 647 5月 19 2016 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root 289 5月 19 2016 CentOS-fasttrack.repo
-rw-r--r--. 1 root root 630 5月 19 2016 CentOS-Media.repo
-rw-r--r--. 1 root root 6259 5月 19 2016 CentOS-Vault.repo

--未完


------------------------------編寫shell腳本--------------------

賦值

name=20
name=kewen

調用值
$name

判斷
if [ $name -eq kewen ]
then
echo "一致"
fi

if [ $name -eq kewen ] ;then
echo "一致"
elif
echo "不一致"
fi

條件符號
-eq 等於
-ne 不等於
-gt 大於
-lt 小於
-ge 大於等於
-le 小於等於

----------循環----------
while true
do
...

exit 0 -----退出
done

for 變量 in `cat 列表/內容.txt` --反引號也可以變成 $(cat ...)
do
命令 調用變量
useradd $變量

done


case $變量 in
[...]) -------奇怪的括號
echo ...
;; ---------奇怪的語法
[...])
echo ...
;;
*)
echo ...
esac

 

---------------------------系統時間校準------------------------
1.date {查看目前本地的時間}

2.hwclock --show {查看硬件的時間}

3.如果硬件時間和系統時間不同,那就對硬件的時間進行修改

4.hwclock --set --date '2019-12-15 15:15:15' {設置硬件時間爲14年12月15日15點15分15秒}
5.hwclock --hctosys {設置系統時間和硬件時間同步}
6.clock -w {保存時鐘}

 

--------------計劃任務服務程序-----------

echo"命令" | at 時間

crond設置任務
分 0-59 一定要有
時 0-23
日 1-31 如果沒有可以用* 或者用 - 表示一個時間段
月 1-12 如果沒有可以用*
星期 0-7(0和7都是星期日) 多天可以用,隔開
命令 執行的命令或程序腳本


星期 和 日 不能同時有值 否則衝突
時間間隔 可以用 / ---- */2 表示每隔兩分鐘執行一次

 

--------------身份用戶 文件權限

useradd 用戶名 創建用戶
-d 指定用戶家目錄
-e 賬戶到期時間 格式爲 YYYY-MM-DD
-u 指定改用戶的默認UID
-g 指定一個初始的用戶基本組(必須已存在)
-G 指定一個或多個基本用戶組
-N 不創建與用戶同名的基本用戶組
-s 指定該用戶的默認Shell解釋器

userdel 用戶名 刪除用戶

groupadd 羣組名 能夠對一類用戶統一安排權限

usermod 用戶名 修改用戶的屬性
-c 填寫用戶賬戶備註信息
-d -m 參數-m 與參數-d 連用,可重新指定用戶的家目錄並自動把舊的數據轉義過去
-e 賬戶的到期時間,YYYY-MM-DD
-g 變更所屬用戶組
-G 變更擴展用戶組
-L 鎖定用戶禁止其登陸系統
-U 解鎖用戶
-s 變更默認終端
-u 修改用戶UID

passwd 用戶名 然後修改密碼 root用戶修改其他用戶密碼不需要驗證舊密碼

-l 鎖定用戶
-u 解鎖
--stdin 允許通過標準輸入修改用戶密碼 例: echo "newpassword" | passwd --stdin username
-d 使該用戶可用空密碼登陸系統
-e 強制用戶在下次登陸時修改密碼
-s 顯示用戶的摩瑪是否被鎖定,以及密碼所採用的加密算法名稱


---------------文件權屬

-:普通文件。
d:目錄文件。
l:鏈接文件。
b:塊設備文件。
c:字符設備文件。
p:管道文件。


chmod 修改權限
chown 修改所有者所有組

-------------------------文件隱藏屬性
chattr 文件名 設置文件的隱藏權限
+i 無法對文件進行修改 如果時目錄 僅能修改其中子文件內容而布恩那個新建或刪除文件
+a 僅允許補充內容,無法覆蓋/刪除內容
+S 文件內容在變更後立即同步到硬盤
+s 徹底從硬盤刪除,不可恢復(用0填充文件所在硬盤區域)
+A 不子啊修改這個文件或目錄的最後訪問時間
+b 不在修改文件或目錄的存取時間
+D 檢查壓縮文件中的錯誤
+d 使用dump命令備份時忽略本文件/目錄
+c 默認將文件或目錄進行壓縮
+u 當刪除該文件後依然保留其在硬盤中的數據,方便日後恢復
+t 讓文件系統支持尾部合併(tail-merging)
+X 可以直接訪問壓縮文件中的內容

lsattr 文件 顯示文件的隱藏權限

顯示完是什麼屬性就可以通過 - 去掉該屬性


-------------------文件訪問控制

setfacl 管理ACL規則,控制讀寫執行權限
-R 遞歸參數
-m 針對普通文件
-b 刪除ACL

getfacl 顯示文件上設置的ACL信息,查看


-----------------su 和sudo

visudo 可以更改配置文件,誰可以使用 允許使用的主機=(以誰的身份) 可執行的命令列表
在98行
##
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
zsf ALL=(ALL) ALL ---但是這種方式不能在生產環境中,
zsf ALL=(ALL) 命令的絕對路徑 --需要有限的給予權限,用whereis確定命令路徑,然後給權限

sudo 添加NOPASSWD參數,不需要輸入密碼
root ALL=(ALL) ALL
zsf ALL=NOPASSWD: 絕對路徑

使用時某個root權限才能看的文件命令時 前面加個sudo 就好

 

------------------------存儲結構與磁盤劃分


mount 掛載文件系統
-a 掛載所有在/etc/fstab中定義的文件系統
-t 指定文件系統的類型

umount 卸載

umount /dev/sdb2

--------------------------------------掛載和永久生效---------------
fdisk 【硬盤名】 管理磁盤分區
-m 查看全部可用的參數
-n 添加新的分區
-d 刪除某個分區信息
-l 列出某個分區的類型
-t 改變某個分區的類型
-p 查看分區信息
-w 保存並退出
-q 不保存直接退出

創建完畢之後格式化 mkfs tab鍵查看類型並選擇

[root@zsf ~]# mkfs.ext4 /dev/sdb1


[root@zsf ~]# mkdir /newFS ---創建一個新的文件夾
[root@zsf ~]# mount /dev/sdb1 /newFS/ ---掛載到這個文件夾中
[root@zsf ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_zsf-lv_root
18G 2.2G 15G 14% /
tmpfs 931M 0 931M 0% /dev/shm
/dev/sda1 477M 40M 412M 9% /boot
/dev/sdb1 9.8G 23M 9.2G 1% /newFS

讓掛載永久生效 vim /etc/fstab
/dev/sdb1 /newFS ext4 defaults 0 0


---------------------------------------

du 查看文件數據佔用量

 


-----------添加交換分區----------------------

前面和擴展硬盤一樣

格式化命令則用的時 mkswap 路徑

配置文件裏面加上格式 swap swap 其他一樣


----------------------磁盤容量配額-----------------

quota 命令 可以限制某用戶的硬盤使用額度
在 /etc/fstab 中增加一個uquota


xfs_quota 配額 文件系統
xfs quota x c 'limit bsof t=3m bhard=6m isoft=3 ihard=6 tom' /boot

edquota 用戶
edquota u tom

 

----------------------軟硬方式鏈接--------------------

硬鏈接( hard link ):指向原始文件的inode的指針,每增加一個硬鏈接,則inode 增加1

軟鏈接 (符號鏈接 sysbolic link):僅僅包含所鏈接文件的路徑名,可以鏈接目錄文件,但如果原始文件被刪除,則無效

 

ln 創建鏈接文件

-s 創建符號鏈接
-f 強制創建文件或目錄的鏈接
-i 覆蓋前先詢問
-v 顯示創建鏈接的過程


創建軟連接
ln 原始文件路徑名 現在的路徑名

 

--------------------------------raid 與 lvm 磁盤陣列技術------------------------

RAID 獨立冗餘磁盤陣列


RAID 0

將多塊物理硬盤通過硬件或軟件方式串聯在一起,組成一個大的卷組,將數據一次寫入到各個物理硬盤中,提升數倍的讀寫速度,如果任意一塊硬盤故障就會導致整個系統收到破壞


RAID 1

在RAID 0的基礎上,將數據同時存儲在每塊硬盤上,故障時,自動以熱交換的方式恢復正常使用


RAID 5

RAID5技術是把硬盤設備的數據奇偶校驗信息保存到其他硬盤設備中。
RAID 5磁盤陣列組中數據的奇偶校驗信息並不是單獨保存到某一塊硬盤設備中,而是存儲到
除自身以外的其他每一塊硬盤設備上,這樣的好處是其中任何一設備損壞後不至於出現致命
缺陷;

RAID這樣的技術特性“妥協”地兼顧了硬盤設備的讀寫速度、數據安全性
與存儲成本問題。


RAID 10

RAID 10技術需要至少 4塊硬盤來組建,其中先分別兩兩製作成 RAID 1磁盤陣列,以保
證數據的安全性;然後再對兩個 RAID 1磁盤陣列實施 RAID 0技術,進一步提高硬盤設
備的讀寫速度。這樣從理論上來講,只要壞的不是同一組中的所有硬盤,那麼最多可 以損
壞 50%的硬盤設備而不丟失數據。


---------------部署磁盤陣列

在虛擬機系統關閉後增加四塊硬盤 ,然後並掛載、格式化、配置永久生效

mdadm 管理Linux系統中的軟件RAID陣列卡
-a 檢測設備名稱
-n 指定設備數量
-l 指定RAID級別
-C 創建
-v 顯示過程
-f 模擬設備損壞
-r 移除設備
-Q 查看摘要信息
-D 查看詳細信息
-S 停止RAID磁盤陣列
-------------------------------------lvm部署

7-2 常用的 LVM部署命令
/
掃描
pvscan
vgscan
lvscan
建立
pvcreate
vgcreate
lvcreate
顯示
pvdisplay
vgdisplay
lvdisplay
刪除
pvremove
vgremove
lvremove
擴展
vgextend
lvextend
縮小
vgreduce
lvreduce


--------------------iptables 與 firewalld防火牆


--
get default zone 查詢默認的區域名稱
--
set default zone=< 區域名稱 設置默認的區域,使其永久生效
--
get zones 顯示可用的區域
--
get services 顯示預先定義的服務
--
get active zones 顯示當前正在使用的區域與網卡名稱
--
add source= 將源自此
IP或子網的流量導向指定的區域
--
remove source= 不再將源自此
IP或子網的流量導向某個指定區域
--
add interface=< 網卡名稱 將源自該網卡的所有流量都導向某個指定區域
--
change interface=< 網卡名稱 將某個網卡與區域進行關聯
--
list all 顯示當前區域的網卡配置參數、資源、端口以及服務等信息
--
list all zones 顯示所有區域的網卡配置參數、資源、端口以及服務等信息
--
add service=< 服務名 設置默認區域允許該服務的流量
--
add port=< 端口號 協議 設置默認區域允許該端口的流量
--
remove service=< 服務名 設置默認區域不再允許該服務的流量
--
remove port=< 端口號 協議 設置默認區域不再允許該端口的流量
--
reload 讓
“永久生效”的配置規則立即生效,並覆蓋當前的配置規則
--
panic on 開啓應急狀況模式
--
panic off 關閉應急狀況模式

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章