CentOS實戰開發常用指令

新建、刪除、移動、複製

1.新建文件夾

mkdir 文件名

新建一個名爲test的文件夾在home下

view source1 mkdir /home/test

2.新建文本

在home下新建一個test.sh腳本

 vi /home/test.sh

3.刪除文件或文件夾

-r是遞歸的刪除參數表中的目錄及其子目錄,目錄將被清空並且刪除。

當刪除目錄包含的具有寫保護的文件時用戶通常是被提示的。

-f是不提示用戶,刪除目錄下的所有文件。

rm -rf /home/test

4.移動文件或文件夾

mv [options] 源文件或目錄 目標文件或目錄

示例:

1、移動hscripts文件夾/目錄下的所有文件,目錄和子目錄到tmp目錄

mv hscripts tmp

分析:在上述命令中,如果tmp目錄已經存在,mv命令將移動hscripts文件夾/目錄下的所有文件,目錄和子目錄到tmp目錄。 如果沒有tmp目錄,它將重命名 hscripts目錄爲tmp目錄。

2、移動多個文件/更多問價到另一目錄

mv file1.txt tmp/file2.txt newdir

這個命令移動當前目錄的file1.txt文件和tmp文件夾/目錄的file2.txt文件到newdir目錄。

參數:

-i:交互方式操作。如果mv操作將導致對已存在的目標文件的覆蓋,此時系統詢問是否重寫,要求用戶回答”y”或”n”,這樣可以避免誤覆蓋文件。

-f:禁止交互操作。mv操作要覆蓋某個已有的目標文件時不給任何指示,指定此參數後i參數將不再起作用。

5.複製文件或文件夾

cp [options] 來源檔(source) 目的檔(destination)

參數:
-a :相當於 -pdr 的意思;
-d :若來源文件爲連結文件的屬性(link file),則複製連結文件屬性而非檔案本身;
-f :爲強制 (force) 的意思,若有重複或其它疑問時,不會詢問使用者,而強制複製;
-i :若目的檔(destination)已經存在時,在覆蓋時會先詢問是否真的動作!
-l :進行硬式連結 (hard link) 的連結檔建立,而非複製檔案本身;
-p :連同檔案的屬性一起復制過去,而非使用預設屬性;
-r :遞歸持續複製,用於目錄的複製行爲;
-s :複製成爲符號連結文件 (symbolic link),亦即『快捷方式』檔案;
-u :若 destination 比 source 舊才更新 destination !
最後需要注意的,如果來源檔有兩個以上,則最後一個目的文件一定要是『目錄』才行!

示例:

1、複製兩個文件:

cp file1 file2

上述cp命令複製文件file1.php 的內容到文件file2.php中。

2、備份拷貝的文件:

cp -b file1.php file2.php

創建文件file1.php的帶着符號 ‘~’的備份文件file2.php~。
3、複製文件夾和子文件夾:

cp -R scripts scripts1

上面的 cp 命令從 scripts 複製文件夾和子文件夾到 scripts1。

6、創建目錄

mkdir 文件名
mkdir /var/www/test

修改查看文本內容

編輯文件

vi 文件名

退出不保存

Esc
:q

強制退出不保存

Esc
:q!

退出並保存

Esc
:wq

強制退出並保存

Esc
:wq!

掛載硬盤

雙系統掛載windows下的硬盤,安裝ntfs-3g後執行以下命令,其中/dev/sdc1是硬盤名/root/桌面/windowsC是掛載位置:

mount -t ntfs-3g /dev/sdc1 /root/桌面/windowsC

安裝卸載

yum

安裝一個軟件時

yum -y install httpd

安裝多個相類似的軟件時

yum -y install httpd*

安裝多個非類似軟件時

yum -y install httpd php php-gd mysql

卸載一個軟件時

yum -y remove httpd

卸載多個相類似的軟件時

yum -y remove httpd*

卸載多個非類似軟件時

yum -y remove httpd php php-gd mysql

RPM

RPM 安裝操作
命令:

rpm -i 需要安裝的包文件名

舉例如下:

rpm -i example.rpm 安裝 example.rpm 包;
rpm -iv example.rpm 安裝 example.rpm 包並在安裝過程中顯示正在安裝的文件信息;
rpm -ivh example.rpm 安裝 example.rpm 包並在安裝過程中顯示正在安裝的文件信息及安裝進度;

RPM 查詢操作
命令:

rpm -q …

附加查詢命令:
a 查詢所有已經安裝的包以下兩個附加命令用於查詢安裝包的信息;
i 顯示安裝包的信息;
l 顯示安裝包中的所有文件被安裝到哪些目錄下;
s 顯示安裝版中的所有文件狀態及被安裝到哪些目錄下;以下兩個附加命令用於指定需要查詢的是安裝包還是已安裝後的文件;
p 查詢的是安裝包的信息;
f 查詢的是已安裝的某文件信息;
舉例如下:

rpm -qa | grep tomcat4 查看 tomcat4 是否被安裝;
rpm -qip example.rpm 查看 example.rpm 安裝包的信息;
rpm -qif /bin/df 查看/bin/df 文件所在安裝包的信息;
rpm -qlf /bin/df 查看/bin/df 文件所在安裝包中的各個文件分別被安裝到哪個目錄下;

RPM 卸載操作
命令:

rpm -e 需要卸載的安裝包

在卸載之前,通常需要使用rpm -q …命令查出需要卸載的安裝包名稱。
舉例如下:

rpm -e tomcat4 卸載 tomcat4 軟件包

RPM 升級操作
命令:

rpm -U 需要升級的包

舉例如下:

rpm -Uvh example.rpm 升級 example.rpm 軟件包

RPM 驗證操作
命令:

rpm -V 需要驗證的包

舉例如下:

rpm -Vf /etc/tomcat4/tomcat4.conf

輸出信息類似如下:

S.5….T c /etc/tomcat4/tomcat4.conf

其中,S表示文件大小修改過,T表示文件日期修改過。限於篇幅,更多的驗證信息請參考rpm幫助文件:man rpm
RPM 的其他附加命令
–force 強制操作 如強制安裝刪除等;
–requires 顯示該包的依賴關係;
–nodeps 忽略依賴關係並繼續操作

強制退出當前執行的命令

Ctrl+C,可以退出所有正在執行的操作

防火牆默認開啓會導致無法被訪問,CentOS7關閉防火牆:

systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall開機啓動

防火牆開放端口:

配置規則

iptables -I INPUT -p tcp --dport 8080 -j ACCEPT

保存規則

/usr/sbin/iptables-save

安裝Anaconda之後,打開Anaconda Navigator:

anaconda-navigator

安裝配置好jupyter notebook之後,打開jupyter notebook:

jupyter notebook --ip=0.0.0.0 --no-browser --allow-root

打開MySQL服務:

service mysqld start

查看PHP版本信息:

php -i |head -n 100

root用戶打不開chromium瀏覽器,需要在chromium的快捷方式命令中如下填寫,其中/root/my_chromium使用位置需要手動創建:

chromium-browser --no-sandbox --user-data-dir=/root/my_chromium

查看端口占用:

netstat -tunlp

運行Java網站時,提示端口被佔用,多半是JVM沒有正常關閉所以導致再次啓動Tomcat的時候端口打不開,此時運行一下兩條指令:

ps -ef|grep java|grep -v grep(查看java進程,記下JVM的進程號)

kill -9 JVM的進程號(殺死佔用端口的JVM進程)

桌面卡死,殺死桌面進程,她自己會重新拉起:

killall -9 gnome-shell

查看當前位置

pwd

Shell判斷指令

[ -a FILE ] 如果 FILE 存在則爲真。 
[ -b FILE ] 如果 FILE 存在且是一個塊特殊文件則爲真。
[ -c FILE ] 如果 FILE 存在且是一個字特殊文件則爲真。 
[ -d FILE ] 如果 FILE 存在且是一個目錄則爲真。 
[ -e FILE ] 如果 FILE 存在則爲真。
[ -f FILE ] 如果 FILE 存在且是一個普通文件則爲真。 
[ -g FILE ] 如果 FILE 存在且已經設置了SGID則爲真。 
[ -h FILE ] 如果 FILE 存在且是一個符號連接則爲真。 
[ -k FILE ] 如果 FILE 存在且已經設置了粘制位則爲真。 
[ -p FILE ] 如果 FILE 存在且是一個名字管道(F如果O)則爲真。 
[ -r FILE ] 如果 FILE 存在且是可讀的則爲真。 
[ -s FILE ] 如果 FILE 存在且大小不爲0則爲真。  
[ -t FD ] 如果文件描述符 FD 打開且指向一個終端則爲真。 
[ -u FILE ] 如果 FILE 存在且設置了SUID (set user ID)則爲真。 
[ -w FILE ] 如果 FILE 如果 FILE 存在且是可寫的則爲真。 
[ -x FILE ] 如果 FILE 存在且是可執行的則爲真。 
[ -O FILE ] 如果 FILE 存在且屬有效用戶ID則爲真。 
[ -G FILE ] 如果 FILE 存在且屬有效用戶組則爲真。 
[ -L FILE ] 如果 FILE 存在且是一個符號連接則爲真。  
[ -N FILE ] 如果 FILE 存在 and has been mod如果ied since it was last read則爲真。
[ -S FILE ] 如果 FILE 存在且是一個套接字則爲真。  
[ FILE1 -nt FILE2 ] 如果 FILE1 has been changed more recently than FILE2,or 如果 FILE1 exists and FILE2 does not則爲真。  
[ FILE1 -ot FILE2 ] 如果 FILE1 比 FILE2 要老, 或者 FILE2 存在且 FILE1 不存在則爲真。  
[ FILE1 -ef FILE2 ] 如果 FILE1 和 FILE2 指向相同的設備和節點號則爲真。 
[ -o OPTIONNAME ] 如果 shell選項 “OPTIONNAME” 開啓則爲真。 
[ -z STRING ] “STRING” 的長度爲零則爲真。  
[ -n STRING ] or [ STRING ] “STRING” 的長度爲非零 non-zero則爲真。 

[ ARG1 OP ARG2 ] “OP” is one of -eq, -ne, -lt, -le, -gt or -ge. These arithmetic binary operators return true if “ARG1” is equal to, not equal to, less than, less than or equal to, greater than, or greater than or equal to “ARG2”, respectively. “ARG1” and “ARG2” are integers. 


數字判斷 
[ $count -gt "1"] 如果$count 大於1 爲真
-gt  大於
-lt    小於
-ne  不等於
-eq  等於
-ge  大於等於
-le  小於等於

[ STRING1 == STRING2 ] 如果2個字符串相同。 “=” may be used instead of “==” for strict POSIX compliance則爲真。  
[ STRING1 != STRING2 ] 如果字符串不相等則爲真。  
[ STRING1 < STRING2 ] 如果 “STRING1” sorts before “STRING2” lexicographically in the current locale則爲真。  
[ STRING1 > STRING2 ] 如果 “STRING1” sorts after “STRING2” lexicographically in the current locale則爲真。  

Shell常見報錯

語法錯誤: 未預期的文件結尾

運行一個腳本時報錯:./begin_one_day.sh:行31: 語法錯誤: 未預期的文件結尾,但是我的腳本文件明明沒有31行,這是因爲shell腳本語法檢查不準確導致的,真正的錯誤不在第31行,遇到這種錯誤應該仔細檢查shell腳本的全部內容,不要一臉懵逼。 

$’\r’: 未找到命令

原因

  是因爲命令直接從windows 複製過來導致的
解決

  yum install dos2unix

  dos2unix **.sh 進行轉換

  再次執行即可

親,如果您感覺本文有用,請點個贊再走吧!!(>‿◠)✌

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章