【小白入門 通俗易懂】2021韓順平 一周學會Linux

【筆記僅作為參考,不同人做筆記方式不一樣,不一定能讓所有人都看懂】
階段一:基本操作命令
階段二:環(huán)境配置
階段三:搭建開發(fā)環(huán)境
階段四:寫shell腳本、維護
階段五:安全設(shè)置、系統(tǒng)調(diào)優(yōu)
階段六:理解內(nèi)核
學習方法:先搭建整體框架、學習主要指令、會查手冊、先know how 再know why、適當囫圇吞棗、




引導(dǎo)區(qū)boot、交換區(qū)swap、根分區(qū)root
配置:
引導(dǎo)區(qū):1G 標準格式 ext4
交換區(qū):當內(nèi)存不足時臨時充當內(nèi)存,容量和內(nèi)存大小一樣
2G 標準格式 swap
根分區(qū):標準格式 ext4
swap類似于虛擬內(nèi)存

3種網(wǎng)絡(luò)模式:
1、橋接模式:虛擬系統(tǒng)可以和外部系統(tǒng)通訊,但容易造成IP沖突
2、NAT模式:可以和外部通訊,不造成IP沖突
3、主機模式:獨立系統(tǒng)

虛擬機克隆
方法一:直接拷貝一份虛擬機文件
方法二:用VMware提供的克隆操作(一種是創(chuàng)建一個軟鏈接,本質(zhì)上打開還是原來的虛擬機;另一種本質(zhì)是拷貝原來的虛擬機文件到另一個位置)
注意:需要提前關(guān)閉已開啟的虛擬機

虛擬機快照

虛擬機的遷移與刪除
安裝vmtools


cd /opt/ cd+空格+目錄
ls 文件列表
tar -zxvf xx.tar.gz 解壓到當前文件夾
./vmware-install.pl 運行安裝文件
gcc -v 查看版本

藍色指文件夾
綠色指可安裝文件
共享文件夾

/
root
/home:普通用戶
/bin:命令 binary(二進制)的縮寫
/etc:配置文件
/sbin: super user binary
/lib:動態(tài)鏈接共享庫
LINUX的世界里,一切皆文件
useradd xxx
userdel -r xxx
cd /

/etc:配置文件,存放系統(tǒng)所需要的配置文件和子目錄
/usr:類似program files目錄 ,非常重要的文件夾
/proc:內(nèi)存映射
/srv:service
/sys:
/temp
/home 普通用戶的存放目錄

/dev 把硬件用文件夾的形式存儲
/lib 動態(tài)鏈接庫,相當于win的dll
/mnt:臨時掛載文件系統(tǒng)
/opt:給主機安裝額外軟件所存放的目錄
/usr/opt:軟件安裝完了以后的所在的目錄
/var: varity 存放各種擴充的東西,如日志
/selinux:security-enhance

ifconfig 查看IP地址
xshell:輸入ifconfig查看ens33下的inet
用戶名和密碼是管理員的用戶名和密碼

vi和vim文本編輯器

3種模式

vim xxx.java 用vim編輯一個Java程序
正常模式:一般可讀
插入模式:按i、o、a
命令行模式;先ESC退出,然后輸入冒號“:”
wq:write&quit 寫入并退出
w:保存
q:不保存退出
q!:強制退出,不保存
wq:保存并退出

一般模式下才能操作復(fù)制粘貼刪除
yy復(fù)制當前行
4yy 復(fù)制當前光標往下的4行
p 粘貼
dd刪除當前行
u:撤銷
ctrl+r:重做
/關(guān)鍵字:查找單詞,輸入n查找下一個
:set nu 設(shè)置行號
:set nonu 取消行號
一般模式下:G末行 gg首行
20+shift+G :移動到第20行
開關(guān)機命令:

只輸入shutdown 等價于shutdown -h 1
GCC( GNU ?Compiler Collection, GNU編譯器 套件)是由GNU開發(fā)的 編程語言 編譯器 。GNU編譯器套件包括C、C++、? Objective-C 、? Fortran 、 Java 、 Ada 和 Go 語言前端,也包括了這些語言的庫(如libstdc++,libgcj等。)

開關(guān)機:這里是在遠程端下操作
su - root 切換高級用戶
和su root 的區(qū)別:https://blog.csdn.net/m0_45406092/article/details/134754295

logout
普通用戶執(zhí)行l(wèi)ogout退出連接

useradd -d /home/test ian :指定目錄用戶文件
passwd 用戶名:對指定用戶改密碼
1.切換用戶的命令為:su - username 【username是你的用戶名哦】
2.在終端輸入exit或logout退出當前登錄,有區(qū)別
3.在切換用戶時,如果想在切換用戶之后使用新用戶的工作環(huán)境,可以在su和username之間加-,例如:【su – root】
pwd:顯示當前在哪個目錄下
刪除用戶的兩種:

id 用戶名:查看用戶信息
who am i和whoami的顯示不同:
whoami是當前的登錄用戶
who am i是第一次登錄到這個用戶的信息

用戶組
groupadd wudang 增加組
groupdel wudang 刪除組
useradd -g wudang zwj
useradd -d /home/a/ zwj
clear:清屏
Linux下沒有消息就是好消息
usermod -g mojiao zwj :把zwj移到mojiao組


什么是shell:相當于對輸入的指令翻譯成機器能識別的代碼
ls -l *sh:顯示后綴為sh的文件列表

運行級別:
init 3:多用戶有網(wǎng)

systemctl set-default multi-user.target:默認多人有網(wǎng)模式
systemctl get-default 查看當前系統(tǒng)運行狀態(tài)

幫助指令
ls -a:顯示所有文件
ls -al或ls -la :單行顯示包含隱藏目錄(選項可以組合)
ls /root -al :查看指定目錄的隱藏單行文件
ls -al /home 顯示home目錄下所有的文件
面試題:找回root密碼:
文件目錄
pwd:顯示當前的絕對路徑
cd ~:回到家目錄,比如root用戶可以回到root/目錄下

mkdir /home/123 :創(chuàng)建單目錄
mkdir -p /home/123/321 創(chuàng)建多目錄
rmdir 目錄:刪除空目錄
rm -rf 目錄 :刪除有內(nèi)容的目錄( r:recursive f:fore rf:強制遞歸 )
touch a.txt:創(chuàng)建文本文件
vim a.txt:創(chuàng)建文本文件并編輯
cp a /home/b/ :把a文件copy到b目錄下
cp -r /home/a/ /b/ : 把a目錄copy到b目錄下
\cp -r /home/a/ /b/ :強制覆蓋不詢問
rm a :刪除a文件
rmdir a:刪除a目錄
rm -rf a:刪除a目錄且不提示
同一目錄下:mv a.txt b.txt :把a改名為b
不同目錄下:mv a文件 b地址:把a文件移到到b目錄下
mv a文件 b地址/c名字:把a文件移到到b目錄下并重命名為C
mv a地址 b地址:a目錄移到到b目錄
cat -n /etc/profile:查看并顯示行號

管道指令
more指令:more 文件路徑
即可配合管道指令,也可單獨使用
more指令內(nèi)置了若干快捷鍵
cat -n /etc/profile | more和
more /etc/profile 等效
less 文件


echo $PATH :查看環(huán)境變量
echo $HOSTNAME
echo helloworld
head /etc/profile :看前10行
tail -n 5 /etc/profile :看后5行
tail -f 文件名 :監(jiān)控更新
echo xxxx > /home/abc.txt 重定向到abc.txt


> 覆蓋
>>追加

退出監(jiān)控:CTRL+C
cal >> /home/a.txt :向a追加日歷

ln -s /root /home/myroot :創(chuàng)建root快捷方式,名字是myroot
rm /home/myroot :刪除快捷方式
即:ln -s 源文件 目標路徑 ,這里的s是soft,即軟鏈接;不加參數(shù)即為硬鏈接,硬鏈接只能對文件創(chuàng)建鏈接,不能對目錄創(chuàng)建鏈接
不管是硬還是軟,刪除鏈接都不會影響源文件/目錄


date -s "2021-5-20 11:00:00" :設(shè)置當前系統(tǒng)時間
cal
cal 2021:看21年日 歷
查找 -name、-user、-size
find /home -name hello.txt 查找hello.txt文件
find /home -name *.txt 查找后綴是txt的文件
find -name hello.txt 查找當前目錄下hello.txt文件
find 路徑 -user root :查看路徑下root用戶的文件
find 路徑 -size -20M:查找小于20M的文件(k,g)
ls -lh 顯示文件大小更直觀

locate查找
先更新數(shù)據(jù)庫 updatedb,再locate 文件名
which ls :查找ls指令所在的目錄
grep [ ] 目標內(nèi)容 【源文件】

兩種寫法:
cat /home/1.txt | grep ian :在1.txt中查找ian
grep -n ian /home/1.txt :在1.txt查找ian,并顯示行號
grep -n ”ian“ /home/1.txt :效果同上
一、
gzip 壓縮文件
gunzip 解壓并刪除壓縮包
二、

三、壓縮用-zcvf,解壓用-zxvf

tar -zxvf myhose.tar.gz -C /opt/tmp2 :解壓myhouse.tar.gz到tmp2目錄下
tar -zcvf 目標文件 源文件
tar -zxvf 目標文件 -C 指定文件
chown 人 文件
chown -R 人 文件 :使目錄下所有文件的所有者都改變
chgrp 組 文件
chmod 的兩種寫法:



crond任務(wù)調(diào)度


crontab -e :編輯
crontab -r :刪除



./my.sh :執(zhí)行命令
*/1 * * * * /home/my.sh
service crond restart :重啟任務(wù)調(diào)度
ps -ef :檢測當前進程
ps -ef | grep atd :檢查作業(yè)進程
at [選項] [時間]
Ctrl+D 結(jié)束at命令的輸入,所在行有命令敲兩次,沒命令敲一次
ctrl +退格鍵 撤銷

at命令

at時間定義
atq 查看系統(tǒng)中沒有執(zhí)行的工作任務(wù)
atrm 編號 刪除已經(jīng)設(shè)置的任務(wù)
linux分區(qū):
lsblk查看分區(qū)目錄 ·
lsblk -f

fdisk dev/sdb :分區(qū)format
mkfs -t ext4 /dev/sdb1 :格式化
步驟:
創(chuàng)建實例: 虛擬機 實體
分區(qū):fdisk /dev/sdb1 //可以是4,表示4塊分區(qū)
格式化 mkfs -t ext4 /dev/sdb1 :格式是ext4
掛載: mount /dev/sdb1 newdisk: 掛載到newdisk路徑下
卸載:umount /dev/sdb1或umount newdisk
掛載后文件實際存儲在實例上,newlist只是目錄
命令行掛載重啟后會失效
永久掛載:
vim etc/fstab
df -h 查看整個磁盤情況
du -h 查詢指定目錄磁盤占用情況

ls -l | grep "^-" :篩選出以“-”開頭的文件
ls -l | grep "^-" | wc -l :顯示統(tǒng)計結(jié)果



vim /etc/sysconfig/network-scripts/ifcfg-ens33
service network restart :重啟網(wǎng)絡(luò)服務(wù),讓服務(wù)生效
主機hosts映射


域名解析過程:


ipconfig/displaydns 顯示dns緩存
ipconfig/flushdns 清除dns緩存
進程

ps :查看進程
ps -aux

kill sshd進程號 //殺死非法登錄進程
kill -9 sshd進程號 //強制刪除
/bin/systemctl start sshd.service //重啟sshd服務(wù)
killall gedit //終止多個gedit
ps -ef | grep sshd //查找sshd(遠程連接)進程
ps -ef | grep bash //查找ba shell(終端)進程
pstree -p //以進程樹形圖顯示進程
pstree -u //以用戶樹形圖顯示進程
ls -l /etc/init.d/ 查看service服務(wù)列表
setup //查看所有服務(wù)sevice&systemctl,TAB鍵切換


開機流程
systemctl get.default //查看當前運行級別
chkconfig --list 查看服務(wù)
chkconfig --level 5 服務(wù)名 on/off :對level 5下某服務(wù)設(shè)置

systemctl list-unit-files 查看服務(wù)開機啟動狀態(tài)
systemctl enable/disable 服務(wù)名 :開啟/關(guān)閉某服務(wù)自啟
systemclt is-enabled 服務(wù)名 :查看服務(wù)是否自啟
systemctl status/start/stop/restart 服務(wù)名
netstat -anp | more

firewall-cmd --permanent --add-port=111/tcp
firewall-cmd reload
firewall-cmd --query-port=111/tcp
fire-wall --permanent --remove-port=111/tcp
CTRL+a : 光標移到最左
CTRL+e :光標移到最右
top命令

動態(tài)監(jiān)控

U 查看指定用戶
k(小寫) 殺死指定進程
top -d 10 自定義每隔10秒更新一次
監(jiān)控網(wǎng)絡(luò):
netstat -anp | grep sshd
rpm包的管理(redhat packet manager)
rpm -qa //查詢已安裝的rpm列表


rpm ql firefox 查詢Firefox的所有文件
rpm -e firefox 刪除firefox
rpm -e --nodeps firefox 強制刪除firefox

rpm包在 桌面光盤的packages里面


以上為p1-p83基礎(chǔ)篇
日志文件
/var/log //位置
lastlog 指令查看最后登錄信息
who 查看登錄信息
日志管理服務(wù)rsyslogd

位置 etc/rsyslog.conf 可配置這個文件
ps -aux | grep rsysconfig | grep -v "grep" //反向匹配
ps -aux | grep rsysconfig | grep "grep" // 只選擇grep


舉例:

日志輪替