Linux 學習筆記(六):Linux

預期學習目標html

  • CentOS的安裝
  • 相關命令的學習
  • 腳本的編寫
  • 定時任務的編寫
  • vim的學習

系統設置

項目部署

項目權限設置
  • 確認 SELinux 的狀態
[root@centos7 ~]$ /usr/sbin/sestatus -v

# SELinux status: enabled

[root@centos7 ~]$ getenforce

# enabled
  • 關閉 SELinux
  • 修改配置文件並重啓
[root@centos7 ~]$ vim /etc/selinux/config

# SELINUX=disabled

[root@centos7 ~]$ reboot
  • 查看進程的用戶
[root@centos7 ~]$ ps -axu | grep nginx

# root       880  0.0  0.0 120808  2104 ?        Ss   10:23   0:00 nginx: master process /usr/sbin/nginx
# nginx      883  0.0  0.0 121192  3592 ?        S    10:23   0:00 nginx: worker process
# sea       1263  0.0  0.0 112704   968 pts/0    R+   10:29   0:00 grep --color=auto nginx
用戶權限
  • 將用戶加入 git
[root@centos7 ~]$ usermod -a -G git apache
[root@centos7 ~]$ usermod -a -G git mysql
[root@centos7 ~]$ usermod -a -G git nginx
  • 查看組內用戶
[sea@centos7 ~]$ cat /etc/group | grep git

#  git:x:1002:apache,mysql,nginx

文件傳輸

  • 文件的上傳與下載
sz ( send Zmodem ) : 用 Zmodem 文件傳輸協議從 Linux 服務器發送文件到 Window

rz ( receive Zmodem ) : 用 Zmodem 文件傳輸協議在 Linux 服務器上接收文件,即 Window 上傳文件到 Linuxmysql

不支持上傳文件夾,須要打包後上傳文件再解壓linux

# 安裝
yum -y install lrzsz

# 下載
sz filename

# 上傳(Xshell 直接拖拽就好,用不到這個,用的多的仍是 sz )
rz
  • 傳輸文件
# 指定端口傳輸

scp -P 1080 vendor.zip root@35.35.35.35:/home/git

壓縮解壓

  • 壓縮文件
參數 全稱 解釋
-c --create 建立一個新歸檔
-x --extract 從歸檔中解出文件
-r --append 追加文件至歸檔結尾
-t --list 列出歸檔內容
-z --gzip 經過 gzip 過濾歸檔
-v --verbose 詳細地列出處理的文件
-f --file 使用歸檔文件
tar -czvf /tmp/etc.tar.gz /etc
參數 解釋
-m 將文件壓縮以後,刪除源文件
-n 特定字符串 不壓縮具備特定字尾字符串的文件
-o 將壓縮文件內的全部文件的最新變更時間設爲壓縮時候的時間
-q 安靜模式,在壓縮的時候不顯示指令的執行過程
-r 將指定的目錄下的全部子目錄以及文件一塊兒處理
-S 包含系統文件和隱含文件
-t 日期 把壓縮文件的最後修改日期設爲指定的日期,日期格式爲mmddyyyy
# 解壓
unzip filename.zip

# 壓縮
zip -f /tmp/etc.zip /etc

系統語言

優先級: LC_ALL > LC_* >LANG
名稱 含義
LC_CTYPE 語言符號及其分類
LC_NUMERIC 數字
LC_COLLATE 比較和排序習慣
LC_TIME 時間顯示格式
LC_MONETARY 貨幣單位
LC_MESSAGES 信息主要是提示信息,錯誤信息,狀態信息,標題,標籤,按鈕和菜單等
LC_NAME 姓名書寫方式
LC_ADDRESS 地址書寫方式
LC_TELEPHONE 電話號碼書寫方式
LC_MEASUREMENT 度量衡表達方式
LC_PAPER 默認紙張尺寸大小
LC_IDENTIFICATION 對locale自身包含信息的概述
  • 語言的更改

查看當前語言nginx

[root@centos7 ~]$ echo $LANG

# zh_CN.UTF-8

[root@centos7 ~]$ locale

# LANG=en_US.UTF-8
# LC_ALL=zh_CN.gbk
  • 終端臨時更改系統語言
[root@centos7 ~]$ export LANG="en_US.UTF-8"
[root@centos7 ~]$ echo $LANG

# en_US.UTF-8
  • 全局更改系統語言
[root@centos7 ~]$ vim /etc/locale.conf

#LANG="en_US.UTF-8"

圖形界面

  • 關閉圖形界面
# 查看當前運行模式
systemctl get-default

# 使用命令模式
systemctl set-default multi-user.target

# 使用圖像界面模式
systemctl set-default graphical.target

其餘雜項

  • 查看文件大小
# 查看目錄大小(包括子目錄)
du -sh directory
  • 命令
cd -
# 回到上次的目錄

grep -i 
# 忽略大小寫的正則匹配

grep -v
# 反選(選區不匹配的項)

grep -E '^[0-3]|[abc]&'
# 支持正則表達式語法
xargs 用做替換工具,讀取輸入數據從新格式化後輸出
# 多行輸入單行輸出
cat args.txt | xargs

# 多行輸入多行輸出
cat args.txt | xargs -n 3

# 根據指定分隔符劃分並輸出
cat args.txt | xargs -d 'args'

# 指定一個符號並將該符號替換用輸出的元素替換
cat args.txt | xargs -n 1 | xargs -I [] echo []-copy-[]
  • sed
# 還沒寫
  • 文件類型
標識 解釋 顏色標識
- 普通文件 白色
- 可執行文件 綠色
- 壓縮文件 紅色
- 圖片文件 粉色
- SGID特殊權限文件 背景色黃色
- SUID特殊權限文件 背景色紅色
d 目錄文件 藍色
d 公開目錄 背景色綠色
p 管道文件 暗黃色
s 套接字文件 洋紅
c 字符設備文件 黃色
l 軟連接文件 淺藍色
b 塊設備文件 黃色

快快捷指令

文本編輯

插件 : Chrome 下載 Vimium , PhpStorm 下載 ideaVim
  • 配置.vimrc
# 編輯我的主目錄的VIM配置文件
vim ~/.vimrc

# 設置支持GB2312和UTF8等編碼
let &termencoding=&encoding
set fileencodings=utf-8,gbk,ucs-bom,cp936

# tab 擴展爲空格
set expandtab

# tab 的寬度爲 4 個空格
set ts=4

# 使粘貼代碼時不會亂
set paste

# vim的註釋符號
"
  • 快捷鍵
gg : 跳轉到第一行

 GG : 跳轉到最後行

 ^  : 跳轉到行首

 $  : 跳轉到行尾

 yy : 複製整行

 p  : 粘貼

 N  : 向上查找

 n  : 向下查找

 u  : 撤銷更改

 a  : 從當前位置插入
  • 命令

替換字符串git

# 全局查找「foo」替換爲「bar」而且須要確認「y/n/a/q/l/^E/^Y」

:%s/foo/bar/gc

# 顯示行號
:set number

# 將文件轉化爲UNIX格式
:set fileformat=unix

腳本命令

  • 基本概念
# 全部參數
$@

# 傳入腳本的參數個數
$#

# 參數賦值
param=$1

# 引號的區別
單引號不解析 雙引號會解析變量

# 調試追蹤
sh -x
  • 界面快捷鍵
Ctrl + A : 跳轉到命令的行首

Ctrl + E : 跳轉到命令的行尾

Ctrl + U : 刪除整行

定時任務

參數說明
# 查看定時任務列表
crontab -l

# 查看指定用戶的定時任務列表
crontab -l -u username

# 查看全部用戶的定時任務( root 權限執行)
cat /etc/passwd | cut -f 1 -d : |xargs -I {} crontab -l -u {}

# 定時任務中開頭爲井號(`#`)的行是註釋

經常使用軟件

  • fping

批量檢測地址連通性web

  • nc

批量檢測端口連通性、端口是否開放正則表達式

運維技能

系統狀態

  • 系統負荷 : N 個CPU的電腦,可接受的系統負荷最大爲 N
# 實時狀態
top
# 顯示全部包含其餘使用者的行程
ps -axu

# 顯示全部包含其餘使用者的行程並顯示程序間的關係
ps -axuf

系統防禦

DenyHosts 是 Python 語言寫的一個程序,它會分析 sshd 的日誌文件(默認是 /var/log/secure ),當發現重複的攻擊時就會記錄 IP 到 /etc/hosts.deny 文件,啓用 tcp_wrappers,從而達到自動屏IP的功能。
# 查看 hosts.deny
cat /etc/hosts.deny
# 查看狀態
systemctl status firewalld.service

# 添加端口
firewall-cmd --zone=public --permanent --add-port=2375/tcp

# 查看防火牆規則
firewall-cmd --list-all

相關文章

Linux 學習筆記(一):內網穿透
Linux 學習筆記(二):搭建我的Git服務器
Linux 學習筆記(三):Ubuntu 操做系統
Linux 學習筆記(四):Docker
Linux 學習筆記(五):Redis
Linux 學習筆記(六):Linuxsql

相關文章
相關標籤/搜索