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的目錄結構, 根目錄 /
root 和 home是同級的
# 1 建立用戶名
useradd aaa # aaa 爲用戶名
# 2 爲哪一個用戶設置密碼
passwd aaa
# 3 輸入密碼
# 1 按引號:
:w # 保存不退出
:wq # 保存並退出
:wq! # 無理由保存退出
:q # 退出
:q! # 無理由強制退出
# vi/vim 操做流程:
# 1. vi打開文件 此時進入命令模式,輸入i,進入編輯模式
# 2. 在編輯模式下,開始輸入字符串
# 3. 編輯完以後,esc退出編輯模式,回到命令模式,按:進入底線命令模式
# 4. 輸入底線命令
### cat 只能查看純文本類型(只能看file,不能看directory)
# 顯示行號
cat -n test.txt
# 在每行結尾加上$符號
cat -e test.txt
# 將「你好」添加到test.txt文件中
cat >>test.txt<<EOF
你好
EOF
# 用於查看內容較多的文本,會以百分比的形式顯示看到多少
more /etc/passwd
"""
按下空格space是翻頁
按下b鍵是上一頁
回車鍵向下讀取內容
"""
# 追加
echo '要追加的內容'>>目標文件
# 覆蓋
echo '要覆蓋的內容'>目標文件
# 自動補全命令/文件名/目錄名
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 新的命令='原命令 -選項/參數'
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 '找的東西' 目錄
"""
-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 # 顯示文件前幾行,默認是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
"""
用於查找並顯示給定命令的絕對路徑,環境變量PATH中保存了查找命令時須要遍歷目錄,會再環境變量$PATH設置的目錄裏查找符合條件的文件
"""
which pwd
which python
/usr/bin/python
# 移動文件或者重命名files
# 移動
mv test/test1 /new_test/
# 重命名
mv test1.py new_test.py
# 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 參數 文件或目錄
# 參數
"""
-s 顯示總計
-h 以k,M,G爲單位顯示,可讀性強
"""
# 實例
du -sh /home
df # 查看磁盤大小
# 很重要,用於動態監視進程活動信息與系統負載等信息
# 第一行(uptime)
"""
系統時間 主機運行時間 用戶鏈接數 系統1,5,15分鐘平均負載
"""
chattr +a test
chattr -a test
# 參數
"""
aAcCdDeijsStTu
"""
# 將linux客戶端時間和阿里雲服務器時間同步(修改客戶端時間)
ntpupdate -u ntp.aliyun.com
# 將linux硬件時間和客戶端時間同步
"""
1 . 以系統時間爲基準,修改硬件時間
hwclock -w
2 . 以硬件時間爲基準,修改系統時間
hwclock -s
"""
可以從指定的服務器自動嚇到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 -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模式
# 配置須要添加的環境變量
# 參數
"""
-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 # 顯示歷史命令
!+歷史命令的序號能夠調用此命令
# 查看服務器端口信息
ps -ef 查看服務器上進程信息,能夠配合管道符或者grep進行過濾信息
# 參數
"""
-a 顯示全部進程
-u 用戶及其餘詳細信息
-x 顯示沒用控制終端的進程
"""
# 結束進程命令
kill -9 進程id
pkill 進程名 # 支持正則匹配
killall 進程名
# 查看selinux狀態
getenforce
# 臨時關閉
setenforce 1/0
# 永久關閉,(修改配置文件)
vim /etc/selinux/config
SELINUX=disable
# 防火牆
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
# 域名解析系統
# 工做原理:
"""
1 咱們要想訪問www.baidu.com, 首先會去本地DNS緩存中查找
2 若是本地DNS緩存中沒有,那就要去本地文件hosts文件中查找
3 若是本地hosts文件中也沒有,那就會去公網的DNS服務器中找
4 若是公網DNS服務器中也沒有,就說明此域名沒有註冊,沒有辦法訪問
"""
# 計劃任務
# 格式
* * * * *
分 時 日 月 周
# 實例
#每晚的21:30重啓nginx
30 21 * * * systemctl restart nginx
#每個月的1,10,22日的4:45重啓nginx
45 4 1,10,22 * * systemctl restart nginx