Linux基本命令大全

linux的基本命令
mKdir test          # 建立一個名爲test的文件夾

    mkdir -p test1/test2/test3          # 遞歸建立directory
    mkdir -p {aaa,bbb,ccc}              # 建立同級directory

touch test.txt      # 建立名爲test.txt的文件
rmdir test1         # 直接刪除目錄(只能directory,不能刪除file)

rm -r               # 刪除目錄(directory or file)並詢問是否刪除

rm -f               # 強制無條件刪除文件(file) 不詢問

rm -rf              # 強制刪除(directory or file),而且不詢問

rm -rf /*           # 刪除根目錄下的全部
ls          # 查看該目錄下的文件

ls -l       # 查看該目錄下的文件及文件詳情(主 組 大小 等等)

cat test.txt            # 查看文件的內容(一次性查看所有)
                # cat 詳細用法看後面

tail -f test.txt        # 實時監控文件內容

more test.txt           # 分頁查看文件內容

echo $PATH              # 查看環境變量
echo '要改寫的內容' >> test.txt
  • 目錄相關操做
cd .                # 當前目錄

cd ..               # 上一級目錄

cd -                # 上一個工做目錄

cd ~                # 當前用戶所在的家目錄

pwd                 # 當前目錄的絕對路徑
  • 執行
# 執行文件
./
  • 網卡配置相關
# 查看網卡信息的兩種方式
# 方式一:
if add show
# 方式二:
ifconfig


# 啓動網卡
ifup 網卡名(在查看網卡信息的時候能夠看到網卡名)

# 禁止網卡
ifdown  網卡名


# 可是這裏有一個問題,每一次系統啓動以後都須要去啓用網卡,否則就沒辦法鏈接網絡並獲取IP地址
  • 編輯網卡配置
# 1 打開網卡配置文件

vim /etc/sysconfig/network-scripts/ifcfg-ens33

# 2 按i進入編輯模式

# 3 將最後一行ONBOOT=no改成ONBOOT=yes, 按ESC退出編輯模式,再輸入:wq保存退出

# 4 init 6重啓服務器便可
  • 開機和重啓命令
init 0  關機
poweroff 關機
init 6 重啓
reboot 重啓
  • linux的目錄結構

linux的目錄結構,   根目錄   /
                  root 和 home是同級的
  • 建立用戶
# 1 建立用戶名
useradd aaa         # aaa 爲用戶名

# 2 爲哪一個用戶設置密碼
passwd aaa  

# 3 輸入密碼
  • 底線命令
# 1 按引號:

:w      # 保存不退出
    
:wq     # 保存並退出
    
:wq!    # 無理由保存退出
        
:q      # 退出
            
:q!     # 無理由強制退出
  • vim
# vi/vim 操做流程:

    # 1. vi打開文件 此時進入命令模式,輸入i,進入編輯模式
    # 2. 在編輯模式下,開始輸入字符串
    # 3. 編輯完以後,esc退出編輯模式,回到命令模式,按:進入底線命令模式
    # 4. 輸入底線命令
  • cat
### cat 只能查看純文本類型(只能看file,不能看directory)

# 顯示行號
cat -n test.txt 

# 在每行結尾加上$符號
cat -e test.txt 

# 將「你好」添加到test.txt文件中
cat >>test.txt<<EOF     
你好
EOF
  • more
# 用於查看內容較多的文本,會以百分比的形式顯示看到多少

more /etc/passwd
"""
    按下空格space是翻頁
    按下b鍵是上一頁
    回車鍵向下讀取內容
"""
  • echo
# 追加
echo '要追加的內容'>>目標文件

# 覆蓋
echo '要覆蓋的內容'>目標文件
  • linux快捷鍵
# 自動補全命令/文件名/目錄名
    tab 
    
# 清理終端顯示
    ctrl + l
    clear
   
# 終止當前操做
    ctrl+c
    
# 複製
"""
 # 移動test.py 到/tmp目錄下
 cp test.py /temp/
 
 # 移動test.py 到/tmp目錄下並重命名爲aaa
 cp test.py /temp/aaa.py

cp -r 遞歸,複製目錄以及目錄的子孫後代(copy目錄 ) 
cp -p 複製文件,同時保持文件屬性不變
cp -a 至關於-pdr ,相似於wimdows系統的複製快捷方式

"""
  • alias
alias 新的命令='原命令 -選項/參數'

eg:
    alias aaa='cp -r'
    alias bbb='echo'"大哥,你想幹啥"
  • 查找命令
find    (目錄)    (類型)    (文件名)

# 找出/temp全部以.txt結尾的文件
find /temp/ -type f -name '*.txt'

# 找出/etc下全部名字以host開頭的文件
find /temp/ -name 'host*'

# 找出/opt上一個名字爲setting.py的文件
find /opt/ -name 'setting.py'

"""
    b - 塊設備文件。
    d - 目錄。
    c - 字符設備文件。
    p - 管道文件。
    l - 符號連接文件。
    f - 普通文件。
    s - socket文件
"""
  • 管道符命令
將第一個命令的輸出 做爲下一個命令的輸入

ps -ef|grep 'python'

全部進程中  含有'python'字樣的進程

"""
grep(global search regular expression(RE) and print out the line)
全面搜素正則表達式並把行打印出來,使用正則表達式搜索文本,並把行打印出來。
"""
  • grep
grep '找的東西' 目錄

"""
    -i : 忽略大小寫
    -n : 輸出行號
    -v : 反向選擇
    --color = auto : 給關鍵詞部分添加顏色
"""

# 找出/etc/passwd下root用戶所在的行,以及行號,顯示顏色
cat /etc/passwd |grep '^root' --clolr=auto -n

# 找出/etc/passwd全部不容許登陸的用戶
grep /sbin/nologin /etc/passwd          # /sbin/nologin爲查找的目標

# 找出/etc/passwd全部與mysql有關行,行號
cat /etc/passwd |grep 'mysql' -n
  • head tail
head        # 顯示文件前幾行,默認是10行
    head -2 /tmp/test.py
    
tail        # 顯示文件後幾行,默認是10行
    tail -2 /tmp/test.py

# 顯示文件10-30行 (利用管道)
head -30 /tmp/test.py|tail -21

# 持續刷新顯示
tail -f xx.log
  • which
which  
"""
用於查找並顯示給定命令的絕對路徑,環境變量PATH中保存了查找命令時須要遍歷目錄,會再環境變量$PATH設置的目錄裏查找符合條件的文件
"""
which pwd
which python
    /usr/bin/python
  • mv
# 移動文件或者重命名files

# 移動
mv test/test1 /new_test/

# 重命名
mv test1.py new_test.py
  • scp
# secure copy:遠程copy命令,用於linux之間的文件或目錄的遠程傳輸
    
    """
scp 【可選參數】 本地源文件 遠程文件標記
scp 本地文件  遠程用戶名@遠程ip:遠程文件夾/
scp 本地文件  遠程用戶名@遠程ip:遠程文件夾/遠程文件名
scp -r  本地文件夾  遠程用戶名@遠程ip:遠程文件夾/
    
    """
    
# 傳輸文件到遠程而且重命名
scp /tmp/test.py root@192.168.1.68:/home/
    
# 傳輸文件到遠程而且重命名
scp /tmp/test.py root@192.168.1.68:/home/new_test.py
    
# 傳輸directory到遠程而且重命名
scp -r /tmp/test.py root@192.168.1.68:/home/new_test.py
    
    
# 複製遠程文件到本地
scp root@192.168.1.68:/home/test.py /tmp/test/new_test.py
    
    
    # 參數
    """
        -r :遞歸複製整個目錄
        -v:詳細方式輸出
        -q:不顯示傳輸進度條
        -C:容許壓縮
    """
  • du
# 用法
du 參數 文件或目錄

# 參數
"""
-s 顯示總計
-h 以k,M,G爲單位顯示,可讀性強
"""

# 實例
du -sh /home

df      # 查看磁盤大小
  • top
# 很重要,用於動態監視進程活動信息與系統負載等信息

# 第一行(uptime)
"""
系統時間    主機運行時間      用戶鏈接數   系統1,5,15分鐘平均負載
"""
  • 加鎖
chattr +a test

chattr -a test

# 參數
"""
aAcCdDeijsStTu
"""
  • linux時間
# 將linux客戶端時間和阿里雲服務器時間同步(修改客戶端時間)
ntpupdate -u ntp.aliyun.com

# 將linux硬件時間和客戶端時間同步
"""
    1 . 以系統時間爲基準,修改硬件時間
        hwclock -w
        
    2 . 以硬件時間爲基準,修改系統時間
        hwclock -s
"""
  • yum
可以從指定的服務器自動嚇到RPM包而且安裝,能夠自動處理依賴關係,而且一次性安裝全部的依賴


# 使用
"""
 1.先備份yum源
 mkdir repo_bak
 mv *.repo repo_bak         #  *.repo:全部以repo結尾的隱藏文件
 
 2.下載阿里repo文件
 wget http://mirrors.aliyun.com/repo/Centos-7.repo
 
 3.清空yum緩存而且生成新的yum緩存
 yum clean all
 yum makecache
 
 4.安裝軟件擴展源
 yum install -y epel-release
"""
  • 軟件包
# 各個系統下面軟件包的格式

# 1. windows
.exe / .msi

# 2.mac
.dmg

# 3.linux
.rpm
  • 小知識
yum install lrzsz           # 下載lrzsz工具包

rz          # 上傳文件
sz          # 下載文件
  • wget
# wget命令用於再終端下載網絡文件

# 使用方法
# 參數是 wget [參數] 下載地址

# 實例
wget -r -p http://www.58.com    # 遞歸下載
用戶管理和文件權限
  • 用戶管理
# user 擁有root的權限

"""
1. 在sudoers中配置受權用戶,用visudo進入此文件的vim模式
2.用/root找到受權配置
3.將受權用戶添加進去
4.受權用戶在使用root權限時,應該先在前面使用sudo ,如sudo useradd -bbb

"""

# 添加用戶
useradd username

# 切換用戶
su username

# 退出登陸
logout
  • 文件權限
chmod u+r test.py   # 給主添加讀的權限

chmod g+w test.py   # 給組添加寫的權限

chmod o+x test.py   # 給other添加執行的權限

chmod 777 test.py   # 給主,組,other添加讀寫執行的權限
  • 軟連接
# 用法
ln -s 源目錄地址 /user/bin/rename

# 舉例
ln -s /opt/python3.6 /user/bin/pyhton
  • 配置環境變量
# 先cd到用戶的家目錄下面

# vim ~/.bash_profile 進入配置文件的vim模式

# 配置須要添加的環境變量
  • tar
# 參數
"""
-v:詳情
-c:壓縮
-x:解壓
-z:使用gzip工具進行壓縮
"""

# 實例

# 壓縮文件
tar -cf filename

# 解壓文件
tar -xvf filename

# 進一步壓縮,經過gzip
tar -zxvf filename          # 獲取到.tar.gz後最的文件

# 解壓.tar.gz後最的文件
方式1:gzip -d filename     # 去掉.gz後綴,獲得.tar後綴的文件按
      tar -xvf filename     
    
方式二:tar -zxvf filename.tar.gz
  • history
history         # 顯示歷史命令

!+歷史命令的序號能夠調用此命令
  • netstat
# 查看服務器端口信息
  • ps
ps -ef 查看服務器上進程信息,能夠配合管道符或者grep進行過濾信息

# 參數
"""
-a   顯示全部進程
-u   用戶及其餘詳細信息
-x   顯示沒用控制終端的進程
"""
  • kill
# 結束進程命令

kill -9 進程id
pkill 進程名       # 支持正則匹配
killall 進程名
  • SELinux
# 查看selinux狀態
getenforce

# 臨時關閉
setenforce 1/0

# 永久關閉,(修改配置文件)
vim /etc/selinux/config
SELINUX=disable
  • iptables
# 防火牆

iptables -L   # 查看防火牆規則
iptables -F   # 清空防火牆規則

# centos7默認使用firewall做爲防火牆了

# 關閉防火牆
systemctl status firewalld          # 查看防火牆狀態

systemctl stop firewalld                # 關閉防火牆

systemctl disable firewalld         # 關閉防火牆,開機啓動
  • 中文亂碼
# 1 .修改配置文件
vim /etc/locale.conf

# 2 .將LANG="en_US.UTF-8"改成LANG="zh_CN.UTF-8"

# 3 .從新加載配置文件
source /etc/locale.conf
  • dns
# 域名解析系統

# 工做原理:
"""
1  咱們要想訪問www.baidu.com, 首先會去本地DNS緩存中查找

2  若是本地DNS緩存中沒有,那就要去本地文件hosts文件中查找

3  若是本地hosts文件中也沒有,那就會去公網的DNS服務器中找

4  若是公網DNS服務器中也沒有,就說明此域名沒有註冊,沒有辦法訪問

"""
  • crontab
# 計劃任務

# 格式

*  *  *  *  *
分 時 日 月 周


# 實例
#每晚的21:30重啓nginx
30 21 * * * systemctl restart nginx

#每個月的1,10,22日的4:45重啓nginx
45 4 1,10,22 * * systemctl restart nginx
相關文章
相關標籤/搜索