linux服務器運維

mac使用ssha命令

mac切換root :sudo -i
查看ssha列表: ssha -l
進入服務器:ssha -s index

scp命令

scp /Users/daishiyu/Documents/files/臨時文件/臨時記錄.txt  root@ip:/home/file/test

用ssh直接連接服務器

ssh -p 端口號 服務器用戶名@ip

linux查看N條日誌日誌

tail -Nf app.log

linux中grep命令的用法

作爲linux中最爲常用的三大文本(awk,sed,grep)處理工具之一,掌握好其用法是很有必要的。
首先談一下grep命令的常用格式爲:grep [選項] ”模式“ [文件]
grep家族總共有三個:grep,egrep,fgrep。

https://www.cnblogs.com/flyor/p/6411140.html
https://www.cnblogs.com/htyj/p/10256612.html

linux查找日誌cat和grep

查詢關鍵字前後30--cat 日誌文件名.log | grep -30 ‘關鍵字’
查詢兩個關鍵字同時出現 --cat 日誌文件名.log | grep ‘關鍵字1| grep ‘關鍵字2’
壓縮以後的文件查詢 --gzip -dc 文件名 | grep -30 “關鍵字”
查詢中所匹配模式的最後一項 --cat 文件名 | grep ‘關鍵字’ | tail -n

查看端口是否被佔用的命令

netstat -nap | grep port

netstat命令各個參數說明如下:
-a:列出所有網絡狀態,包括 Socket 程序;
-c秒數:指定每隔幾秒刷新一次網絡狀態;
-n:使用 IP 地址和端口號顯示,不使用域名與服務名;
-p:顯示 PID 和程序名;
-t:顯示使用 TCP 協議端口的連接狀況;
-u:顯示使用 UDP 協議端口的連接狀況;
-I:僅顯示監聽狀態的連接;
-r:顯示路由表;

查看端口是否開放:

lsof -i:端口號 --如果沒有任何輸出則說明沒有開啓該端口號

我們可以使用netstat -atu檢查linux中的開放端口

Linux系統字符集查看

echo $LANG
Linux修改字符集
vim /etc/sysconfig/i18n
LANG="zh_CN.UTF-8"
修改文件保存退出之後要生效要執行如下命令纔可生效
source /etc/sysconfig/i18n

vim操作(參考:https://blog.csdn.net/u010956473/article/details/74087608)

下面的操作都可以配合n使用,比如在正常模式(下面會講到)下輸入3h, 則光標向左移動3個字符

:x,yd--刪除從x行到y行的內容
:x,.d--刪除從x行到本行的內容
dd--刪除當前行內容
ndd--刪除當前開始到後面n行內容
h/後退--左移
l/空格--右移
j--下移一行
k--上移一行
+/Entry--把光標移至下一行第一個非空白字符
- --把光標移至上一行第一個非空白字符
w--前移一個單詞,光標停在下一個單詞開頭
W--移動下一個單詞開頭,但忽略一些標點
e--前移一個單詞,光標停在下一個單詞末尾
E--移動到下一個單詞末尾,如果詞尾有標點,則移動到標點
b--後移一個單詞,光標停在上一個單詞開頭
B--移動到上一個單詞開頭,忽略一些標點
ge--後移一個單詞,光標停在上一個單詞末尾
gE--同 ge ,不過‘單詞’包含單詞相鄰的標點
0--移動到行首
g0--移到光標所在屏幕行行首
^--移動到本行第一個非空白字符
nG--到文件第n行
H--把光標移到屏幕最頂端一行
M--把光標移到屏幕中間一行
L--把光標移到屏幕最底端一行
gg--到文件頭部
G--到文件尾部
ctrl+f--下翻一屏
ctrl+b--上翻一屏
ctrl+d--下翻半屏
ctrl+u--上翻半屏
ctrl+e--向下滾動一行
ctrl+y--向上滾動一行
zz--將當前行移動到屏幕中央
zt--將當前行移動到屏幕頂端
zb--將當前行移動到屏幕底端
r--修改當前字符
yy--複製整行   在命令模式下,將光標移動到將要粘貼的行處,按“p”進行粘貼
nyy--複製n行   在命令模式下,將光標移動到將要粘貼的行處,按“p”進行粘貼
yn--複製後面幾個字符
/something--在後面的文本中查找something
?something--在前面的文本中查找something
/pattern/+number--將光標停在包含pattern的行後面第number行上
/pattern/-number--將光標停在包含pattern的行前面第number行上
n--向後查找下一個
N--向前查找下一個
:s/old/new --new替換當前行第一個old
:s/old/new/g --new替換當前行所有的old
:n1,n2s/old/new/g --new替換文件n1行到n2行所有的old。
:%s/old/new/g --new替換文件中所有的old。
:%s/^/xxx/g -- 在每一行的行首插入xxx,^表示行首。
:%s//xxx/g−-在每一行的行尾插入xxx,表示行尾。
所有替換命令末尾加上c,每個替換都將需要用戶確認。 如:%s/old/new/gc,加上i則忽略大小寫(ignore)

&和nohup

&–當在前臺運行某個作業時,終端被該作業佔據;可以在命令後面加上& 實現後臺運行。例如:sh test.sh &
適合在後臺運行的命令有f i n d、費時的排序及一些s h e l l腳本。在後臺運行作業時要當心:需要用戶交互的命令不要放在後臺執行,因爲這樣你的機器就會在那裏傻等。不過,作業在後臺運行一樣會將結果輸出到屏幕上,干擾你的工作。如果放在後臺運行的作業會產生大量的輸出,最好使用下面的方法把它的輸出重定向到某個文件中:

command  >  out.file  2>&1  & 
這樣,所有command命令的標準輸出和錯誤輸出都將被重定向到一個叫做out.file 的文件中。
nohub--使用&命令後,作業被提交到後臺運行,當前控制檯沒有被佔用,但是一但把當前控制檯關掉(退出帳戶時),作業就會停止運行。nohup命令可以在你退出帳戶之後繼續運行相應的進程。nohup就是不掛起的意思( no hang up)。該命令的一般形式爲:
nohup command &

如果使用nohup命令提交作業,那麼在缺省情況下該作業的所有輸出都被重定向到一個名爲nohup.out的文件中,除非另外指定了輸出文件:
nohup command > myout.file 2>&1 &

command >out.file 2>&1 & 命令解析:
command>out.file是將command的輸出重定向到out.file文件,即輸出內容不打印到屏幕上,而是輸出到out.file文件中。
2>&1 是將標準出錯重定向到標準輸出,這裏的標準輸出已經重定向到了out.file文件,即將標準出錯也輸出到out.file文件中。最後一個&, 是讓該命令在後臺執行。
試想2>1代表什麼,2>結合代表錯誤重定向,而1則代表錯誤重定向到一個文件1,而不代表標準輸出;換成2>&1&1結合就代表標準輸出了,就變成錯誤重定向到標準輸出.

Supervisor的作用與配置

Linux的後臺進程運行有好幾種方法,例如nohup,screen等,但是,如果是一個服務程序,要可靠地在後臺運行,我們就需要把它做成daemon,最好還能監控進程狀態,在意外結束時能自動重啓。
supervisor就是用Python開發的一套通用的進程管理程序,能將一個普通的命令行進程變爲後臺daemon,並監控進程狀態,異常退出時能自動重啓。

ps命令

[root@localhost ~]# ps aux
#查看系統中所有的進程,使用 BS 操作系統格式
[root@localhost ~]# ps -le
#查看系統中所有的進程,使用 Linux 標準命令格式
選項:
a:顯示一個終端的所有進程,除會話引線外;
u:顯示進程的歸屬用戶及內存的使用情況;
x:顯示沒有控制終端的進程;
-l:長格式顯示更加詳細的信息;
-e:顯示所有進程;

"ps aux" 可以查看系統中所有的進程;
"ps -le" 可以查看系統中所有的進程,而且還能看到進程的父進程的 PID 和進程優先級;
"ps -l" 只能看到當前 Shell 產生的進程;
ps aux輸出格式:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
格式說明:
USER: 行程擁有者
PID: pid
%CPU: 佔用的 CPU 使用率
%MEM: 佔用的記憶體使用率
VSZ: 佔用的虛擬記憶體大小
RSS: 佔用的記憶體大小
TTY: 終端的次要裝置號碼 (minor device number of tty)

springboot項目使用外部配置文件

java -jar xxxx.jar --spring.config.location=D:/kawa/application.yml來加載外部的配置
java -jar demo-0.0.1-SNAPSHOT.jar --spring.config.location=./application.properties

idea項目啓動器指定配置文件

-DSpring.profiles.active=test

防火牆命令

#停止  
systemctl stop firewalld.service  
#禁止firewall開機啓動  
systemctl disable firewalld.service
#重啓防火牆
firewall -cmd --reload
查看狀態
firewall-cmd –stat 
查看已經開放的端口
firewall-cmd --list-ports 
開啓端口
firewall-cmd --zone=public --add-port=80/tcp --permanent  
命令含義:
–zone #作用域
–add-port=80/tcp #添加端口,格式爲:端口/通訊協議
–permanent #永久生效,沒有此參數重啓後失效

maven打包跳過測試

 mvn install -Dmaven.test.skip=true

Linux操作文件相關常用命令(https://blog.csdn.net/gexiaoyizhimei/article/details/100122368)

新建操作:

mkdir abc #新建一個文件夾
touch abc.sh #新建一個文件
echo "abc" > test.txt #新建一個文件,並將abc寫入。這裏用到了重定向符
查看操作:

du -h 文件/目錄  #查看大小
cat abc.txt #查看abc的內容
head -5 abc.txt #查看abc前5行內容。默認是10行

tail [選項] 文件名
各選項的含義如下:
+num:從第num行以後開始顯示
-num:從距文件尾num行處開始顯示。如果省略num參數,系統默認值爲10.
-f: 循環讀取,例如查看服務器日誌時,可以實時觀察
#filename 文件裏的最尾部的內容顯示在屏幕上,並且不斷刷新。
tail -f filename 
#查看最後20行
tail -f filename
more命令一次顯示一屏信息,若信息未顯示完屏幕底部將出現“-More-(xx%)”。
此時按Space鍵,可顯示下一屏內容;
按“回車”鍵,顯示下一行內容;
按B鍵,顯示上一屏;
按Q鍵,可退出more命令。

ess命令:和more命令類似,但是比more命令更強大。在很多時候,必須使用less,比如管道。例如:
ll /etc | less

stat 命令:
查看文件的詳細信息,比如創建修改時間,大小等
[root@localhost zx]# stat index.html 
  文件:"index.html"
  大小:29006     	塊:64         IO 塊:4096   普通文件
設備:fd00h/64768d	Inode:17589607    硬鏈接:1
權限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
環境:unconfined_u:object_r:home_root_t:s0
最近訪問:2019-09-02 21:47:41.824053666 +0800
最近更改:2019-09-02 21:44:33.588587500 +0800
最近改動:2019-09-02 21:44:33.588587500 +0800
創建時間:-
file命令: Linux中後綴並沒有實際約束意義.
file test.txt #查看test.txt的文件類型
rm -f  aa.txt #強制刪除aa.txt
rm -rf fileDir #強制刪除fileDir文件夾和裏邊的所有文件
cp:複製文件或目錄
cp [options] source dest

-a:此選項通常在複製目錄時使用,它保留鏈接、文件屬性,並複製目錄下的所有內容。其作用等於dpR參數組合。
-d:複製時保留鏈接。這裏所說的鏈接相當於Windows系統中的快捷方式。
-f:覆蓋已經存在的目標文件而不給出提示。
-i:與-f選項相反,在覆蓋目標文件之前給出提示,要求用戶確認是否覆蓋,回答"y"時目標文件將被覆蓋。
-p:除複製文件的內容外,還把修改時間和訪問權限也複製到新文件中。
-r:若給出的源文件是一個目錄文件,此時將複製該目錄下所有的子目錄和文件。
-l:不復制文件,只是生成鏈接文件。

舉例:
#將../html/index.html 複製到當前目錄
cp ../html/index.html .    
#將../html/ 目錄下的文件及子目錄複製到當前的tt目錄下,如果tt不存在,會自動創建
cp -r ../html/  tt/       
#將文件file複製到目錄/usr/men/tmp下,並改名爲file1
cp file /usr/men/tmp/file1  
#如果dir2目錄已存在,則需要使用
cp -r dir1/. dir2

遠程複製:
#將當前目錄下的test.txt複製到遠程000.01機器的/zx目錄下
scp test.txt root@192.168.000.01:/zx
#將test.txt複製到遠程用戶的根目錄,並命名爲textA.txt
scp test.txt root@192.168.000.01:testA.txt
#也可以不指定用戶,在後續提示中再輸入,如下:
scp test.txt 192.168.000.01:/zx
#從遠程複製到本地: -r用於遞歸整個目錄
scp -r remote_user@remote_ip:remote_folder local_path
移動/重命名文件:
移動操作可以理解成複製文件後,刪除原文件。
mv /zx/soft/* .   #複製/zx/soft目錄中的所有文件到當前目錄
mv a.txt ./test/a.txt  #複製當前目錄a.txt到當前的test目錄下。
mv /zx/soft/  /tmp/soft  #複製文件夾到/tmp/下,必須保證tmp是存在的文件夾

重命名還是用的移動操作命令
#將目錄(文件)A重命名爲B
mv A B
#將/a目錄(文件)移動到/b下,並重命名爲c。要保證b目錄存在。
mv /a /b/c
#將當前test1目錄移動到當前的test目錄並命名爲b
mv ./test1 ./test/b 
tar命令:
-c: 建立壓縮檔案
-x:解壓
-t:查看內容
-r:向壓縮歸檔文件末尾追加文件
-u:更新原壓縮包中的文件
這五個是獨立的命令,壓縮解壓都要用到其中一個,可以和別的命令連用但只能用其中一個。下面的參數是根據需要在壓縮或解壓檔案時可選的。
解壓壓縮操作:
-z:有gzip屬性的
-j:有bz2屬性的
-Z:有compress屬性的
-v:顯示所有過程
-O:將文件解開到標準輸出
下面的參數-f是必須的
-f: 使用檔案名字,切記,這個參數是最後一個參數,後面只能接檔案名。
舉例說明:
tar -cf all.tar *.jpg
這條命令是將所有.jpg的文件打成一個名爲all.tar的包。-c是表示產生新的包,-f指定包的文件名。
tar -tf all.tar
這條命令是列出all.tar包中所有文件,-t是列出文件的意思
tar -xf all.tar
這條命令是解出all.tar包中所有文件,-x是解開的意思
壓縮
tar –cvf jpg.tar *.jpg //將目錄裏所有jpg文件打包成jpg.tar
eg2:
    tar -xzf nginx-1.14.0.tar.gz //解壓到當前目錄
    tar -zxf nginx-1.14.0.tar.gz -C /usr/local/nginx  #解壓到對應目錄
 eg3:
 	tar -zxvf nginx...tar.gz #解壓並顯示過程
注意:有些壓縮程序提示命令找不到,需要進行安裝,例如:
yum install unzip

總結:
1*.tar 用 tar –xvf 解壓
2*.gz 用 gzip -d或者gunzip 解壓
3*.tar.gz和*.tgz 用 tar –xzf 解壓
4*.bz2 用 bzip2 -d或者用bunzip2 解壓
5*.tar.bz2用tar –xjf 解壓
6*.Z 用 uncompress 解壓
7*.tar.Z 用tar –xZf 解壓
8*.rar 用 unrar e解壓
9*.zip 用 unzip 解壓  
ln、file和touch命令:

ln命令:名用於創建鏈接文件,包括硬鏈接(Hard Link)和符號鏈接(Symbolic Link) 。我們常用的是符號鏈接,也稱軟連接。軟連接就類似windows裏的快捷方式。
#在當前目錄創建一個軟連接,指向/etc/fastab,名稱也是fastab
ln -s /etc/fastab
#在當前目錄創建一個指向/boot/grub的軟連接,命名爲gb
ln -s /boot/grub gb
注意:刪除軟連接 正確方式是:rm -rf ./gb
錯誤方式:rm -rf ./gb/ 這樣會刪除了原有grub下的內容。特別是針對系統文件的軟連接,刪除一定要慎重。

file命令 用於識別文件的類型
Linux中文件後綴只是方便使用者識別,沒有實質的約束作用。file命令可以查看文件的實質類型:
file [-bcLz] 文件|目錄
選項說明:
文件|目錄:需要識別的文件或目錄
-b: 顯示識別結果時,不顯示文件名
-c: 顯示執行過程
-L: 直接顯示符號鏈接文件指向的文件類型
-z: 嘗試去解讀壓縮文件的內容

touch命令: 用於改變文件或目錄的訪問時間和修改時間
touch [-am] [-t<日期時間>] [目錄|文件]
如果指定目錄文件不存在,則會直接創建一個空文件,所以touch也常用來創建一個空白文件
#創建一個新文件aa.txt
touch aa.txt
選項說明:
-a: 只修改訪問時間
-m : 只修改 修改時間
-t : 使用指定日期時間,而非系統時間 。例如要修改爲20191020163813秒。參數就是:‘20191020163813
查找操作命令:
#從根目開始,查找名稱以nginx開頭的目錄和文件
find / -name nginx*  
#查找文件大小超過100M的文件
find / -size +100M
#查找/home/zx目錄下,10分鐘內被修改過的文件和目錄
find /home/zx/  -mmin -10
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章