1.SSH連接
ssh root@192.168.1.1 #默認連接22端口 好比默認後面加了 -p 22
修改SSH登錄端口
vim /etc/ssh/sshd_config
修改:Port 50222
重啓ssh服務
systemctl restart ssh (注意Ubuntu ssh centos sshd)
ssh root@192.168.1.1 -p 50222
2.關於fail2ban
什麼是fail2ban:你的VPS好比一座大樓,fail2ban好比樓下保安,他監控/varlog/auth.log日誌,如果輸入密碼錯誤5次,則1小時不讓他進來
wget --no-check-certificate https://raw.githubusercontent.com/FunctionClub/Fail2ban/master/fail2ban.sh && bash fail2ban.sh 2>&1 | tee fail2ban.log
核心點:fial2ban針對日誌文件,對IP進行登錄限制
3.systemctl檢查系統服務命令
systemctl list-unit-files #查看服務開機啓動狀態
systemctl disable service_name #關閉指定服務的自動啓動
systemctl enable service_name #開啓指定服務的自動啓動
3.1如何註冊為系統服務
在/etc/systemd/system/下創建某xxx.service
示例:
vim /etc/systemd/system/hello-demo.service
[Unit]
Description=Hello Systemctl Demo Service
[Service]
Type=oneshot
ExecStart=/bin/echo "hello systemctl"
[Install]
WantedBy=multi-user.target
重新加載systemd的配置
systemctl daemon-reload
systemctl start|stop|restart|status|edit|cat|enable|disable hello-demo
例如
systemctl start hello-demo
journalctl -u hello-demo #查看hello-demo服務的日誌
journalctl -u hello-demo -f #實時查看hello-demo服務日誌
journalctl -u hello-demo -n 50 -f #實時查看hello-demo最近50條日誌
3.2 如何刪除系統服務
systemctl stop hello-demo #停止服務(如果正在運行)
systemctl disable hello-demo #禁止開機自啓動
rm /etc/systemd/system/hello-demo.service #刪除服務文件
systemctl daemon-reload #重新加載配置
上面的服務類型是Type=oneshot
所以都不需要stop 只需要刪除文件 重新加載配置即可
除了/etc/systemd/system/下自建服務,還可以在/usr/lib/systemd/system/ 和/lib/systemd/system/
4.系統防火牆
ufw enable #啓動防火牆
ufw status #查看防火牆狀態
ufw disable #禁用防火牆
ufw allow 22/tcp #開放22端口
ufw delete allow 22/tcp #關閉端口
5.關機重啓命令
reboot #重啓
shutdown -h now #現在關機
shutdown -h +5 #5分鐘之後關機
systemctl poweroff #現在關機 也是關機最終執行的
關機命令最終使用了
systemctl poweroff
6.修改Hostname和Hosts映射
6.1 主機名修改
hostname #查看主機名
hostnamectl set-hostname xxxx #設置主機名 然後重連ssh可以看到主機名改了
還有一種方式
vim /etc/hostname #編輯主機名文件
hostname -F /etc/hostname #強制重新加載 然後重連ssh
6.2 修改hsots映射
Hosts映射解釋:是一個本地,優先於DNS的域名解析機制,例如你訪問www.taobao.com,域名解析機制會先查瀏覽器的,然後查本地hosts文件 檢查www.taobao.com是否有對應IP 如果有,就訪問對應的IP,如果沒有再去外部的DNS解析
Linux中也是一樣道理 文件在/etc/hosts
cat /etc/hosts #查看
7.添加修改用户並給與sudo權限
7.1添加用户
注意兩個文件 /etc/passwd (用户文件) /etc/shadow (用户密碼文件)
adduser hrui #會自動創建家目錄 useradd不推薦(比較老)
然後設置密碼 注意 root創建之後 root可以設置密碼
passwd hrui
查看用户是否添加成功
cat /etc/passwd | grep hrui
或者
grep hrui | /etc/passwd
7.2 刪除用户
deluser hrui #保留家目錄
deluser --remove-home hrui #刪除用户 並刪除用户家目錄
7.3 給與用户sudo權限
usermod -aG sudo hrui
7.4 給與用户全部權限
visudo
hrui ALL=(ALL:ALL) ALL #給與該用户全部權限 ctrl+o保存 ctrl+x退出
7.5 禁止用户登錄
usermod -s /usr/sbin/nologin hrui
7.6 恢復登錄
usermod -s /bin/bash hrui
8.軟件管理apt軟件包管理器
安裝
apt install xxxx #例如apt install net-tools
刪除
apt remove xxxx #例如 apt remove net-tools
關於 /etc/apt/sources.list 該文件用來定義去哪裏下載東西
9.文件相關
9.1 目錄切換和查看
pwd #查看當前所在目錄
cd / #到目錄
cd xxx #到當前目錄所在的xxx文件夾
cd ~ #進入家目錄 等同於 cd ~/
ls 或者 ls -a 或者 ll 自己感受 .開始的文件是隱藏文件或者隱藏文件夾
9.2 文件、文件夾的創建 刪除、移動和複製
touch xxx #創建某個文件
mkdir xxx #創建文件夾 mkdir /xx/xxx/xxxx
rmdir xxx #xxx必須是空的文件夾
rm xxx #文件可以直接刪除
rm -rf xxx #遞歸刪除xxx文件夾及裏面所有內容
mkdir -p /xxx/xxxx/xxxxx #創建多層 即使xxxx不存在也會創建
cp /file /file2/a #如果是文件 可以直接複製 如果是文件夾 -r 遞歸複製
cp -r /file /file2/a #複製跟目錄下的文件(或者文件夾)到根目錄下的file2裏的a裏面
移動
mv file1 file2 #將file1重命名file2
mv file1 /xxx/xxxx/xxxx/ #移動到xxxx下名字不變 如果xxxx不存在 直接改名為xxxx
9.3 文件查看
cat xxx #全部在控制枱打印
head xxx #控制枱打印文件前10行
head -n 20 xxx #顯示文件前20行
more xxx #可以一頁一頁翻 空格下一頁 b上一頁 q退出
less xxx #支持鍵盤上下鍵翻頁
tail xxx #顯示文件最後前10行
tail -n 20 -f xxx #實時刷新展示文件末尾20行 查看日誌文件常用
10 echo輸出
echo "hello world" > xxx #每次都會先清空 再輸入
echo "hello world">>xxx #追加
11.用户權限管理
- - - - - - - - - - #第一個代表文件類型 後面分別是 文件擁有這(3個) 文件擁有者羣組(3個) 不是該用户也不在該羣組(3)
user/owner:文件擁有者
group:文件歸屬於某個羣組的人
others:不是該羣組也不是文件擁有者
id root #查看用户 uid=0(root) gid=0(root) 組=0(root)
創建用户時默認創建了和用户明相同的用户組
11.1 文件類型 第一個"-"
d #目錄文件
b #塊特殊文件
c #字符特殊文件
l #符號鏈接
f #命名管道
s #套接字文件
11.2 權限類型
r = 4 (讀)
w = 2 (寫)
x = 1 (執行)
--------------------------------------------
11.3 修改文件(文件夾)權限
u 表示擁有者 g 表示擁有者相同組 o 表示即不是擁有者 也不在相同組
chmod u+x /xxx #給文件擁有者添加執行權限 d--x------
chmod +x /xxx #給u g o 都添加執行權限 d--x--x--x
chmod g+r /xxx #給同一組的用户添加讀權限 d---r-----
chmod u+r,g+w /xxxx #給文件所有者添加讀權限 相同組添加寫權限 dr---w----
chmod 777 xxx #一個7等於rwx 也就是4+2+1 因此 777代表u g o 都有讀寫執行權限 drwxrwxrwx
修改文件權限的另一種寫法 上面的寫法是在本身的權限中添加新的權限
例如 文件原先權限是drwx---rw-
chmod g+r xxx #那麼權限變成 drwxr--rw- 在原有權限基礎上進行添加
而如下是清空所有權限 再加賦予的權限 例如原先權限是drwx---rw-
chmod g=wx xxx #那麼權限變成drwx-wxrw-
chmod g=wx,o=x xxx #那麼權限變成drwx-wx-rwx
11.4 改變文件屬主
chown user1:group1 xxx #將文件所有者改為user1 組改為group1 root或者原歸屬者操作
chown user2 xxx #改變文件歸屬為user2 #root或者文件原歸屬者操作
chown :group3 xxx #改變文件歸屬組 #root或者文件原歸屬者操作
chmod和chown -R 遞歸
12.find文件查找
find / -name "hello" #從根目錄開始找名字是hello的文件或者文件夾
find / -name "hello" -type f #從根目錄開始找名字是hello的文件
find / -name "hello" -type d #從根目錄開始找名字hello的文件夾
find / -name "hello" -type l #從根目錄開始找名字hello的符號鏈接
13.軟鏈接
ln -s /etc/letsencrypt/live/xxxx/privkey.pem /etc/xxx/cert.key
意思是將/etc/letsencrypt/live/xxxx/privkey.pem的內容和/etc/xxx/cert.key同步
/etc/xxx/cert.key好比是/etc/letsencrypt/live/xxxx/privkey.pem的快捷方式
這裏注意 不要提前創建/etc/xxx/cert.key文件 軟鏈接時候會自動創建
14.環境變量
14.1 什麼是環境變量
環境變量是操作系統中存放的,系統運行時的配置信息.------->是鍵值對形式
例如 PATH=/usr/bin:/usr/local/bin
在 Linux 下,環境變量常用於:
- 指定命令的搜索路徑,例如
PATH決定你在終端輸入python時去哪找這個可執行文件。 - 保存系統或用户信息,如
HOME表示當前用户的主目錄,USER表示用户名。 - 配置程序行為,比如
JAVA_HOME、NODE_ENV、LANG等。
設置臨時環境變量
xxx=xxx的方式 好比一個"局部變量,存在於當前的bash會話的內存中"
env #查看當前登錄用户的所有環境變量 這裏不會展示上面以 xxx=xxx的局部變量
echo $xxx #查看某個具體環境變量的值
export ph=123 #臨時的環境變量 可以通過 env |grep ph 查看
unset ph #這個只是暫時刪除 env裏面的這個變量 新開一個終端,不受影響,徹底刪除需要刪除配置文件裏的
14.2 個人環境變量和系統環境變量
系統環境變量:vim /etc/profile(推薦) 或者 /etc/bash.bashrc
個人環境變量:~/.bashrc(推薦) 或者 ~/.profile