shell基本命令
1.#!/bin/sh是指此腳本使用/bin/sh來解釋執行。
解釋:#! 是一個約定的標記,它告訴系統這個腳本需要什么解釋器來執行,即使用哪一種 Shell。
2.echo 命令用於向窗口輸出文本。
舉例:echo "Hello World !"
3.your_name="qinjx"
賦值變量
echo ${your_name}
打印變量;使用變量的時候加括號和美元符
4.chmod +x ./test.sh #使腳本具有執行權限
./test.sh #執行腳本
chmod 777 /tmp -R 意思是把tmp文件夾及其子bai文件夾的權限全部修改為777
解釋語句一:ping -c 5 baidu.com > /dev/null 2>&1
1. ping -c 5 baidu.com
-c<完成次數>:設置完成要求回應的次數;
2. >/dev/null
這條命令的作用是將標准輸出1重定向到/dev/null中。 /dev/null代表linux的空設備文件,所有往這個文件里面寫入的內容都會丟失,俗稱“黑洞”。那么執行了>/dev/null之后,標准輸出就會不再存在,沒有任何地方能夠找到輸出的內容。
3. 2>&1
這條命令用到了重定向綁定,采用&可以將兩個輸出綁定在一起。這條命令的作用是錯誤輸出將和標准輸出同用一個文件描述符,說人話就是錯誤輸出將會和標准輸出輸出到同一個地方。
linux在執行shell命令之前,就會確定好所有的輸入輸出位置,並且從左到右依次執行重定向的命令,所以>/dev/null 2>&1的作用就是讓標准輸出重定向到/dev/null中(丟棄標准輸出),然后錯誤輸出由於重用了標准輸出的描述符,所以錯誤輸出也被定向到了/dev/null中,錯誤輸出同樣也被丟棄了。執行了這條命令之后,該條shell命令將不會輸出任何信息到控制台,也不會有任何信息輸出到文件中。
5.解釋語句二:if [ $? -ne 0 ];then
$? 是一個特殊變量,用來獲取上一個命令的退出狀態,或者上一個函數的返回值。
所謂退出狀態,就是上一個命令執行后的返回結果。退出狀態是一個數字,一般情況下,大部分命令執行成功會返回 0,失敗返回 1,這和C語言的 main() 函數是類似的。
-ne 表示不等於。
含義:如果上一條命令執行后結束代碼不是0則執行下面的命令,直到fi行之前。
6.sudo sh -c "echo 'eipadmin ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers"
將eipadmin ALL=(ALL) NOPASSWD:ALL,寫入/etc/sudoers里的最后面(追加)。
7.查看系統安裝了哪些shell
[rocrocket@localhost ~]$ chsh -l
/bin/sh
/bin/bash
/sbin/nologin
/bin/zsh
查看當前正在使用的shell:
[rocrocket@localhost ~]$ echo $SHELL
/bin/bash
把eipadmin的shell改成/bin/bash:
sudo chsh -s /bin/bash eipadmin
8.chage設置賬號和密碼的有效期限
sudo chage -I -1 -m 0 -M 99999 -E -1 eipadmin 設置eipadmin用戶
9.sh -c "echo 'vm.nr_hugepages=2048' > /etc/sysctl.d/hugepages.conf"
hugepages.conf文件覆蓋為里vm.nr_hugepages=2048(文件里只剩這一個變量)
10.手動加載所有的配置文件,執行:
# sysctl --system
11.SQLITE3_ROOT_DIR=/etc/eipadmin
sudo mkdir -p ${SQLITE3_ROOT_DIR}
mkdir -p
在創建目錄時,我們通常會先檢查一下是否存在,如果不存在,就創建,這個時候通常用mkdir -p進行。
-p, --parents 需要時創建上層目錄,如目錄早已存在則不當作錯誤
12.超級用戶給其他用戶設置權限:sudo chmod a+rx /home/user 使所有人可以訪問,
13.sudo cp eipadmin-dump /usr/bin/
復制eipadmin-dump文件到/usr/bin/下
14.sudo touch /var/log/natgwadmin.log
在這個路徑下/var/log/創建natgwadmin.log文件
15.關閉UBUNTU自動更新
# Disable apt auto update
sudo systemctl disable apt-daily
sudo systemctl disable apt-daily.timer
sudo systemctl disable apt-daily-upgrade.timer
sudo systemctl disable apt-daily-upgrade
sudo sed -i 's/"1"/"0"/g' /etc/apt/apt.conf.d/10periodic
16.回顯執行的命令
set -x
17.出現:Account locked due to 25 failed logins
pam_tally2 --user=ops #查看
pam_tally2 --user=ops --reset #重置
18.find / -name id_rsa
rm /root/eip-cluster-master/id_rsa
19.每一個 rules 文件,就像其他的 Makefile 一樣,包含着若干條 rules,其中每一個都定義了一個 target 以及其具體操作。 一個新的 rule 以自己的 target 聲明開頭,后續的行都以 TAB 開頭,以指示 target 的具體行為。
當你想要執行一個 rule 的時候,就將 target 名稱作為命令行參數來調用。比如說,debian/rules clean binary 會執行 clean 和 binary 兩個 target。
clean(必需):清理所有編譯的、生成的文件或編譯樹中無用的文件。
fakeroot debian/rules clean
#在fakeroot下 執行一個clean的 rule
debian/rules clean 運行了 dh clean,其實際執行的命令為:
dh_testdir
dh_auto_clean
dh_clean
fakeroot與sudo的區別
fakeroot不能獲得root的權限,sudo可以。
fakeroot只是偽裝成root,它不能改變需要root權限才能改變的文件,它只是讓程序執行時按照有root權限的情況來運行,而對文件的操作實際上是在普通用戶下進行的。
fakeroot tar cvf /tmp/local.tar /usr/localsudo tar cvf /tmp/local.tar /usr/local
上面兩條命令都會在/tmp下建立local.tar,tar內的文件名都會以/開頭,但前一條命令生成的文件屬於當前用戶,后一條命令生成的文件是root的。
20.解壓tar文檔
解壓到當前工作路徑
# 未壓縮
tar -xf tar-file.tar
# 使用gnuzip算法進行壓縮的tar文檔
tar -xzf tgz-file.tar
解壓到指定目錄
# 未進行壓縮的tar文檔
tar -xf tar-file.tar -C /path/to/destination
# 使用gunzip算法壓縮的tar文檔
tar -xzf tgz-file.tgz -C /path/to/destination
21.解決出現unable to resolve host
直接從/etc/hosts里面將127.0.1.1 {} 改成對應的主機名稱
22.全局搜索/查看歷史命令
root@ecs:~# find /* -name 01autoremove
eipadmin@ecs:/root/eip-cluster-master$ history