linux 一切從根開始,一切皆文件~ 讓咱們從一些命令開始瞭解吧linux
man command:manual;查看命令幫助手冊正則表達式
ls:list;查看當前文件夾下的內容ubuntu
-a 查看全部內容,包含隱藏文件及文件夾vim
-l 以列表形式顯示文件及文件夾的詳細信息centos
-h 配合 -l 以人性化的方式顯示文件及文件夾的大小bash
pwd:print work directory;查看當前工做目錄網絡
cd [路徑]:change directory;切換工做目錄app
cd ~ 切換到家目錄ssh
cd 切換到家目錄工具
cd .(點) 切換到當前目錄
cd .. 切換到上級目錄
cd - 切換到上次所在的目錄,至關於回看功能
touch [文件名]:新建文件
mkdir [目錄名]:make directory;建立目錄
-p 遞歸建立目錄
rm [文件名]:remove;刪除指定文件
-r recursion;遞歸刪除目錄下的內容,刪除目錄時須要添加此參數
-f force;強制刪除;忽略不存在的文件,取消提示
-i 爲了防止誤刪,以逐個確認要刪除的文件
clear:清屏;快捷鍵是 ctrl + l
cp:copy;拷貝文件或目錄
-a 一般在複製目錄時使用,它保留連接、文件屬性、並遞歸的複製目錄;簡單來講,就是保持文件的原有屬性
-f force;已經存在的目標文件直接覆蓋,不會提示
-i 交互式複製,在覆蓋目標文件以前給與提示,要求用戶確認
-r recursion;遞歸拷貝目錄下的內容,拷貝目錄時須要添加此參數
-v 顯示拷貝進度
scp:拷貝遠程文件/目錄
遠程拷貝:scp TargetUserName@TargetHostIP : TargetFileName LocalPath(Absolute or Relative)
複製到遠程:scp LocalFileName RemoteUserName@RemoteHostIP : RemoteFileName
-r recursion;遞歸拷貝目錄下的內容,拷貝目錄時須要
注意:scp 的前提條件是目標主機已經安裝了 openssh-server;安裝命令:sudo apt-get install openssh-server
mv:move;移動、重命名
-f force;已經存在的目標文件直接覆蓋,不會提示
-i 交互式操做,在覆蓋目標文件以前給與提示,詢問是否重寫
-v 顯示移動進度
history:歷史命令記錄,保存在 ~/.bash_history 文件中
history 查看歷史命令
!n 根據編號使用第n條命令
echo:回顯命令,輸出 echo 後面的內容,默認輸出到控制檯
>:輸出重定向
如 ls > test.txt;將執行結果重定向到一個文件(會覆蓋)
>>:追加劇定向
如:ls >> test.txt;將執行結果追加到一個文件
more:分屏顯示;每次只顯示一頁,按空格鍵顯示下一頁,按 q 退出顯示,按 h 獲取幫助
|:管道;一個命令的輸出能夠經過管道做爲另外一個命令的輸入,| 的左端表示放,右端表示取
如:ls -lh | more
ln:連接
硬連接:ln 源文件 連接文件
軟連接:ln -s 源文件 連接文件
xargs:分組
-n 分幾組
head:默認取文件的前 10 行內容
-n20 取前 20 行,簡寫爲 -20
tail:默認取文件的最後 10 行內容
-n100 取最後 100 行,簡寫爲 -100
-f 動態打印,經常使用於動態查看日誌
例子:取文件的第 20 - 30 行內容:head -30 /home/Desktop/test.txt | tail -11
grep:文本搜索;若是找到過濾內容,則輸出包含內容的全部行(排行老三)
-v 顯示不包含匹配文本的全部行(取反)
-n 顯示行號
-c 只輸出匹配行的數量
-i 忽略大小寫
-An 顯示過濾結果及接下來的 n 行
多個條件:
支持正則表達式:
^ 行首,搜尋 a 開頭的行;grep -n '^a' 1.txt
$ 行尾,搜索 z 結尾的行;grep -n 'z$' 1.txt
[] 匹配中括號裏一系列字符中的一個;grep -n '[AB]cd[EF]' 1.txt,那麼包含 AcdE... 的行被輸出
.(點) 匹配一個非換行的字符;grep -n 'A.A' 1.txt,那麼包含 AbA, AcA... 的行被輸出
sed:行文件編輯工具(擅長對行內容進行操做)(排行老二)
匹配條件分爲兩種:數字行號或者匹配關鍵字
關鍵字匹配格式:'/keyword/' (隔離符號 / 能夠換成 @、#、!等符號)
-n 取消默認輸出
-i 文件編輯
i (insert)在匹配到的內容上一行增長內容
a (append)在匹配到的內容下一行增長內容
d 刪除匹配的內容
s 替換匹配到的內容
例子:
查看:
替換:sed -i '行號s#原內容#替換後內容#列號' 文件名
增長:sed -i '行號a\增長的內容' 文件名
刪除:sed -i '行號d' 文件名
awk:很是強大的文檔編輯工具,不能能操做文件的行,還能操做文件的列(排行老大)
-F 指定行的分隔符
! 取反
print 顯示內容:
$0 顯示當前行全部內容
$n 顯示當前行的第 n 列內容,若是存在多個 $n,它們之間有逗號,隔開
常見內置變量:
FILENAME 當前輸入文件的文件名,該變量是隻讀的
NR 指定顯示行的行號
NF 輸出最後一列的內容
OFS 輸出格式的列分隔符,缺省是空格
FS 輸出文件的列分隔符,缺省是連續的空格和 Tab 建
例子:
find:查找文件/目錄;用法:find 路徑 -type f/d -name test -size 2M/+2M
-name 按照文件名查找文件
-perm 按照文件權限來查找文件
-user 按照文件屬主來查找文件
-group 按照文件所屬的組來查找文件
-size 指定文件大小(或範圍)來查找文件
-type 查找某一類型的文件
例子:
tar:歸檔命令
打包壓縮:tar [參數] 打包文件名 文件
tar -zcvf test.tar.gz * 將當前路徑下全部的文件和文件夾打包並壓縮到 test.tar.gz 文件中
解壓:tar -zxvf test.tar.gz 解壓到當前路徑下
tar -zxvf test.tar.gz -C /home/ubuntu/Desktop/ 解壓到指定路徑
chmod:修改權限
數字法:
字母 | 說明 |
---|---|
r | 讀取權限,數字代號爲 "4" |
w | 寫入權限,數字代號爲 "2" |
x | 執行權限,數字代號爲 "1" |
- | 不具任何權限,數字代號爲 "0" |
如執行:chmod u=rwx, g=rx, o=r filename 就等同於:chmod u=7, g=5, o=4 filename
chmod 751 file:
文件全部者:讀/寫/執行
同組用戶:讀/執行
其它用戶:執行
&:後臺展現符號(將一個命令從前臺轉到後臺執行,並輸出進程ID)
所有信息符號:2>&1
符號示例:
案例:
腳本內容
#!/bin/bash
echo "$0"
bad command
1 和 2 分開使用(把正確輸出追加到true.log,錯誤輸出追加到false.log,注意空格):bash case.sh 1>>true.log 2>>false.log
1 和 2 混合使用(把輸出所有追加到 result.log):bash case.sh 1>>result.log 2>&1
sudo -s:切換到root用戶
passwd test:設置 test 用戶的密碼
exit:退出登陸用戶
who:查看登陸用戶
reboot、init6:重啓
shutdown -now、init0:當即關機
shutdown -h 20:23:定時關機
shutdown -h +10:十分鐘後自動關機
查看內核版本
cat /etc/redhat-release
[root@hahaha ~]# cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core)
查看運行級別
runlevel
0 關機狀態
1 單用戶
2 多用戶,但沒有 NFS(網絡文件系統)
3 完整的多用戶模式,命令模式,文本模式
4 未使用
5 x11,桌面模式
6 重啓狀態
網卡
網卡啓動:ifup 網卡名稱
重啓某個網卡:ifup 網卡名稱 && ifdown 網卡名稱; 千萬不要只關閉網卡噢
demo: ifdown enp0s3 && ifup enp0s3
修改主機名
臨時修改:hostname test
永久修改(須要重啓):vim /etc/hostname(centos7版本) 或者 使用命令 hostnamectl set-hostname hahaha
查看磁盤分區使用狀況
df -h
隨時補充 ~