Linux基礎命令整理,這裏不包含shell部分知識shell
shell(命令解釋器)自帶的命令稱爲內部命令,其它的是外部命令
內部命令使用help幫助:help cd
外部命令使用help幫助:ls --help
type命令:用於區分是內部命令仍是外部命令:ubuntu
#type ls
ls is aliased to `ls --color=auto' #外部命令
#type cd
cd is a shell builtin #內部命令複製代碼
pwd命令:顯示當前目錄
ls命令:查看目錄和文件名稱ls -l
查看目錄各個字段含義
vim
第一字段:首字母表明的是文件類型 ,其中"-"爲普通文件、"d"爲目錄文件、"c"爲字符設備文件、"b"爲塊設備文件、"p"爲管道文件、"l"爲連接文件、"s"爲socket文件。「rwx」分別表明擁有讀、寫和執行權限,"-表明無對應權限。三個"rwx"依次表明文件全部者、文件全部者所在用戶組、其它用戶對文件擁有的權限。
第二字段:文件硬鏈接數量
第三字段:文件擁有者
第四字段:文件擁有者所在組
第五字段:文件大小(以字節爲單位)
第六字段:文件最後更改時間
第七字段:文件名(若爲連接文件則追加顯示其連接的原文件的路徑)centos
ls命令其它參數含義:
-a顯示隱藏文件(.開頭的文件)
-r逆序排序
-t按照時間順序顯示
-R遞歸顯示ls -lartR
: 按照時間順序倒序顯示全部文件及其文件夾的文件緩存
cd命令:更改當前的工做目錄cd /path/...
絕對路徑cd ./path/...
相對路徑(./能夠省略)cd ../path/...
相對路徑bash
mkdir命令:創建目錄mkdir -p 遞歸目錄
:遞歸建立目錄微信
rmdir命令:刪除目錄rmdir a/b/c/d/e/
#刪除空目錄rm -r a/b/c/d/
#遞歸刪除目錄,可是系統會作屢次詢問rm -rf a/b/c/d/
#刪除目錄,不作任何詢問網絡
cp命令:複製文件和目錄
-r 複製目錄
-p 保留用戶、權限、時間等文件屬性socket
mv命令:移動文件和重命名mv *.log 目標目錄
tcp
通配符:
*匹配任何字符串
?匹配一個字符串
[xyz]任何一個字符串
[a-z]匹配一個範圍
cat命令:文本內容顯示到終端
head命令:查看文件開頭head -3 文件名稱
#顯示文件開頭3行
tail命令:查看文件末尾tail -3 文件名稱
#顯示文件末尾3行
tail經常使用參數-f,文件內容更新後,同步顯示更新的文件信息tail -f 文件名稱
wc命令:統計文件內容信息wc 文件名稱
tar打包命令(只有打包功能,並不具有壓縮功能)
壓縮命令是gzip和bzip2,bzip2壓縮的文件更小,可是速度比較慢
-c 打包
-x解包
-f指定操做類型爲文件
tar cf ./etc-backup.tar /etc
tar czf ./etc-backup.tar.gz /etc
tar cjf ./etc-backup.tar.bz2 /etc
tar xf ./etc-backup.tar
tar xzf ./etc-backup.tar.gz
tar xjf ./etc-backup.tar.bz2 複製代碼
vi命令的三種模式
命令模式:命令模式是vim打開文件後默認進入的模式,能夠進行文件的快速定位,文件的處理操做
插入模式:編輯文件
行模式:文件的保存退出
命令模式操做:
輸入i鍵:光標當前位置輸入
輸入I鍵:光標當前行開頭位置輸入
輸入a鍵:光標當前下個字符位置輸入
輸入A鍵:光標當前行末尾位置輸入
輸入o鍵:光標當前行下一行新建空行位置輸入
輸入O鍵:光標當前行上一行新建空行位置輸入
hjkl:方向鍵盤,上右下左移動光標,注意終端的上下左右鍵有可能會亂碼
yy:複製當前行
p:粘貼複製的內容
3yy:複製當前行開頭的連續3行
y光標當前位置複製到光標當前行末尾:剪切當前行:剪切光標當前位置至本行末尾
u:撤銷鍵
ctrl+r:重作鍵盤
G:光標快速切換到哪一行。例如 :11G
光標會切換到11行
^:光標快速切換到當前行行首
$:光標快速切換到當前行末尾
末行模式操做:
:w 保存
:q 退出編輯
:wq 保存而且退出編輯
:q! 不保存退出
/要查找的內容:全局查找內容,n查找的內容下一次位置,N查找的內容上一次位置
:s/原來的內容/要替換的內容:只在當前行內容替換生效
:%s/原來的內容/要替換的內容/g:全部內容都替換生效
:11,15s/原來的內容/要替換的內容:11,15行內容替換生效
:set nu 設置顯示行號
:set nonu 設置不顯示行號
配置/etc/virc
設置默認使用vi命令就顯示行號的辦法:
一、vi /etc/virc
二、在文件最後一行添加:set nu 而且保存退出
useradd命令:新建用戶useradd 用戶名
userdel命令:刪除用戶userdel 用戶名
用戶所在的家目錄不會被刪除userdel -r 用戶名
用戶相關的全部配置都會被刪除
passwd命令:修改用戶密碼passwd 用戶名
usermod命令:修改用戶屬性
/etc/passwd文件:查看用戶文件tail /etc/passwd
/etc/shadow文件:查看用戶密碼tail /etc/shadow
groupadd命令:添加用戶組groupadd 用戶組
groupdel命令:刪除用戶組groupdel 用戶組
用戶切換su 用戶名
切換用戶,可是用戶所在環境不變,即pwd路徑不會變化su - 用戶名
切換用戶,同時會切換到用戶家目錄,即/home/用戶名
sudo命令:普通用戶須要執行root用戶權限的解決方案
用戶和用戶組配置文件介紹
/etc/passwd文件
/etc/shadow
一、帳戶名稱
二、加密後的密碼,若是這一欄的第一個字符爲!或者*的話,說明這是一個不能登陸的帳戶,從上面能夠看出,ubuntu默認的就不啓用root帳戶。
/etc/group
文件類型ls -l
查看文件類型
-普通字符
d目錄文件
b塊特殊文件
c字符特殊文件
l符號連接
f命名管道
s套接字文件
文件權限表示法
r讀(數字4)、w寫(數字2)、x執行(數字1)
目錄權限表示法
x進入目錄
rx顯示目錄內的文件名
wx修改目錄內的文件名
chmod命令:修改文件權限
用字符的方式添加和修改權限
u:修改用戶權限
g:修改用戶組權限
o:修改其它用戶權限
+:添加權限
-:減小權限
=:設置權限chmod u+r aaa.log
#給aaa.log文件的所屬用戶添加讀的權限
用數字的方式添加權限chmod 666 aaa.log
#給aaa.log文件設置讀寫權限
須要注意的是不過root用戶的權限是什麼都不會受到影響
chown命令:更改屬主,屬組chown 用戶名 文件名
chown 用戶名:組名 文件名
配置ip地址
eth0表示第一塊網卡,網卡的名稱還多是eno1(板載網卡)、ens33(PEC-E網卡)、enp0s3(無線PEC-E網卡)ifconfig 接口 ip地址 [netmask 子網掩碼]
#配置IP地址ifup 接口
#開啓網卡ifdown 接口
#關閉網卡
添加網關
route add default gw 網關ip
route add -host 指定ip gw 網關ip
route add -net 網段 netmask 子網掩碼 gw 網關ip 案例:route add -net 192.168.0.0 netmask 255.255.255.0 gw 10.1.1.1
檢查網絡
ping命令 #查看網絡是否通
traceroute命令 #網絡很差的時候分析網絡哪一個部分出現問題
mt命令r #網絡很差的時候分析網絡哪一個部分出現問題
nslookup命令 根據域名解析獲取ip
網絡沒問題後分析服務telnet 域名 端口
(端口關閉Connection refused和端口開啓Connected to ...)
tcpdump命令 #抓取網卡的傳輸數據(即抓包的做用)
netstat命令 #查看本地網絡服務
hostname命令 #查看和修改主機名稱hostname 新的主機名
(注意修改/etc/hosts文件配置127.0.0.1 主機名)
配置網卡信息
網卡文件位置:/etc/sysconfig/network-scripts/ifcfg-eth0
ONBOOT=yes 開機自啓動配置
BOOTPROTO=dhcp 動態獲取ip地址
包管理器是方便軟件安裝、卸載、解決軟件依賴關係的重要工具
centos、Redhat使用yum包管理器,軟件安裝包格式rpm
debian、ubuntu使用apt包管理器,軟件安裝包格式爲deb
rpm軟件包格式:
-q 查詢軟件包rpm -q 安裝包名稱(不須要全名稱)
#查詢單個軟件包rpm -qa
#查詢全部安裝包
-i 安裝軟件包rpm -i 軟件包的全名稱
-e 卸載軟件包rpm -e 安裝包名稱
(不須要全名稱)
rpm安裝軟件包的時候常常會出現依賴包找不到的狀況,須要手動解決依賴的安裝包,比較麻煩,這個時候使用yum安裝更加合適,它能自動解決依賴的軟件包
阿里雲rpm鏡像網址和使用
yum經常使用參數yum install 軟件包名稱
yum remove 軟件包名稱
yum list 查看安裝的軟件包
yum update 軟件包名稱
有的時候咱們須要安裝軟件的最新版本,這個時候yum庫可能沒有最新的,就須要手動編譯軟件源代碼安裝軟件,而且須要本身去解決編譯源碼時各類各樣的依賴
第一步: ./configure --prefix = /usr/local/軟件名稱
第二步:make (有的時候看到gmake -j2,gmake指的是跨平臺的方式安裝,-j2指的是用連個cpu來進行編譯,加快編譯速度)
第三步:make install (安裝軟件到--prefix指定目錄,好處是刪除軟件的時候刪除整個包就能夠,不然還須要到/usr/bin等各個目錄下刪除一堆文件)
查看命令
ps -ef #查看進程
pstree #查看進程樹
top命令:
top下按1能夠查看各塊cpu(多核狀況)的資源使用狀況;top -p 進程id
#單獨查看進程的資源使用狀況
調整進程優先級
nice範圍從-20到19,值越小優先級越高,搶佔資源就越多nice -n 10 腳本名稱
renice從新設置已經運行的程序優先級renice -n 15 進程id
進程做業控制
&符號,讓進程在後臺運行
jobs 查看後臺運行的進程
根據jobs第一列的結果fg [序號],可以將後臺進程移到前臺
kill命令:kill -l
#列出進程相關的全部信號類型ctrl + c
#通知前臺進程終止進程kill -9 進程id
#當即結束進程
nohup與&符號配合使進程在退出終端後可以繼續運行
守護進程指的是系統開機自啓動的相關進程,能夠經過/proc/進程id/
目錄查看進程運行詳細信息,經過/var/log目錄下的日誌文件查看更多的進程運行信息,messages系統日誌信息,secure日誌信息,cron定時任務信息
screen可使進程在斷開網絡的狀況下,恢復後依然可以繼續執行
進程管理工具service(配置文件路徑/etc/init.d)和systemctl(service的進化版)
top命令
查看內存剩餘的時候要看free內存,不能看buffers,由於有些程序好比jar程序會佔用很大內存做爲緩存,能夠經過命令釋放掉這部分緩存;當程序開始使用Swap的時候就得考慮內存是否足夠的問題,當內存不足的時候系統會隨機殺掉佔用內存大的進程,致使不可控;
free命令free -m
#使用M做爲單位查看內存,注意若是使用free -g查看內存會偏小,系統會把不足的g內存顯示的時候刪除掉
查看磁盤
查詢系統總體磁盤使用狀況df -h
查詢指定目錄的磁盤佔用狀況du -h /目錄
#默認爲當前目錄
-s 指定目錄佔用大小彙總
-h 帶計量單位
-a 含文件
--max-depth=1 子目錄深度
-c 列出明細的同時,增長彙總值
增長一塊硬盤步驟:
一、添加硬盤
二、分區fdisk:fdisk /dev/sdb
(假設新增的磁盤名稱爲sdb)
三、格式化mkfs:mkfs -t ext4 /dev/sdb1
四、掛載目錄:先建立一個/newdisk掛在目錄 , 掛載mount /dev/sdb1 /newdisk
五、設置能夠永久掛載: 修改/etc/fstab文件