導航:首頁 > 程序命令 > 怎麼用Shell命令

怎麼用Shell命令

發布時間:2022-12-31 05:21:20

㈠ Shell常用命令

1.ls: 以默認方式顯示當前文件列表。
2.ls -a: 顯示所有文件包括隱藏文件。
3.ls -l: 顯示文件屬性包括大小、日期等,還有是否可讀可寫。
4.ls -lt: 按照修改時間排序顯示文件

1.cd dir: 切換到當前目錄下的dir文件。
2.cd /: 切換到跟目錄。
3.cd ..:切換到上級目錄。
4.cd ../..: 切換到上二級目錄。

1.cp source target:將文件source復制為target。
2.cp /root/source/ .: 將root下的文件source復制到當前目錄。

1.rm file: 刪除某一個文件。
2.rm -f file:刪除時不進行提示,可以配合r使用。
3.rm -rf dir:刪除當前目錄下叫dir的整個目錄。

1.mv file1 file2: 將文件file1改名為file2。
2.mv file dir: 將文件file移動到dir目錄下。

1.diff file1 file2:比較兩個文件。
2.diff dir1 dir2: 比較兩個目錄。

1.cat file: 查看文件file。

1.vi file:編輯文件file。
2.vi 原基本使用及命令:輸入命令的方式為先按[ESC]鍵,然後輸入 :w(寫入文件),:w!(不詢問方式寫入文件),:wq保存並退出,:q退出,q!不保存退出

1.mkdir dir:創建一個空目錄dir。
2.mkdir -p dir/dir2:遞歸創建兩個目錄。

1.tar xvf flie.tar: 解包。
2.tar cvf file.tar: 打包。
3.tar zxvf file.tar.gz: 解壓
4.tar zcvf file.tar.gz Dirname:壓縮
5.unzip file.zip: 解壓。
6.zip file.zip dirname: 壓縮。
7.rar x file.rar: 解壓。
8.rar a file.rar DirName: 壓縮。

1.gizp -d file.gz: 解壓。
2.gzip file.tar.gz和.tgz: 壓縮。

1.netstat [-acCeFghilMnNoprstuvVwx][-A<網路類型>][--ip]

1.ssh -l iser1 192.168.1.2 : 使用用戶名用戶名user1登陸到192.168.1.2

1.touch file.txt:創建一個txt文件。

㈡ 如何運行shell腳本

編寫好的shell腳本(如:test),可以採取兩種方式進行運行: 一、 $ sh test 一般不採用這種調用方式,尤其不採用「sh<test」的調用方式,因為這種方式將禁止shell讀取標准輸入。 也可以採用 $ ksh test 這種方式要求shell具有「可讀」的訪問許可權。 二、直接運行可執行的shell腳本之前,首先應使用下列chmod命令,把shell腳本文件設置為可執行的文件。 chmod 755 test(除文件屬主可寫之外,每個用戶均具有讀和可執行的訪問許可權) chmod +rx test(同上) chmod u+rx test(只有文件屬主具有讀和執行的訪問許可權) 按照上述要求設置shell腳本文件的訪問許可權後,可採用下列方式,直接運行shell腳本了。 1、test(如果命令檢索路徑包含當前目錄) 2、./test(如果命令減縮路徑不包含當前目錄) *說明: sh test 方式調用一個shell叫蹦可能會禁止某些shell特定的擴展功能,因而可能引起腳本無法正確執行。

㈢ 在mysql下怎樣進入shell 命令行

1、首先打開軟體清單面板中選擇相應主機,在右邊的選項卡里單擊配置選項卡。

㈣ shell中使用命令&&\||\{}

shell中&&和||的使用方法

&&運算符:

command1  && command2

&&左邊的命令(命令1)返回真(即返回0,成功被執行)後,&&右邊的命令(命令2)才能夠被執行;換句話說,「如果這個命令執行成功&&那麼執行這個命令」。

語法格式如下:

command1 && command2 [&& command3 ...]

1 命令之間使用 && 連接,實現邏輯與的功能。

2 只有在 && 左邊的命令返回真(命令返回值 $? == 0),&& 右邊的命令才會被執行。

3 只要有一個命令返回假(命令返回值 $? == 1),後面的命令就不會被執行。

示例 1

malihou@ubuntu:~$ cp ~/Desktop/1.txt ~/1.txt && rm ~/Desktop/1.txt && echo "success"

示例 1 中的命令首先從 ~/Desktop 目錄復制 1.txt 文件到 ~ 目錄;執行成功後,使用 rm 刪除源文件;如果刪除成功則輸出提示信息。

||運算符:

command1 || command2

||則與&&相反。如果||左邊的命令(命令1)未執行成功,那麼就執行||右邊的命令(命令2);或者換句話說,「如果這個命令執行失敗了||那麼就執行這個命令。

1 命令之間使用 || 連接,實現邏輯或的功能。

2 只有在 || 左邊的命令返回假(命令返回值 $? == 1),|| 右邊的命令才會被執行。這和 c 語言中的邏輯或語法功能相同,即實現短路邏輯或操作。

3 只要有一個命令返回真(命令返回值 $? == 0),後面的命令就不會被執行。

示例 2

malihou@ubuntu:~$ rm ~/Desktop/1.txt || echo "fail"

在示例 2 中,如果 ~/Desktop 目錄下不存在文件 1.txt,將輸出提示信息。

示例 3

malihou@ubuntu:~$ rm ~/Desktop/1.txt && echo "success" || echo "fail"

在示例 3 中,如果 ~/Desktop 目錄下存在文件 1.txt,將輸出 success 提示信息;否則輸出 fail 提示信息。

如果希望把幾個命令合在一起執行, s h e l l提供了兩種方法。既可以在當前s h e l l也可以在子s h e l l中執行一組命令。

()運算符:

為了在當前shell中執行一組命令,可以用命令分隔符(即",")隔開每一個命令,並把所有的命令用圓括弧()括起來。

它的一般形式為:

( 命令;命令;命令… )

1 一條命令需要獨佔一個物理行,如果需要將多條命令放在同一行,命令之間使用命令分隔符(;)分隔。執行的效果等同於多個獨立的命令單獨執行的效果。

2 () 表示在當前 shell 中將多個命令作為一個整體執行。需要注意的是,使用 () 括起來的命令在執行前面都不會切換當前工作目錄,也就是說命令組合都是在當前工作目錄下被執行的,盡管命令中有切換目錄的命令。

3 命令組合常和命令執行控制結合起來使用。

示例 4

malihou@ubuntu:~$ rm ~/Desktop/1.txt || (cd ~/Desktop/;ls -a;echo "fail")

在示例 4 中,如果目錄 ~/Desktop 下不存在文件 1.txt,則執行命令組合。

{}運算符:

如果使用{}來代替(),那麼相應的命令將在子shell而不是當前shell中作為一個整體被執行,只有在{}中所有命令的輸出作為一個整體被重定向時,其中的命令才被放到子shell中執行,否則在當前shell執行。

它的一般形式為:

{ 命令;命令;命令… }

(注意:在使用{}時,{}與命令之間必須使用一個空格)

測試:

~$ A=1;echo $A;{ A=2; };echo $A

1

2

~$ A=1;echo $A;( A=2; );echo $A

1

㈤ 如何用SHELL命令運行一個文件

1、Shell是命令解釋器,所執行的文件有兩種,一種是基於ELF文件格式的可執行文件,一種是基於Shell腳本格式的腳本文件。

2、不管是可執行文件還是shell腳本,如果存在於PATH變數所指明的路徑中,shell會自動尋找相應的可執行文件,用戶只需要輸入可執行文件名或者腳本名即可執行。

3、如果可執行文件或者Shell腳本的存放位置不在PATH變數所指明的路徑中,則需要通過".」來執行,比如下面的C語言寫的hello world程序,需要輸入./t才可以被shell運行。

㈥ Shell基本腳本命令使用教程

1、本地變數:用戶私有變數,只有本用戶可以訪問,保存在家目錄的 .bash_profile、.bashrc文件中
2、全局變數:所有用戶都可以使用,保存在 /etc/profile 文件中
3、用戶自定義變數:用戶自定義,比如腳本中的變數
定義變數格式: 變數名=值 (=兩邊不能有空格)
字元串用單引號或者雙引號引起來

shell支持正則表達式的常見命令:grep、sed、awk。

sed 是一個行(流)編輯器,非互動式的對文件內容進行增刪改查操作

awk 能夠集過濾、提取、運算為一體,它的工作方式是讀取數據,將每一行數據視為一條記錄,每條記錄以欄位分隔符分成若干欄位,然後輸出各個欄位的值。平行命令還有 gawk、pgawk、dgawk。

linux shell常用命令

Linux shell常用命令匯總

對於經常使用linux系統的博主來說,基本常用的shell命令是少不了的,下面為大家總結了Linux shell的常用命令,希望對大家有所幫助!

1.檢查遠程埠是否對bash開放:

echo >/dev/tcp/8.8.8.8/53 && echo "open"

2.讓進程轉入後台:

Ctrl + z

3、將進程轉到前台:

fg

4.產生隨機的十六進制數,其中n是字元數:

openssl rand -hex n

5.在當前shell里執行一個文件里的命令:

source /home/user/file.name

6.截取前5個字元:

${variable:0:5}

7.SSH debug 模式:

ssh -vvv user@ip_address

8.SSH with pem key:

ssh user@ip_address -i key.pem

9.用wget抓取完整的網站目錄結構,存放到本地目錄中:

wget -r --no-parent --reject "index.html*" http://hostname/ -P /home/user/dirs

10.一次創建多個目錄:

mkdir -p /home/user/{test,test1,test2}

11.列出包括子進程的進程樹:

ps axwef

12.創建 war 文件:

jar -cvf name.war file

13.測試硬碟寫入速度:

dd if=/dev/zero of=/tmp/output.img bs=8k count=256k; rm -rf /tmp/output.img

14.測試硬碟讀取速度:

hdparm -Tt /dev/sda

15.獲取文本的md5 hash:

echo -n "text" | md5sum

16.檢查xml格式:

xmllint --noout file.xml

17.將tar.gz提取到新目錄里:

tar zxvf package.tar.gz -C new_dir

18.使用curl獲取HTTP頭信息:

curl -I http://www.example.com

19.修改文件或目錄的時間戳(YYMMDDhhmm):

touch -t 0712250000 file

20.用wget命令執行ftp下載:

wget -m ftp://username:password@hostname

21.生成隨機密碼(例子里是16個字元長):

LANG=c < /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-16};echo;

22.快速備份一個文件:

cp some_file_name{,.bkp}

23.訪問Windows共享目錄:

smbclient -U "DOMAIN\user" //dc.domain.com/share/test/dir

24.執行歷史記錄里的命令(這里是第100行):

!100

25.解壓:

unzip package_name.zip -d dir_name

26.輸入多行文字(CTRL + d 退出):

cat > test.txt

27.創建空文件或清空一個現有文件:

\> test.txt

28.與Ubuntu NTP server同步時間:

ntpdate ntp.ubuntu.com

29.用netstat顯示所有tcp4監聽埠:

netstat -lnt4 | awk '{print $4}' | cut -f2 -d: | grep -o '[0-9]*'

30.qcow2鏡像文件轉換:

qemu-img convert -f qcow2 -O raw precise-server-cloudimg-amd64-disk1.img \precise-server-cloudimg-amd64-disk1.raw

31.重復運行文件,顯示其輸出(預設是2秒一次):

watch ps -ef

32.所有用戶列表:

getent passwd

33.Mount root in read/write mode:

mount -o remount,rw /

34.掛載一個目錄(這是不能使用鏈接的情況):

mount --bind /source /destination

35.動態更新DNS server:

nsupdate < <eof p=""> </eof>

update add $HOST 86400 A $IP

send

EOF

36.遞歸grep所有目錄:

grep -r "some_text" /path/to/dir

37.列出前10個最大的文件:

lsof / | awk '{ if($7 > 1048576) print $7/1048576 "MB "$9 }' | sort -n -u | tail

39.打開Vim並跳到文件末:

vim + some_file_name

40.Git 克隆指定分支(master):

git clone [email protected]:name/app.git -b master

41.Git 切換到其它分支(develop):

git checkout develop

42.Git 刪除分支(myfeature):

git branch -d myfeature

43.Git 刪除遠程分支

git push origin :branchName

44.Git 將新分支推送到遠程伺服器:

git push -u origin mynewfeature

45.列印歷史記錄中最後一次cat命令:

!cat:p

46.運行歷史記錄里最後一次cat命令:

!cat

47.找出/home/user下所有空子目錄:

echo >/dev/tcp/8.8.8.8/53 && echo "open"

1.檢查遠程埠是否對bash開放:

find /home/user -maxdepth 1 -type d -empty

48.獲取test.txt文件中第50-60行內容:

< test.txt sed -n '50,60p'

49.運行最後一個命令(如果最後一個命令是mkdir /root/test, 下面將會運行: sudo mkdir /root/test):

sudo !!

50.創建臨時RAM文件系統 – ramdisk (先創建/tmpram目錄):

mount -t tmpfs tmpfs /tmpram -o size=512m

51.Grep whole words:

grep -w "name" test.txt

52.在需要提升許可權的.情況下往一個文件里追加文本:

echo "some text" | sudo tee -a /path/file

53.列出所有kill signal參數:

kill -l

54.在bash歷史記錄里禁止記錄最後一次會話:

kill -9 $$

55.掃描網路尋找開放的埠:

nmap -p 8081 172.20.0.0/16

56.設置git email:

git config --global user.email "[email protected]"

57.To sync with master if you have unpublished commits:

git pull --rebase origin master

58.將所有文件名中含有”txt”的文件移入/home/user目錄:

find -iname "*txt*" -exec mv -v {} /home/user \;

59.將文件按行並列顯示:

paste test.txt test1.txt

60.shell里的進度條:

pv data.log

61.使用netcat將數據發送到Graphite server:

echo "hosts.sampleHost 10 `date +%s`" | nc 192.168.200.2 3000

62.將tabs轉換成空格:

expand test.txt > test1.txt

63.Skip bash history:

< space >cmd

64.去之前的工作目錄:

cd -

65.拆分大體積的tar.gz文件(每個100MB),然後合並回去:

split –b 100m /path/to/large/archive /path/to/output/files

cat files* > archive

66.使用curl獲取HTTP status code:

curl -sL -w "%{http_code}\\n" www.example.com -o /dev/null

67.設置root密碼,強化MySQL安全安裝:

/usr/bin/mysql_secure_installation

68.當Ctrl + c不好使時:

Ctrl + \

69.獲取文件owner:

stat -c %U file.txt

70.block設備列表:

lsblk -f

71.找出文件名結尾有空格的文件:

find . -type f -exec egrep -l " +$" {} \;

72.找出文件名有tab縮進符的文件

find . -type f -exec egrep -l $'\t' {} \;

73.用”=”列印出橫線:全選復制放進筆記

printf '%100s\n' | tr ' ' = ;

㈧ VB中的shell函數是干什麼的怎麼用啊

Shell函數是VB中的內部函數,它負責執行一個可執行文件,返回一個Variant(Double),如果成功的話,代表這個程序的進程ID,若不成功,則會返回0,shell一個非常重要的特性是它可作為一種編程語言來使用。

Shell的語法:Shell(PathName[,WindowStyle])。

PathName 為必需參數,類型為String,它指出了要執行的程序名,以及任何需要的參數或命令行變數。

(8)怎麼用Shell命令擴展閱讀:

因為shell是一個解釋器,所以它不能對為它編寫的程序進行編譯,而是在每次從磁碟載入這些程序時對它們進行解釋,而程序的載入和解釋都是非常耗時的。

針對此問題,許多shell(如BourneAgainShell)都包含shell函數,shell把這些函數放在內存中,這樣每次需要執行它們時就不必再從磁碟讀入。

㈨ 如何在C語言中調用shell命令

C語言中調用shell指令,根據調用指令目的,可以區分如下兩種情況:

一、需要shell指令執行某一功能,如創建文件夾,或者刪除文件夾等,程序中不關注shell指令的輸出,那麼可以使用system函數。

system函數聲明於stdlib.h, 功能為調用系統命令,形式為

int system(const char *cmd);

其中cmd為要執行的命令字元串,返回值為執行是否成功的標記。

比如在Linux下要刪除當前文件夾下的所有擴展名為a的文件,即*.a, 可以寫作

system("rm*.a-f");

二、不僅要執行shell命令,還需要得知運行的列印結果,並在程序中使用。

對於此,有兩種方案:

1、用system命令,將輸出重定向到一個txt文件中,執行後,再讀取txt文件,使用後刪除。

比如Linux下獲取剩餘內存的指令可以寫作:

system("free>result.txt");//結果重定向到result.txt中。
FILE*fp=fopen("result.txt","r");//打開文件。
intr;
while(fgetc(fp)!=' ');//忽略第一行。
fscanf(fp,"%*s%*d%*d%d",&r);//讀取第四個域的值,即剩餘內存值。
printf("剩餘內存為%dKB ",r);//列印結果。
fclose(fp);//關閉文件。
unlink("result.txt");//刪除臨時文件。

2、使用重定向,需要經過磁碟讀寫,還要刪除文件,相對低效。同時還有可能出現臨時文件和已有文件重名,導致誤刪數據的情況。 所以一般使用更方便快捷的方式,即調用popen。

FILE *popen(const char *cmd, const char *mode);

使用popen的功能和system類似,屬於方法1中執行命令和打開文件的一個組合。不過這里用到的文件是隱式的,並不會在系統中真正存在。返回的指針即結果文件指針。 當使用pclose關閉後,文件自動銷毀。

方法1中的例子,用popen實現如下:

FILE*fp=popen("free","r");//執行命令,同時創建管道文件。
intr;
while(fgetc(fp)!=' ');//忽略第一行。
fscanf(fp,"%*s%*d%*d%d",&r);//讀取第四個域的值,即剩餘內存值。
printf("剩餘內存為%dKB ",r);//列印結果。
pclose(fp);//關閉並銷毀管道文件。

三、注意事項:

雖然調用shell命令有時可以大大減少代碼量,甚至有千行代碼不如一句shell的說法,不過調用shell命令還是有局限性的:

1、使用shell命令會調用系統資源,效率偏低;

2、不同平台的shell指令不同,導致可移植性下降;

3、調用shell命令時會復制當前進程(fork),如果當前進程的資源佔有比較大,會導致瞬間資源佔用極大,甚至可能出現失敗。

所以,在編碼時,除非是測試性的代碼,否則在正式代碼中不建議使用shell。

閱讀全文

與怎麼用Shell命令相關的資料

熱點內容
dvd光碟存儲漢子演算法 瀏覽:757
蘋果郵件無法連接伺服器地址 瀏覽:963
phpffmpeg轉碼 瀏覽:671
長沙好玩的解壓項目 瀏覽:145
專屬學情分析報告是什麼app 瀏覽:564
php工程部署 瀏覽:833
android全屏透明 瀏覽:737
阿里雲伺服器已開通怎麼辦 瀏覽:803
光遇為什麼登錄時伺服器已滿 瀏覽:302
PDF分析 瀏覽:485
h3c光纖全工半全工設置命令 瀏覽:143
公司法pdf下載 瀏覽:382
linuxmarkdown 瀏覽:350
華為手機怎麼多選文件夾 瀏覽:683
如何取消命令方塊指令 瀏覽:349
風翼app為什麼進不去了 瀏覽:778
im4java壓縮圖片 瀏覽:362
數據查詢網站源碼 瀏覽:150
伊克塞爾文檔怎麼進行加密 瀏覽:892
app轉賬是什麼 瀏覽:163