我們一直以傳統方式完成任務,直到我們發現可以用更好的方式完成。在我們的Linux提示和技巧系列中,我在這裡分享以下四個提示,將幫助您在許多方面。開始吧!

1. 您應該創建一個類似於下面給出的長/複雜目錄樹。實現這一目標的最有效方法是什麼?
要實現如下建議的目錄樹結構。
$ cd /home/$USER/Desktop $ mkdir tecmint $ mkdir tecmint/etc $ mkdir tecmint/lib $ mkdir tecmint/usr $ mkdir tecmint/bin $ mkdir tecmint/tmp $ mkdir tecmint/opt $ mkdir tecmint/var $ mkdir tecmint/etc/x1 $ mkdir tecmint/usr/x2 $ mkdir tecmint/usr/x3 $ mkdir tecmint/tmp/Y1 $ mkdir tecmint/tmp/Y2 $ mkdir tecmint/tmp/Y3 $ mkdir tecmint/tmp/Y3/z
上述情況可以通過運行下面的一條命令簡單實現。
$ mkdir -p /home/$USER/Desktop/tecmint/{etc/x1,lib,usr/{x2,x3},bin,tmp/{Y1,Y2,Y3/z},opt,var}
要驗證,您可以使用tree命令。如果未安裝,您可以使用apt或yum安裝‘tree’軟件包。
$ tree tecmint

我們可以使用上述方法創建任何複雜度的目錄樹結構。請注意,這只是一個普通命令,但它使用{}
來創建目錄的層次結構。如果需要時,這可能非常有用,特別是在shell腳本內部使用。
2. 在您的桌面(/home/$USER/Desktop)上創建一個文件(比如test),並將其填充為以下內容。
ABC DEF GHI JKL MNO PQR STU VWX Y Z
在這種情況下,一個普通用戶會做什麼?
a. He will create the file first, preferably using touch command, as:
$ touch /home/$USER/Desktop/test
b. He will use a text editor to open the file, which may be nano, vim, or any other editor.
$ nano /home/$USER/Desktop/test
c. He will then place the above text into this file, save and exit.
所以無論他/她花多少時間,他至少需要3個步驟來執行上述情況。
一個聰明有經驗的Linux用戶會怎麼做?他只需在終端機上一次性輸入以下文本,所有操作就完成了。他不需要分別執行每個動作。
cat << EOF > /home/$USER/Desktop/test ABC DEF GHI JKL MNO PQR STU VWX Y Z EOF
您可以使用“cat”命令检查文件及其内容是否已成功创建。
$ cat /home/avi/Desktop/test
3. 我们经常在Linux上处理存档(特别是TAR包)。在许多情况下,我们必须在除了“Downloads”文件夹之外的某个位置使用该TAR包。在这种情况下我们该怎么做?
在这种情况下,我们通常会做两件事。
a. Copy/Move the tar ball and extract it at destination, as:
$ cp firefox-37.0.2.tar.bz2 /opt/ or $ mv firefox-37.0.2.tar.bz2 /opt/
b. cd to /opt/ directory.
$ cd /opt/
c. Extract the Tarball.
# tar -jxvf firefox-37.0.2.tar.bz2
我们可以换个方式做这件事。
我们将在TAR包所在的位置解压缩,并将解压缩的存档复制/移动到所需的目的地,如下:
$ tar -jxvf firefox-37.0.2.tar.bz2 $ cp -R firefox/ /opt/ or $ mv firefox/ /opt/
无论哪种情况,工作都需要两个或多个步骤才能完成。专业人士可以在一步中完成此任务,如下:
$ tar -jxvf firefox-37.0.2.tar.bz2 -C /opt/
选项-C使tar在指定文件夹(这里是/opt/)中提取存档。
不,这不是一个选项(-C),而是一个习惯。养成使用tar选项-C的习惯。这将简化您的生活。从现在开始,不要移动存档或复制/移动提取的文件,只需将TAR包留在Downloads文件夹中,然后在任何您想要的地方提取它。
4. 我们如何以传统方式终止一个进程?
通常,我们首先使用命令ps -A
列出所有进程,并将其与grep管道连接以查找进程/服务(比如apache2),简单如下:
$ ps -A | grep -i apache2
示例输出
1006 ? 00:00:00 apache2 2702 ? 00:00:00 apache2 2703 ? 00:00:00 apache2 2704 ? 00:00:00 apache2 2705 ? 00:00:00 apache2 2706 ? 00:00:00 apache2 2707 ? 00:00:00 apache2
上述输出显示所有当前运行的apache2进程及其PID’s,然后您可以使用这些PID来使用以下命令终止apache2。
# kill 1006 2702 2703 2704 2705 2706 2707
然後交叉檢查是否運行任何名為’apache2‘的進程或服務,如下:
$ ps -A | grep -i apache2
但我們可以使用像pgrep和pkill這樣的工具以更易懂的格式來執行。您可以僅通過使用pgrep來查找有關進程的相關信息。假設您需要查找apache2的進程信息,您可以簡單地執行:
$ pgrep apache2
範例輸出
15396 15400 15401 15402 15403 15404 15405
您還可以運行以下命令來列出進程名稱與pid。
$ pgrep -l apache2
範例輸出
15396 apache2 15400 apache2 15401 apache2 15402 apache2 15403 apache2 15404 apache2 15405 apache2
使用pkill殺死一個進程非常簡單。您只需輸入要殺死的資源名稱,然後完成。我已經寫了一篇關於pkill的文章,您可以參考這裡:https://www.tecmint.com/how-to-kill-a-process-in-linux/。
要使用pkill殺死一個進程(比如apache2),您只需執行以下操作:
# pkill apache2
您可以通過運行以下命令來驗證apache2是否已被殺死。
$ pgrep -l apache2
如果返回提示並且不打印任何內容,則意味著沒有以apache2的名稱運行的進程。
暫時就這些,這是我所能提供的。上述討論的重點雖然不夠詳細,但肯定會有所幫助。我們不僅意味著製作教程以使您每次都學到新東西,還想展示’如何在同一框架中更具生產力‘。請在下面的評論中提供寶貴的反饋。保持聯繫。繼續評論。
Source:
https://www.tecmint.com/mkdir-tar-and-kill-commands-in-linux/