Apakah yang dimaksudkan dengan arahan linux sh?

藏色散人
Lepaskan: 2023-04-12 11:15:24
asal
11390 orang telah melayarinya

Arahan linux sh ialah perintah untuk menjalankan shell dalam Linux Ia adalah penterjemah shell Skrip shell dan antara muka baris perintah dalam Linux melaksanakan pelbagai tugas.

Apakah yang dimaksudkan dengan arahan linux sh?

Persekitaran pengendalian tutorial ini: sistem linux5.9.8 , komputer Dell G3.

Apakah yang dimaksudkan dengan arahan linux sh?

Pengenalan ringkas kepada arahan linux sh

1. Kaedah pelaksanaan yang mungkin

Cara melaksanakan fail .sh di bawah linux

.sh fail ialah fail teks, jika Untuk melaksanakan , anda perlu menggunakan chmod a+x xxx.sh untuk memberikan kebenaran boleh laku.

2. Permulaan: #!/bin/sh

Program shell mesti bermula dengan "#!/bin/sh". # dalam shell secara amnya bermaksud ulasan, begitu ramai orang berpendapat bahawa "# juga merupakan ulasan, tetapi sebenarnya tidak!"

"#!/bin/sh" ialah pengisytiharan shell, yang menunjukkan jenis shell yang anda gunakan dan laluannya.

#!/bin/ bermaksud skrip ini menggunakan .bin/sh untuk melaksanakan.

#! ialah pengecam khas, diikuti dengan laluan shell yang mentafsir skrip ini Jika tidak diisytiharkan, skrip akan dilaksanakan dalam shell lalai, yang ditakrifkan oleh sistem tempat pengguna berada. . Untuk melaksanakan skrip shell, jika skrip ditulis untuk dijalankan dalam Kornshell ksh, dan skrip shell lalai yang dijalankan ialah C shell csh, skrip itu mungkin gagal semasa pelaksanaan. Oleh itu, adalah disyorkan agar semua orang menganggap "#!/bin/sh" sebagai fungsi utama bahasa C Ia perlu menulis shell untuk menjadikan program shell lebih ketat.

3. Pembolehubah

Pembolehubah mesti digunakan dalam bahasa pengaturcaraan lain. Dalam pengaturcaraan shell, semua pembolehubah terdiri daripada rentetan, dan tidak perlu mengisytiharkan pembolehubah . Untuk memberikan nilai kepada pembolehubah, anda boleh menulis:

#!/bin/sh
 #对变量赋值:
 a=”hello world”# 现在打印变量a的内容:
 echo “A is:” echo $a
Salin selepas log masuk
Kadangkala nama pembolehubah mudah dikelirukan dengan teks lain, seperti:

 num=2
 echo “this is the $numnd”
Salin selepas log masuk
Ini tidak akan mencetak "ini ialah yang ke-2", tetapi hanya mencetak "ini ialah ", kerana shell akan mencari nilai pembolehubah numnd, tetapi pembolehubah ini tidak mempunyai nilai. Oleh itu, anda boleh menggunakan pendakap kerinting untuk memberitahu cangkerang bahawa apa yang kita mahu cetak ialah pembolehubah nombor:

 num=2
 echo “this is the ${num}nd”
Salin selepas log masuk
Dengan cara ini, "ini adalah yang ke-2" akan dicetak

4. Perintah Shell dan Kawalan Aliran

Arahan berikut boleh digunakan dalam skrip shell:

Arahan Unix

Walaupun mana-mana unix boleh digunakan dalam arahan skrip shell, tetapi masih terdapat beberapa arahan yang lebih biasa digunakan. Arahan ini biasanya digunakan untuk operasi fail dan teks.

Seperti:

 echo "some text" #将文字内容打印在屏幕上
 ls #文件列表
 cp sourcefile destfile #文件拷贝
 mv oldname newname #重命名文件或移动文件
 rm file #删除文件
 grep 'pattern' file #在文件内搜索字符串,如:grep 'searchstring' file.txt
 cat file.txt #输出文件内容到标准输出设备(屏幕)上
 read var #显示用户输入,并将输入赋值给变量
Salin selepas log masuk

Konsep: paip, ubah hala dan tanda ke belakang (slash belakang)

    Pipeline
  1. Menukar arahan Output ialah digunakan sebagai input kepada arahan lain. |
grep "hello" file.txt | wc -l
Salin selepas log masuk
Kod di atas dinyatakan sebagai: cari baris yang mengandungi "hello" dalam file.txt dan kira bilangan baris. Di sini output arahan grep digunakan sebagai input arahan wc.

Perlu diingatkan bahawa arahan selepas paip adalah subperintah dan tidak akan muncul dalam arahan seterusnya (sedikit seperti perbezaan antara tugasan C++ di dalam

dan di luar {}), seperti Perintah berikut : {}

#!/bin/shecho 1 2 3 | { read a b c ; echo $a $b $c ; } # 打印结果为: 1 2 3echo $a $b $c # 打印结果为空
Salin selepas log masuk
  1. : Output hasil arahan ke fail dan bukannya output standard (skrin). 重定向 >Tulis fail dan
    tulis ganti fail lama >>
    Tambahkan pada penghujung fail, mengekalkan kandungan fail lama.

  2. Sempang songsang

    “`”: Gunakan sempang songsang untuk menukar output satu perintah sebagai perintah lain Parameter baris arahan .

 find . -mtime  -1  -type  f  -print
Salin selepas log masuk
Pernyataan di atas digunakan untuk mencari fail yang telah diubah suai dalam tempoh 24 jam yang lalu (-mtime -2 bermaksud 48 jam yang lalu). Jika anda ingin membungkus semua fail yang ditemui, anda boleh menggunakan skrip linux:

 #!/bin/sh
 # The ticks are backticks (`) not normal quotes (‘):
 tar -zcvf  lastmod.tar.gz `find . -mtime -1 -type f -print`
Salin selepas log masuk

Kawalan Proses

jika
ungkapan, dilaksanakan jika keadaan adalah benar if Bahagian berikut: then

 if ….; then
 …. elif ….; then
 …. else
 …. fi #注意是以fi结尾
Salin selepas log masuk
Dalam kebanyakan kes, anda boleh menggunakan arahan ujian untuk menguji keadaan. Contohnya, anda boleh

membandingkan rentetan, menentukan sama ada fail itu wujud dan sama ada ia boleh dibaca, dsb. ...

sementara
struktur sintaks gelung ialah: while

# expression 1# while循环:当expresssion成立的时候,执行cmdwhile (expresssion)do
  cmddone# expression 2,可以直接使用truewhile true(或 :)do 
	cmddone
Salin selepas log masuk
Arahan ini boleh digunakan dengan saluran paip, seperti:

# 寻找 ${path} 路径下唯一首字母为‘E’的子目录,并 cd 到该目录find ${path}/E* -type d | while read corresp_pathdo
	cd ${corresp_path}done
Salin selepas log masuk

Syarat ujian Biasanya gunakan
"[ ]" untuk mewakili keadaan ujian. Ambil perhatian bahawa ruang di sini adalah sangat penting, pastikan terdapat ruang dalam kurungan segi empat sama.

 [ -f "somefile" ] #判断文件是否存在
 [ -d "testResults/" ] #判断目录testResults/是否存在
 [ -x "/bin/ls" ] #判断/bin/ls文件是否存在并有可执行权限
 [ -n "$var" ] #判断$var变量是否有值
 [ "$a" = "$b" ] #判断$a和$b是否相等
Salin selepas log masuk

Pengendali pintasan Jika anda biasa dengan bahasa C, anda mungkin menyukai ungkapan:

  [ -f "/etc/shadow" ] && echo “This computer uses shadow passwors”
Salin selepas log masuk
Di sini

“&&” Ia ialah pengendali pintasan yang melaksanakan pernyataan di sebelah kanan jika ungkapan di sebelah kiri adalah benar. Sudah tentu, ungkapan di atas juga boleh dianggap sebagai operasi DAN dalam operasi logik.

Operasi ATAU yang sama

"||" juga tersedia dalam pengaturcaraan shell:

 #!/bin/sh
 mailfolder=/var/spool/mail/james [ -r "$mailfolder" ]‘ ‘{ echo “Can not read $mailfolder” ; exit 1; } #感觉这里的‘’应该是||
 echo “$mailfolder has mail from:” grep “^From ” $mailfolder
Salin selepas log masuk

该脚本首先判断mailfolder是否可读。如果可读则打印该文件中的”From” 一行。如果不可读则或操作生效,打印错误信息后脚本退出。这里有个问题,那就是我们必须有两个命令:
◆打印错误信息
◆退出程序
我们使用花括号以匿名函数的形式将两个命令放到一起作为一个命令使用。一般函数将在下文提及。
不用‘与’和‘或’操作符,我们也可以用if表达式作任何事情,但是使用与或操作符会更便利很多。

推荐学习:《linux视频教程

Atas ialah kandungan terperinci Apakah yang dimaksudkan dengan arahan linux sh?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!