10 petua untuk tanda seru (!) dalam Linux
'!'
Simbol atau operator dalam Linux boleh digunakan sebagai penolakan logikoperator, atau dengan menukar arahan yang diperoleh daripada sejarah, atau dengan mengubah suai arahan yang dilaksanakan sebelum ini. Semua arahan berikut telah disahkan secara eksplisit dalam shell bash. Kebanyakan ini tidak akan berfungsi dalam cangkerang lain, walaupun saya belum mengesahkannya.
- Jalankan arahan dalam sejarah mengikut nombor arahan.
“
Anda mungkin tidak menyedari hakikat bahawa anda boleh menjalankan arahan daripada sejarahperintah (perintah yang telah / telah dilaksanakan lebih awal). Untuk bermula, mula-mula cari nombor arahan dengan menjalankan arahan "history".
”
$ history
“
Sekarang, dalam output history, hanya arahan daripada history dijalankan mengikut nombor di mana ia muncul. Katakan anda menjalankan nombor arahan 1551 yang muncul dalam output arahan 'history'.
”
$ !1551
“
Dan, ia menjalankan arahan yang disenaraikan dalam nombor 1551. Kaedah mendapatkan semula arahan yang dilaksanakan ini sangat berguna, terutamanya dalam kes arahan yang sangat panjang itu. Anda hanya perlu menggunakan **!** untuk memanggilnya.
”
- Jalankan arahan yang dilaksanakan sebelum ini sebagai perintah kedua hingga terakhir, perintah ke-7 hingga terakhir, dsb.
"
Anda boleh menjalankan arahan yang telah anda jalankan sebelum ini, dan ia akan dijalankan mengikut tertib supaya perintah terakhir untuk dijalankan akan diwakili sebagai **-1, yang kedua untuk terakhir sebagai -2, dan yang ketujuh untuk terakhir sebagai -7** ,…….
”
“
首先运行history命令以获取上次执行命令的列表。有必要运行history命令,这样您就可以确保没有类似的命令
rm command > file
和其他命令,只是为了确保您不会意外运行任何危险的命令。然后检查第六个最后一个命令,八个最后一个命令和第十个最后一个命令。”
$ history $ !-6 $ !-8 $ !-10
“
按数字运行上次执行的命令
”
- 将我们运行的最后一个命令的参数传递给新命令,无需重新输入
“
我需要列出目录 “**/home/$USER/Binary/firefox**” 的内容。
”
$ ls /home/$USER/Binary/firefox
“
然后我意识到我应该触发 “ls -l” 以查看哪个文件在那里可执行?所以我应该再次输入整个命令!不,我不需要。我只需要将这个新命令的最后一个参数作为:
”
$ ls -l !$
“
这里
!$
将携带在最后一个命令中传递给这个新命令的参数。”
“
将上次执行命令的参数传递给新命令
”
- 如何使用 (!) 处理两个或多个参数
“
假设我在桌面上创建了一个文本文件1.txt。
”
$ touch /home/avi/Desktop/1.txt
“
然后使用cp命令在任一侧使用完整路径将其复制到 “**/home/avi/Downloads**”。
”
$ cp /home/avi/Desktop/1.txt /home/avi/downloads
“
现在我们已经使用cp命令传递了两个参数。第一个是 “**/home/avi/Desktop/1.txt”,第二个是 “/home/avi/Downloads**”,让我们以不同的方式处理它们,只需执行
echo [arguments]
以不同方式打印两个参数。”
$ echo "1st Argument is : !^" $ echo "2nd Argument is : !cp:2"
“
注意第一个参数可以打印为
“!^”
,其余参数可以通过执行“![Name_of_Command]:[Number_of_argument]”
.”
“
在上面的例子中,第一个命令是 “cp”,第二个参数需要打印。因此
“!cp:2”
,如果任何命令说xyz使用 5 个参数运行并且您需要获得第 4 个参数,您可以使用“!xyz:4”
,并根据需要使用它。所有参数都可以通过 访问“!*”
。”
“
处理两个或更多参数
”
- 根据关键字执行最后一条命令我们可以根据关键字执行上次执行的命令。我们可以这样理解:
$ ls /home > /dev/null [Command 1] $ ls -l /home/avi/Desktop > /dev/null [Command 2] $ ls -la /home/avi/Downloads > /dev/null [Command 3] $ ls -lA /usr/bin > /dev/null [Command 4]
“
在这里,我们使用了相同的命令**(ls),但使用了不同的开关和不同的文件夹。此外,我们已将每个命令的输出发送到 “/dev/null**”,因为我们不会处理命令的输出,控制台也保持干净。
”
“
现在根据关键字执行上次运行命令。
”
$ ! ls [Command 1] $ ! ls -l [Command 2] $ ! ls -la [Command 3] $ ! ls -lA [Command 4]
“
检查输出,您会惊讶地发现您只是通过
ls
关键字运行已执行的命令。”
“
根据关键字运行命令
”
-
神奇的
!!
“
您可以使用
(!!)
.它将在当前命令中使用 alter/tweak 调用最后一个运行命令。给你看场景”
“
最后一天我运行了一个单行脚本来获取我的私有 IP,所以我运行,
”
$ ip addr show | grep inet | grep -v 'inet6'| grep -v '127.0.0.1' | awk '{print $2}' | cut -f1 -d/
“
然后我突然发现我需要将上面脚本的输出重定向到一个文件ip.txt,那我该怎么办?我应该再次重新输入整个命令并将输出重定向到文件吗?那么一个简单的解决方案是使用
UP
导航键并添加'> ip.txt'
将输出重定向到文件。”
$ ip addr show | grep inet | grep -v 'inet6'| grep -v '127.0.0.1' | awk '{print $2}' | cut -f1 -d/ > ip.txt
“
UP
键可以快速找到历史命令。现在考虑以下条件,下次我在单行脚本下运行时。”
$ ifconfig | grep "inet addr:" | awk '{print $2}' | grep -v '127.0.0.1' | cut -f2 -d:
“
一旦我运行脚本,bash 提示符就会返回一个错误消息
“bash: ifconfig: command not found”
,我不难猜测我以用户身份运行此命令,而它应该以 root 身份运行。”
“
那么有什么解决办法呢?很难登录到 root 然后再次键入整个命令!此外,上一个示例中的(向上导航键)在这里也没有出现。所以?我们需要
“!!”
不带引号调用,这将调用该用户的最后一个命令。”
$ su -c !! root
“
这里su是切换用户,也就是 root,
-c
以用户身份运行特定的命令,最重要的部分!!
将被命令替换,最后运行的命令将在这里替换。是的!您需要提供 root 密码。”
!!
主要在以下场景中使用,
“
当我以普通用户身份运行apt-get命令时,我通常会收到一个错误,说您无权执行。
”
$ apt-get upgrade && apt-get dist-upgrade
“
Opps 错误… 不要担心执行以下命令以使其成功..
”
$ su -c !! $ service apache2 start or $ /etc/init.d/apache2 start or $ systemctl start apache2
“
OOPS 用户无权执行此类任务,所以我运行..
”
$ su -c 'service apache2 start' or $ su -c '/etc/init.d/apache2 start' or $ su -c 'systemctl start apache2'
- 运行影响除 ![FILE_NAME] 之外的所有文件的命令
“
该
!
(逻辑 NOT)可以用来运行所有命令的文件 / 文件扩展名,除了后面'!'
。”
A.**从目录中删除所有文件,但名称为**2.txt的文件除外。
$ rm !(2.txt)
B.从文件夹中删除所有文件类型,除了扩展名为 “pdf”的文件类型。
$ $ rm !(*.pdf)
- 检查一个目录(比如 / home/avi/Tecmint)是否存在?printf 如果所述目录存在与否。
“
在这里,我们将使用
'! -d'
来验证目录是否存在,然后使用逻辑 AND 运算符(&&)
来打印该目录不存在,然后使用逻辑 OR 运算符(||)
来打印目录是否存在。”
“
逻辑是,当输出
[ ! -d /home/rumenz ]
为0 时,它将执行超出 Logical 的内容,否则它将转到 Logical OR(||)
并执行超出 LogicalOR 的内容。”
$ [ ! -d /home/rumenz ] && printf '\nno such /home/rumenz directory exist\n' || printf '\n/home/rumenz directory exist\n'
- 检查目录是否存在?如果没有退出命令。与上述条件类似,但这里如果所需目录不存在,它将退出命令。
$ [ ! -d /home/rumenz ] && exit
- 如果它不存在,则在您的主目录中创建一个目录(比如 rumenz)。脚本语言中的一种通用实现,如果所需目录不存在,它将创建一个。
[ ! -d /home/rumenz ] && mkdir /home/rumenz
Atas ialah kandungan terperinci 10 petua untuk tanda seru (!) dalam Linux. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Perbezaan utama antara CentOS dan Ubuntu adalah: asal (CentOS berasal dari Red Hat, untuk perusahaan; Ubuntu berasal dari Debian, untuk individu), pengurusan pakej (CentOS menggunakan yum, yang memberi tumpuan kepada kestabilan; Ubuntu menggunakan APT, untuk kekerapan yang tinggi) Pelbagai tutorial dan dokumen), kegunaan (CentOS berat sebelah ke arah pelayan, Ubuntu sesuai untuk pelayan dan desktop), perbezaan lain termasuk kesederhanaan pemasangan (CentOS adalah nipis)

Langkah Pemasangan CentOS: Muat turun Imej ISO dan Burn Bootable Media; boot dan pilih sumber pemasangan; Pilih susun atur bahasa dan papan kekunci; Konfigurasikan rangkaian; memisahkan cakera keras; Tetapkan jam sistem; Buat pengguna root; pilih pakej perisian; Mulakan pemasangan; Mulakan semula dan boot dari cakera keras selepas pemasangan selesai.

CentOS telah dihentikan, alternatif termasuk: 1. Rocky Linux (keserasian terbaik); 2. Almalinux (serasi dengan CentOS); 3. Ubuntu Server (Konfigurasi diperlukan); 4. Red Hat Enterprise Linux (versi komersial, lesen berbayar); 5. Oracle Linux (serasi dengan CentOS dan RHEL). Apabila berhijrah, pertimbangan adalah: keserasian, ketersediaan, sokongan, kos, dan sokongan komuniti.

Bagaimana cara menggunakan desktop Docker? Docktop Docktop adalah alat untuk menjalankan bekas Docker pada mesin tempatan. Langkah -langkah untuk digunakan termasuk: 1. Pasang desktop Docker; 2. Mulakan desktop Docker; 3. Buat imej Docker (menggunakan Dockerfile); 4. Membina imej Docker (menggunakan Docker Build); 5. Jalankan bekas Docker (menggunakan Docker Run).

Docker menggunakan ciri -ciri kernel Linux untuk menyediakan persekitaran berjalan yang cekap dan terpencil. Prinsip kerjanya adalah seperti berikut: 1. Cermin digunakan sebagai templat baca sahaja, yang mengandungi semua yang anda perlukan untuk menjalankan aplikasi; 2. Sistem Fail Kesatuan (Unionfs) menyusun pelbagai sistem fail, hanya menyimpan perbezaan, menjimatkan ruang dan mempercepatkan; 3. Daemon menguruskan cermin dan bekas, dan pelanggan menggunakannya untuk interaksi; 4. Ruang nama dan cgroups melaksanakan pengasingan kontena dan batasan sumber; 5. Pelbagai mod rangkaian menyokong interkoneksi kontena. Hanya dengan memahami konsep -konsep teras ini, anda boleh menggunakan Docker dengan lebih baik.

Selepas CentOS dihentikan, pengguna boleh mengambil langkah -langkah berikut untuk menanganinya: Pilih pengedaran yang serasi: seperti Almalinux, Rocky Linux, dan CentOS Stream. Berhijrah ke pengagihan komersial: seperti Red Hat Enterprise Linux, Oracle Linux. Menaik taraf ke CentOS 9 Stream: Pengagihan Rolling, menyediakan teknologi terkini. Pilih pengagihan Linux yang lain: seperti Ubuntu, Debian. Menilai pilihan lain seperti bekas, mesin maya, atau platform awan.

Langkah Penyelesaian Masalah untuk Gagal Docker Image Build: Semak Sintaks Dockerfile dan Versi Ketergantungan. Semak jika konteks binaan mengandungi kod sumber dan kebergantungan yang diperlukan. Lihat log binaan untuk butiran ralat. Gunakan pilihan sasaran untuk membina fasa hierarki untuk mengenal pasti titik kegagalan. Pastikan anda menggunakan versi terkini Enjin Docker. Bina imej dengan --t [nama imej]: mod debug untuk debug masalah. Semak ruang cakera dan pastikan ia mencukupi. Lumpuhkan Selinux untuk mengelakkan gangguan dengan proses binaan. Tanya platform komuniti untuk mendapatkan bantuan, sediakan dockerfiles dan bina deskripsi log untuk cadangan yang lebih spesifik.

Keperluan Sistem Kod Vs: Sistem Operasi: Windows 10 dan ke atas, MACOS 10.12 dan ke atas, pemproses pengedaran Linux: minimum 1.6 GHz, disyorkan 2.0 GHz dan ke atas memori: minimum 512 MB, disyorkan 4 GB dan ke atas ruang penyimpanan: minimum 250 mb, disyorkan 1 GB dan di atas keperluan lain:
