Linux經常使用命令【總結】

編輯本文php

Linux理論小結http://www.javashuo.com/article/p-vujyhvvm-ev.htmlhtml

Linux 環境下/etc/profile和/etc/profile.d 的區別:http://www.javashuo.com/article/p-uzdyfmvp-gb.htmlpython

Linux命令中文版詳解:https://linuxtools-rst.readthedocs.io/zh_CN/latest/tool/index.htmllinux

Linux系統,我用過的有centos和Ubuntu兩種,可是我不打算分開總結,由於這兩種Linux系統有80%的命令都相同的。nginx

查看centos版本:cat /etc/redhat-releaseweb

Linux通用:shell

cat /etc/issue              , 顯示的是發行版本信息
cat /proc/version         ,顯示操做系統類型,並說明正在運行的內核版本。json

getconf  LONG_BIT    查看系統是32位仍是64位ubuntu

添加定時任務:https://blog.csdn.net/errors_in_life/article/details/72778816vim

centos7限制訪問ip:http://www.cnblogs.com/emanlee/p/10343542.html

更多centos的命令:http://www.javashuo.com/article/p-qhvfbkus-gg.html

用戶和用戶組管理:http://www.javashuo.com/article/p-fznenxlb-go.html

cat /etc/protocols     # 協議號表。如ip協議號用0表示,udp協議號用17表示。

cat /etc/services      # 端口號表。

參考:http://www.javashuo.com/article/p-dywqysof-gs.html

/etc/passwd    記錄Linux帳號

/etc/shadow    記錄Linux帳號的密碼

/etc/group      記錄Linux中的全部羣組

Linux文件屬性:http://www.javashuo.com/article/p-oxyoeixy-gw.html 

 

自動化工具:centos中安裝expect

yum install expect -y 

centos7根目錄擴容

http://www.javashuo.com/article/p-mvsdsxbz-ha.html

修改ssh的22端口

http://www.javashuo.com/article/p-corctzxx-hd.html

防火牆服務:firewalld、iptables

http://www.javashuo.com/article/p-zijnsrxo-hh.html

Linux記錄history

http://www.javashuo.com/article/p-nuvlmrbq-hc.html

 

延伸:dos經常使用命令【總結】

命令 做用 其餘
ll 查看文件  

ll -t
-a # 顯示隱藏文件(夾)
-t # 按時間排序
-r # 對目錄反向排序
-S # 按文件大小排序
-X # 按擴展名排序(最後一個.後的字符)
--full-time # 顯示完整時間
-i # 顯示文件編號,如:32983542
# 重命名編號爲32983542的文件爲test.php。{}表明原文件。
find . -inum 32983542 -exec mv {} test.php \;

pwd 查看路徑  
cd 切換路徑   
touch 新建文件   
mkdir 新建目錄   -p 建立多層目錄
mv  移動、重命名  
rm 刪除文件、文件夾 不可恢復,慎用
find 搜索文件 

* 號匹配0個或多個字符。

?號匹配一個字符。

有通配符*、?號時,必須引號包裹起來。

find / -name "1*.txt"

忽略大小寫

find ./ -iname china*

find高級用法 搜索文件

-atime  n   搜索在過去n天讀取過的文件。

-ctime  n   搜索在過去n天修改過的文件。

-size  n    搜索文件大小是n的文件。如find / -size +100c 搜索文件大小爲100b(字節)以上的文件。字節c、千字節k、兆字節M、吉字節G。+大於、-小於。

-user x   搜索屬於x用戶的文件。

-and    搜索添加並列。如find / -size +100c -and -user cao 搜索文件大小爲100b以上,而且屬於cao用戶的文件

-maxdepth  2  只搜索2級深度內的文件

cat 查看小文件內容 帶行號: cat -n
more 查看大文件內容   enter下一行,空格下一頁,q退出
| 管道,配合其餘命令使用,如grep  
grep 文本內容查找
-n  顯示匹配行及行號
-v  顯示不包含匹配文本的全部行(至關於求反)反轉
-i  忽略大小寫
ps  -ajx  | grep  -i  httpd
which 查看命令位置  凡是which查不到的命令,都是內建命令。
whereis 查看命令位置和安裝包位置  
type 查看命令類型:內建命令、關鍵字、別名 type cd
alias 查看系統中有哪些別名命令

用戶自定義別名命令

vim /etc/profile

末尾追加

alias  ll.='ls -lha'

重啓配置

source  /etc/profile

source

 

source 在當前shell環境執行。

sh 或者 .號空格 在當前shell的子shell中執行。

運行可執行文件:如,使全局配置文件從新當即生效

source  /etc/profile

執行配置,使之馬上生效。

正常狀況下,腳本中執行的參數設置只能影響到shell腳本自己的執行環境,不能影響到調用此shell的腳本。 使用source命令執行腳本,可讓腳本影響到父shell的環境(即調用此shell的當前shell)。

source 運行可執行文件(當前父shell執行)  
.空  或者sh 運行可執行文件(建立子shell執行)  
  配置文件做用範圍

source /etc/profile        # 配置應用於全部用戶,永久

source ~/.bashrc         # 配置應用於當前用戶,永久

export xx=111            # 配置應用於當前登陸,臨時

 file  

探測給定文件的類型。file命令對文件的檢查分爲文件系統、魔法幻數檢查和語言檢查3個過程。

file Temp.txt

ping 檢查連通性 (基於icmp協議,3層協議)  
wget

下載網站文件 

下載文件
wget url
下載全站
wget -m url

 

 

單頁下載:wget http://www.baidu.com/

全站下載:wget -r -p -np -k http://www.baidu.com/ 

遞歸下載:
-r, --recursive 指定遞歸下載。-m選擇本域名下的下載,友情連接不下載。
-k, --convert-links 讓下載獲得的 HTML 或 CSS 中的連接指向本地文件。
-p, --page-requisites 下載全部用於顯示 HTML 頁面的圖片之類的元素。
-l, --level=NUMBER 最大遞歸深度 (inf 或 0 表明無限制,即所有下載)。

遞歸接受/拒絕:
-np, --no-parent 不追溯至父目錄。

不驗證證書:
--no-check-certificate

tcpdump

抓包命令

一、類型的關鍵字,包括host,net,port。
二、傳輸方向的關鍵字,包括src,dst,dst or src,dst and src。
三、協議的關鍵字,包括ip,ip6,arp,rarp,tcp,udp。

在Linux上抓包:tcpdump tcp  -i any -s0 -w desk.cap

參數說明

-i any  指定網卡爲全部

-s0 防止包被截斷

-w desk.cap 將抓到的包寫入文件desk.cap

 

curl  -k 打印返回的html。訪問https,不驗證證書有效性。

curl -k https://xxxx

curl icanhazip.com 查看公網ip

聯網狀態下使用:

curl icanhazip.com

tar 壓縮、解壓 

(一)壓縮
一、打包
tar -cvf web.tar web/
或者
tar -cvf 1.txt.tar 1.txt
二、打包並壓縮(gz格式-z,bz2格式-j):
tar -zcvf web.tar.gz web/
或者
tar -zcvf 1.txt.tar.gz 1.txt

(二)解壓:
tar -zxvf 1.tar.gz
解壓到指定位置:
tar -zxvf 1.tar.gz -C ~/Desktop

   解壓小結

一、*.tar 用 tar –xvf 解壓
二、*.gz 用 gzip -d或者gunzip 解壓
三、*.tar.gz和*.tgz 用 tar –xzf 解壓
四、*.bz2 用 bzip2 -d或者用bunzip2 解壓
五、*.tar.bz2用tar –xjf 解壓
六、*.Z 用 uncompress 解壓
七、*.tar.Z 用tar –xZf 解壓
八、*.rar 用 unrar e解壓
九、*.zip 用 unzip 解壓

unzip 解壓zip後綴的壓縮包

unzip  1.zip

vi 編輯器 

:q! 不保存退出,或者ZQ。:wq保存退出,或者ZZ,或者:x。

:e! 不保存退出並從新打開。

:set nu  顯示行號

:set nonu   取消行號

永久顯示行號:

① vim /etc/vimrc      (ubuntu是  vim  /etc/vim/vimrc)

② 在文件的末行追加   set nu

③ZZ保存 /etc/vimrc的修改

vim高級  

(一)命令模式:ESC進入
GG:光標移動到最後。1G、gg均是移動到最前。12G移動到12行
ZZ:保存退出。ZQ:不保存退出。
dd:刪除一行。30dd刪除30行。
yy:複製一行。p黏貼。
V:選中一行。配合方向鍵用。
/str:查找str關鍵字。n下一個,N上一個。

(二)插入模式:i進入
小o:向下開闢新行。
大O:向上開闢新行。

(三)末行模式
:set nu   設置行號。  :set nonu  取消行號。
:e!  不保存從新打開。
:q!  不保存退出,至關於ZQ。
:wq  保存退出,至關於ZZ。
:%s/old/123   將old替換爲123,一處。
:%s/old/123/g  將old替換爲123,所有。
:1,10s/old/123/g  將old替換爲123,範圍第1到10行。

cp 複製 

 cp 1.txt 11.txt 複製文件

 cp -r web1 web11 複製文件夾

scp 遠程複製  遠程下載:scp python@10.1.2.66:Desktop/1.txt  ./
ssh 遠程鏈接控制  ssh python@10.1.2.66
ssh  -v  你的ip 查看鏈接過程 ssh -v  10.1.2.66      或者  ssh -v  python@10.1.2.66 
     
Redhat紅帽系列 Redhat、Centos、Fedora 軟件管理:一、源碼安裝。二、rpm包安裝。三、yum源安裝。
  源碼安裝  自定義、源碼安裝軟件統一安裝在:/usr/local下,方便管理。

一、配置安裝路徑
./configure --prefix=/usr/local/https/
二、編譯,生成可執行的二進制文件Makefile
make
三、安裝。此時,軟件安裝在 /usr/local/https/ 目錄下
make install

rpm rpm包安裝

centos中使用。

查看Redhat中的軟件安裝列表:rpm -aq

安裝:i安裝,v顯示安裝過程,h以‘#’顯示安裝進度。
rpm -ivh 包.rpm
卸載:移除指定的rpm包
rpm -e 包的名稱

yum yum源安裝,在rpm基礎上發展出來的 centos中使用。
yum list installed   # 查看yum安裝過的軟件列表
yum list    #  查看全部軟件的列表
yum install httpd -y  # yum方式安裝軟件
yum remove httpd -y  # yum方式卸載軟件
Debian蛋黃派系 Kali、Ubuntu等 軟件管理:一、Deb包安裝。二、apt-get源安裝。
dpkg Deb包安裝

Ubuntu中使用。

查看Ubuntu中的軟件安裝列表:dpkg -l

apt apt-get源安裝,新版 Ubuntu中使用。

sudo apt-get install package  安裝包 
sudo apt-get remove package  刪除包 

apt-get  apt-get源安裝,舊版 Ubuntu中使用。
dpkg -i XXX.deb Ubuntu中*.deb軟件安裝 sudo dpkg -i XXX.deb
apt-get -f install Ubuntu中解決安裝依賴

一、執行命令 sudo dpkg -i XXX.deb 返回依賴關係錯誤提示
二、執行 sudo apt-get -f install 這條命令將自動安裝須要的依賴包.
三、再次執行命令 sudo dpkg -i XXX.deb 安裝成功

sudo 臨時切換root用戶5分鐘 臨時切換到超級管理員
su 切換用戶   su -  # 切換到超級管理員,並cd到家目錄
 su - list  # 切換到李四用戶,並cd到lisi的家目錄
ifconfig 查看Linux的ip地址(安裝命令)  
ip addr 查看Linux的ip地址(自有命令)  
chkconfig 舊指令(centos六、5)
開啓自啓控制

舊指令(centos六、5)
顯示全部已啓動的服務
chkconfig --list
使httpd服務自動啓動
chkconfig --level 3 httpd on
使httpd服務不自動啓動
chkconfig --level 3 httpd off

service 舊指令(centos六、5)
服務管理(啓動和關閉) 
 

舊指令(centos六、5)
檢查服務狀態
service httpd status
啓動某服務
service httpd start
中止某服務
service httpd stop
重啓某服務
service httpd restart

systemctl  systemctl 是系統服務管理器命令,它實際上將 service 和 chkconfig 這兩個命令組合到一塊兒。在CentOS 7就開始被使用了。

新指令(centos7)
顯示全部已啓動的服務
systemctl list-units --type=service
使某服務自動啓動
systemctl enable httpd.service
使某服務不自動啓動
systemctl disable httpd.service

檢查服務狀態
systemctl status httpd.service (服務詳細信息)
systemctl is-active httpd.service (僅顯示是否 Active)
啓動某服務
systemctl start httpd.service
中止某服務
systemctl stop httpd.service
重啓某服務
systemctl restart httpd.service

     
useradd 新建用戶  useradd -m lisi
passwd 修改密碼,當前用戶的或者指定用戶 passwd lisi 
userdel 刪除用戶 userdel -r lisi
     
groupadd 添加用戶組 

建立用戶組myweb,其GID爲888:

groupadd -g 888 myweb

groupdel 刪除用戶組 刪除用戶組myweb:groupdel myweb
groupmod 修改用戶組名稱 把用戶組改名爲web:groupmod -n newweb myweb
groups 查看當前用戶所屬組  
id 查看當前用戶所屬組,詳細  
usermod 用戶拉入組 把lisi拉到sudo組中:usermod -a -G sudo lisi
gpasswd 用戶移除組 把lisi移除sudo組:gpasswd -d lisi sudo
     
chmod 修改文件(夾) 權限 去掉1.py的讀r權限
chmod -r 1.txt

對abc.py文件的用戶(u)添加可執行(x)權限
chmod u+x abc.py (u 擁有者、g 用戶組、o 其餘人)

將 test 目錄以及目錄下的全部文件權限修改成 u=rwx,g=rwx,o=rx
chmod -R 776 test

chown

修改文件所屬用戶和用戶組

須要sudo給權限

把aaa.txt文件的用戶和用戶組修改成lisi用戶和lisi用戶組了。(強烈推薦)

chown -R lisi:lisi aaa.txt

只修改所屬組能夠用chgrp list aaa.txt

chatter 鎖定文件,不能刪除,不能更改

半加鎖:chattr +a /root/tmp/1.txt 只能給文件追加內容,可是刪除不了
全加鎖:chattr +i /root/tmp/1.txt 文件不能刪除,不能更改,不能移動
解鎖:chattr -i /root/tmp/1.txt - 表示解除

隱藏chattr命令:
which chattr
mv /usr/bin/chattr /opt/ftl/h -->移動命令,更改命令名稱,使用別名h隱藏身份
/opt/ftl/h +i /root/tmp/1.txt -->利用h 行使chattr命令

lsattr 查看加鎖信息 查看加鎖信息: lsattr /root/tmp/1.txt 文件加了一個參數 i 表示鎖定
     
who 查看當前全部登陸用戶,抓黑客的   
whoami 查看當前的用戶名   
last 查看用戶登陸日誌  last
lastb 查看登陸失敗的日誌  lastb
lastlog 查看可登錄的用戶和最近登陸  lastlog
     
date 顯示服務器日期   
cal 顯示當月日曆  cal -y
ps 查看進程信息(PID、名稱等)  ps -ef

-e :全部的進程均顯示出來,與 -A 具備一樣的效用;
-f :作一個更爲完整的輸出。

ps 進程號 查看進程詳情 ps 17996  查看進程17996的詳情

ps -eo pid,lstart,etime

|grep 37275

查看啓動時間和運行時長

#lstart 啓動時間
#etime 運行時間
#PID 爲37275

37275 Sat Apr 6 15:04:51 2019 01:14:33

37275表示進程PID
Sat Apr 6 15:04:51 2019 表示啓動時間
01:14:33 表示運行持續時間

ps -p PID -eo lstart 查看進程啓動時間

ps -p 1929 -eo lstart  查看進程PID爲1929的進程啓動的時間
後面是L字母

ps -aux 查看進程啓動時間 ps -aux | grep python  查看Python進程的啓動時間
top

動態查看進程,

也能夠查看內存和cpu格式(頂部信息)

x高亮

<高亮向左移動

>高亮向右移動

q退出

其餘:頂部看內存、1數字鍵看cpu個數

htop

高級top,須要另外安裝htop

能夠鼠標點擊界面。

F1 : 查看htop使用說明
F2 : 設置
F3 : 搜索進程
F4 : 過濾器,按關鍵字搜索
F5 : 顯示樹形結構
F6 : 選擇排序方式
F7 : 減小nice值,這樣就能夠提升對應進程的優先級
F8 : 增長nice值,這樣能夠下降對應進程的優先級
F9 : 殺掉選中的進程
F10 : 退出htop。或者q

/ : 搜索字符
h : 顯示幫助
l :顯示進程打開的文件: 若是安裝了lsof,按此鍵能夠顯示進程所打開的文件
u :顯示全部用戶,並能夠選擇某一特定用戶的進程
s : 將調用strace追蹤進程的系統調用
t : 顯示樹形結構

H :顯示/隱藏用戶線程
I :倒轉排序順序
K :顯示/隱藏內核線程
M :按內存佔用排序
P :按CPU排序
T :按運行時間排序

kill 殺死進程

1.強制殺死進程:
kill  -9  xxxx

2.暫停進程:等效於Ctrl+z
kill -STOP 9394
9394爲須要暫停的進程號

3.恢復進程:等效於fg命令
kill -CONT 9394

netstat 查看使用中的套接字端口號  netstat -antp |grep :
netstat -lnp 查看80端口的進程號

netstat -lnp |grep 80     查看80端口的進程號

ps 17996     查看進程17996的詳情

ln 創建軟、硬鏈接  軟鏈接:ln -s /1.txt  /1_soft.txt
history 查看歷史命令   
df 查看磁盤剩餘空間,disk free的縮寫 df -h
du 查看當前文件大小 查看當前文件總大小:du -hs
lsblk  查看磁盤總大小 lsblk  -m,將主要磁盤大小相加,即爲總大小。
     
echo 輸出顯示

 輸出環境變量的值

echo  $PATH

shutdown 關機、重啓 

關機: shutdown now

重啓:shutdown -r now

reboot 重啓  
export 設置當前的環境變量

爲python的nohup.out日誌關閉緩存機制,實時寫入日誌到nohup.out

 export PYTHONUNBUFFERED=1

nohup 開啓後臺運行   nohup  python3  run.py
tail 查看文件內容後面的部分 

查看文件內容的後20行

tail  -20  1.txt

動態查看文件

tail  -f  1.txt

head 查看文件內容的前面部分

查看文件內容的前10行

head  -10  2.txt

rz  上傳文件到Linux系統

sz rz命令
安裝命令:
yum install lrzsz
從服務端發送文件到客戶端:
sz filename
從客戶端上傳文件到服務端:
rz

lynx http://192.168.2.1:49180 一個通用的文字版瀏覽器,Linux系統上使用

安裝命令:yum install lynx (centos系統版本)

-exec  find命令與其連用,進一步處理結果。

方法一:使用exec語法

找出當前目錄中同一類型的文件,並把這類文件刪除

find . -name "*.pyc" -exec rm -rf  {} \;

-exec 參數後面跟的是 command 命令,它的終止是以「;」爲結束標誌的,考慮到各個系統中分號會有不一樣的意義,因此前面加反斜槓。

{} 花括號表明前面find查找出來的文件名

http://www.javashuo.com/article/p-fkwnxddd-ek.html

方法二:使用變量和rm

排除2.json,找出當前目錄下的其餘*.json,不進入子目錄查找。把找到的文件刪除。外圍引號爲1鍵前一個鍵。

xx=`find . ! -name "2.json" -name "*.json" -maxdepth 1`;
echo $xx
rm -f $xx

處理亂碼文件:http://www.javashuo.com/article/p-vladamhb-ea.html

split 分割文件

把文件分割爲1M大小的文件:

split -b 1m 2.txt prefix_

結果獲得prefix_aa、prefix_ab

-b 按照大小分割文件

-l  按照行數分割文件

分割合併文件參考

openssl 證書操做

查看*.crt證書內容
openssl x509 -in server.crt -noout -text

 locale 查看Linux語言格式

locale 命令是將有關當前語言環境或所有公共語言環境的信息寫到標準輸出上
查語言版本      echo $LANG 
修改系統語系   export LC_ALL=en_US.utf8

     
nginx nginx操做

啓動
nginx

中止nginx -s stop

相關文章
相關標籤/搜索