文章目錄
- -=-=Liunx基礎
- 1. vi和vim的三種模式
- 2. vi和vim的操作
- 3. 關機和重啓
- 4. 用戶管理
- 5. 組管理
- 6. 三種配置文件
- 7. 指定運行級別
- 8. 面試題
- 9. 幫助命令
- 10. 文件目錄類指令
- 11. 查看文件指令
- 12. 輸出重定向>和追加>>
- 13. echo指令
- 14. head指令
- 15. tail 指令
- 16. ln指令--軟連接
- 17. history指令
- 18. 時間日期類指令
- 19. 搜索查找類指令
- 20. 壓縮和解壓類
- 21. 組管理和權限管理
- 22. 權限的基本介紹
- 23. 任務調度crond
- 24. Linux 磁盤分區、掛載
- 25. 網絡配置 ifconfig
- 26. 進程管理ps
- 27. RPM和 YUM
- 28. 系統管理命令
- `☆`
-=-=Liunx基礎
1. vi和vim的三種模式
2. vi和vim的操作
- 正常模式下
yy
複製(xyy:x可以爲數字)- 正常模式下
p
粘貼- 正常模式下
dd
刪除 (xdd:x可以爲數字)- 命令行模式下
/
要查找的內容- 命令行模式下
:set nu/nonu
設置/取消行號- 正常模式下
u
撤銷- 正常模式下
gg
最首行G
最末行- 編輯模式下如果
esc
失效,使用Ctrl + C
- 正常模式下
xx shift g
跳轉指定行- 注意退出時的
:
是英文輸入法下的source /etc/profile
修改過配置文件後刷新資源- vi和vim區別
3. 關機和重啓
shutdown -h now
立即關機
shutdown -h 1
一分鐘後關機
shutdown -r now
立即重啓
halt
關機
reboot
重啓
syn
將內存中的數據同步到磁盤(關機重啓之前使用)
logout
註銷用戶
4. 用戶管理
- 添加用戶指令
useradd 用戶名
- 創建指定自錄的用戶
useradd -d /home/dd xd
(useradd -d 自錄用戶名)- 給用戶設置/修改密碼
passwd
用戶名輸入兩次密碼- 刪除用戶(保留家目錄–推薦使用)
usede1用戶名
- 刪除用戶以及家目錄
userde1 -r 用戶名
- 查看用戶
id 用戶名
- 切換用戶命令
su -用戶名
不使用su切換用戶,只是用戶發生變化,當前的操作環境還是在之前的用戶下;
使用su -切換用戶,不僅用戶變化,且操作環境也變成新用戶的環境- 返回到原來的用戶
exit
5. 組管理
- 添加組
groupadd 組名
- 新建用戶指定組
useradd -g 組名 用戶名
- 修改用戶的組
usermod -g 新組名 用戶名
6. 三種配置文件
/etc/passwd文件
用戶(user)的配置文件,記錄用戶的各種信息
每行的含義: 用戶名:口令:用戶標識號:組標識號:註釋性描述:主目錄:登錄 Shell
/etc/shadow文件
口令的配置文件
每行的含義:登錄名:加密口令:最後一次修改時間:最小時間間隔:最大時間間隔:警告時間:不活動時間:失效時間:標誌
/etc/group文件
組(group)的配置文件,記錄 Linux 包含的組的信息
每行含義: 組名:口令:組標識號:組內用戶列表
cat /etc/redhat-release
查看當前liunx版本
cat /proc/version
查看當前linux版本
7. 指定運行級別
0:關機
1:單用戶【找回丟失密碼】
2:多用戶狀態沒有網絡服務
3:多用戶狀態有網絡服務
4:系統未使用保留給用戶
5:圖形界面
6:系統重啓
常用運行級別是 3 和 5 ,要修改默認的運行級別可改文件/etc/inittab 的 id:5:initdefault:這一行中的數字。
CentOs6是通過init 數字來設置的,而CentOs7則比較複雜
通過systemctl get-default
來獲取當前運行級別,詳情搜索博客!
8. 面試題
-
如何找回 root 密碼(CentOs6),如果我們不小心,忘記 root 密碼,怎麼找回?
思路:
進入到 單用戶模式,然後修改 root 密碼。因爲進入單用戶模式,root 不需要密碼就可以登錄。總結:
開機->在引導時輸入 回車鍵-> 看到一個界面輸入 e -> 看到一個新的界面,選中第二行(編輯內核)在輸入 e-> 在這行最後輸入 1 ,再輸入 回車鍵->再次輸入 b ,這時就會進入到單用戶模式。這時,我們就進入到單用戶模式,使用 passwd 指令來修改 root 密碼。
9. 幫助命令
- man
man ls
- help
help 命令
10. 文件目錄類指令
顯示當前工作目錄的絕對路徑
pwd
ls
-a
-l == ll -h
cd
切換目錄
mkdir
創建目錄
mkdir -p
創建多級目錄
rmdir
只能刪除空目錄
rm -rf 遞歸刪除
-r 遞歸刪除
-f 強制刪除不提示
touch 文件名稱
創建文件
複製命令 cp
原來的文件包括目錄 要複製到的目錄
-r 遞歸複製整個文件夾
mv
移動和改名指令
11. 查看文件指令
cat
只能讀
-n 顯示行號
通常使用 cat 文件名 | more
more
基於VI編輯器的文本過濾器,全屏按頁顯示q退出查看
less
並不是一次將整個文件加載後顯示,可以通過PgUp,PgDn控制
12. 輸出重定向>和追加>>
13. echo指令
echo $PATH
輸出環境變量到控制檯echo "字符串"
14. head指令
head a.txt
用於顯示文件的開頭部分head -n 8 a.txt
15. tail 指令
tail -n 20 /etc/profile
默認輸出文件後十行內容tail -f 文件名 實時查看文件
16. ln指令–軟連接
ln -s /root/soft/tomcat/bin/startup.sh tomcatStarter
刪除: rm -rf tomcatStarter
tomcatStarter後面不能加/
17. history指令
- history 查看所有的歷史指令
- history 10 查看最近使用過的10個指令
- !1021 執行編號爲1021的指令
18. 時間日期類指令
date
顯示時間- date +%Y 顯示年
- date +%M 顯示分
Y m d H M S
年 月 日 時 分 秒date "+%Y %m %d %H:%M:%S"
- 設置日期
date -s “字符串時間”- 查看日曆
cal
查看是當前月
cal 2020
查看的是今年的
19. 搜索查找類指令
19.1 find指令
find /xxx -yyy zzz
搜索的範圍
-name
-user
-size +20M大於20M -20M小於20M的文件find / -name filename.txt
根據名稱查找/目錄下的filename.txt文件。
19.2 grep指令–過濾查找
|
管道 將前一個命令的處理結果輸出傳遞給後面的命令處理。grep lang anaconda-ks.cfg –color
在anaconda-ks.cfg 文件中查找 lang 並高亮顯示
20. 壓縮和解壓類
-
gzip 文件
—> 文件.gz 壓縮後不會保留原來的文件
gunzip 文件.gz
—> -
zip -r myZip.zip /home/
unzip -d /root/file/ myZip.zip
-r:遞歸壓縮
-d: 指定壓縮後的文件的存放目錄
-
tar
指令
壓縮
tar -zcvf myZip.tar.gz /root/file
解壓
tar -zxvf myZip.tar.gz
tar -zxvf myZip.tar.gz -C /root/file/txt/
如果不帶.gz意思是不壓縮
打包時不壓縮
tar -xvf ...
文件名.tar
tar -cvf ...
21. 組管理和權限管理
21.1 三個重要概念
- 所有着
- 所在組
- 其它組
21.2 新建用戶useradd
useradd -g police tom
-g
- police 組名
- tom 角色名
passwd tom
給角色設置密碼
21.3 新建組groupadd
groupadd police
id fox
查看角色的信息
21.4 修改文件所在組chgrp
chgrp 組名 文件名
- 通過root用戶創建orange.txt文件
- chgrp police orange.txt 把orange.txt修改成police組
21.5 改變用戶所在組usermod
usermod -g 組名 用戶名
usermod -d 目錄名 用戶名 改變該用戶登錄的初始目錄
22. 權限的基本介紹
-
普通文件
d 目錄
22.1 rwx權限詳解
一、修改權限的兩種方式chmod
one:
chmod u=rwx,g=rwx,o=rwq 文件目錄名
||
chmod a=rwx 文件目錄名
chmod o-x 文件目錄名
two:
chmod 777 文件目錄名
常用
二、修改文件所有者chown
chown newowner file
||
newowner:newgroup
三、修改文件所在組chown/chgrp
chgrp newgroup file
chown :newgroup file
23. 任務調度crond
任務調度:是指系統在某個時間執行的特定的命令或程序。
crontab
-e 編輯crontab定時任務(可以配合着shell腳本來使用)
-l 查詢crontab任務
-r 刪除當前用戶的所有的crontab任務
- 任務調度文件
vim /etc/crontab
- 設置定時任務
crontab -e
- 重啓任務調度
service crond restart
24. Linux 磁盤分區、掛載
1EB=1024 PB,1PB=1024 TB
Linux 來說無論有幾個分區,分給哪一目錄使用,它歸根結底就只有一個根目錄,一個獨立且唯一的文件結構 , Linux 中每個分區都是用來組成整個文件系統的一部分。
Linux 採用了一種叫
“載入”
的處理方法,它的整個文件系統中包含了一整套的文件和目錄, 且將一個分區和一個目錄聯繫起來。這時要載入的一個分區將使它的存儲空間在一個目錄下獲得。
lsblk -f
查看系統的分區和掛載情況 (老師不離開)mount 設備名稱 掛載目錄
取消掛載使用umountdf -lh
查詢系統整體磁盤使用情況du -h /目錄
查詢指定目錄的磁盤佔用情況,默認爲當前目錄- -s 指定目錄佔用大小彙總
- -h 帶計量單位
- -a 含文件
- –max-depth=xx 子目錄深度
- -c 列出明細的同時,增加彙總值
一、磁盤情況-工作實用指令
1) 統計/root 文件夾下文件的個數
ls -l /root | grep "^-" | wc -l
2) 統計/root 文件夾下目錄的個數
ls -l /root | grep "^d" | wc -l
3)統計/home 文件夾下文件的個數,包括子文件夾裏的
ls -lR /root | grep "^-" | wc -l
4)統計文件夾下目錄的個數,包括子文件夾裏的
ls -lR /root | grep "^d" | wc -l
5)以樹狀顯示目錄結構
yum install tree
tree
25. 網絡配置 ifconfig
ipconfig–>DOS
ifconfig–>Linux 顯示網絡設備
ping 目的主機
測試主機之間網絡連通ifconfig eth0 up
啓用 eth0 網卡ifconfig eth0 down
停用 eth0 網卡netstat
查看網絡端口netstat -an | grep 3306
查詢 3306 端口占用情況
26. 進程管理ps
ps -aux | more
- -a 顯示當前終端的所有的進程信息
- -u 以用戶的格式顯示進程信息
- -x 顯示後臺進程運行的參數
ps -ef
以全格式顯示當前所有的進程
Linux下顯示系統進程的命令ps,最常用的有ps -ef 和ps aux。這兩個到底有什麼區別呢?
兩者沒太大差別,討論這個問題,要追溯到Unix系統中的兩種風格,System V風格和BSD 風格,ps aux最初用到Unix Style中,而ps -ef被用在System V Style中,兩者輸出略有不同。現在的大部分Linux系統都是可以同時使用這兩種方式的。
一、終止進程kill
kill 進程號
kill -9 進程號
強制殺死進程
二、查看進程樹 pstree
pstree -p
樹狀的形式顯示進程的 pid
pstree -u
樹狀的形式進程的用戶
三、服務管理
服務(service) 本質就是進程,但是是運行在後臺的,通常都會監聽某個端口,等待其它程序的請求,比如(mysql , sshd 防火牆等),因此我們又稱爲守護進程,是 Linux 中非常重要的知識點。
service 服務名 [start | stop | restart | reload | status]
在 CentOS7.0 後 不再使用 service ,而是 systemctl
systemctl命令
是系統服務管理器指令,它實際上將service和chkconfig這兩個命令組合到一起。
systemctl [start | stop | restart | reload | status] 服務名
systemctl list-units --type=service
顯示所有已啓動的服務systemctl enable 服務名
設置開機自啓動
四、徹底關閉防火牆
sudo systemctl
status
firewalld.service sudo systemctl
stop
firewalld.service sudo systemctl
disable
firewalld.service(之前的是iptables)
五、動態監控進程
top 與 ps 命令很相似。它們都用來顯示正在執行的進程。top 與 ps 最大的不同之處,在於 top 在執行一段時間可以更新正在運行的的進程。
top
-d 秒數 指定top每隔幾秒更新 默認是三秒
-i 不顯示閒置或者僵死進程
-p 指定監控進程的ID僅僅監控某個進程的狀態
a. 監視待定用戶
top:輸入此命令,按回車鍵,查看執行的進程。
u:然後輸入“u”回車,再輸入用戶名,即可
b. 終止指定的進程
top:輸入此命令,按回車鍵,查看執行的進程。
k:然後輸入“k”回車,再輸入要結束的進程 ID 號
六、查看系統網絡情況 netstat
netstat -anp
-an 按一定順序排列輸出
-p 顯示哪個進程在調用
配合着| grep
使用。
27. RPM和 YUM
27.1 RPM
RPM 是 RedHat Package Manager(RedHat 軟件包管理工具)的縮寫,類似 windows 的 setup.exe,這一文件格式名稱雖然打上了 RedHat 的標誌,但理念是通用的。Linux 的分發版本都有采用(suse,redhat, centos 等等),可以算是公認的行業標準了。
-
rpm -qa
查詢已安裝的 rpm 列表 -
rpm -qa | grep tomcat
-
rpm -qi 軟件包名
查詢軟件包信息 -
rpm -ql 軟件包名
查詢軟件包中的文件 -
rpm -qf 文件全路徑名
查詢文件所屬的軟件包 -
rpm -e rpm包的名稱
卸載 rpm 包- 如果其它軟件包依賴於您要卸載的軟件包,卸載時則會產生錯誤信息
- 需要使用
rpm -e --nodeps rpm包的名稱
-
rpm -ivh rpm包全路徑名稱
安裝 rpm 包-
i=install 安 裝
-
v=verbose 提 示
-
h=hash 進度條
-
一個 rpm 包名:
firefox-45.0.1-1.el6.centos.x86_64.rpm
-
名稱:firefox
-
版本號:45.0.1-1
-
適用操作系統: el6.centos.x86_64
表示 centos6.x 的 64 位系統
如果是 i686、i386 表示 32 位系統,noarch 表示通用。
27.2 YUM
Yum 是一個 Shell 前端軟件包管理器。基於 RPM 包管理,能夠從指定的服務器自動下載 RPM 包並且安裝,可以自動處理依賴性關係,並且一次安裝所有依賴的軟件包。使用 yum 的前提是可以聯網。
yum install xxx
下載安裝yum list
yum list | grep xx
wget 地址
下載
28. 系統管理命令
-
free
顯示內存狀態 -
free –m
以 mb 單位顯示內存組昂頭 -
du
顯示目錄或文件的大小。 -
du –h
顯示當前目錄的大小 -
who
顯示目前登入系統的用戶信息。 -
hostname
查看當前主機名 ( 修改:vi /etc/sysconfig/network ) -
uname
顯示系統信息。 -
uname -a
顯示本機詳細信息。 -
依次爲:內核名稱(類別),主機名,內核版本號,內核版本,內核編譯日期,硬件名,處理器類型,硬件平臺類型,操作系統名稱