Linux mkdir、tar 和 kill 命令的 4 个有用小技巧

热门标签:

搜索 搜索

Linux.中国 - 开源社区?技术 ◆ 学习?查看内容

Linux mkdir、tar 和 kill 命令的 4 个有用小技巧

2015-7-22 11:20| 查看: 3005| 评论: 8| 收藏: 8| 分享: 0

原文:http://www.tecmint.com/mkdir-tar-and-kill-commands-in-linux/作者: Avishek Kumar
译文:LCTT  https://linux.cn/article-5863-1.html译者: ictlyh

我们一直以常规的方式完成一个任务,直到我们知道有更好的处理方法。作为 Linux 技巧和绝招系列 的后续,我会在这里介绍能在各个方面给你帮助的 4 个小技巧。开始吧!

4 个有用的 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)并填入以下内容。

ABCDEFGHIJKLMNOPQRSTUVWXYZ

这种情况一个普通用户会怎么做呢?

a. 他首先会创建文件,最好使用 touch 命令,例如:

$ touch /home/$USER/Desktop/test

b. 他会用一个文本编辑器打开文件,这可能是 nano、vim 或其它编辑器。

$ nano /home/$USER/Desktop/test

c. 然后他会将上面的内容输入到文件中,保存并退出。

忽略他/她使用的时间,他至少需要 3 步来执行上面的情况。

一个经验丰富的 Linux 用户会怎么做呢?他会在终端中输入下面的文本然后就完成所有任务。他不需要单独执行每一步。

cat << EOF > /home/$USER/Desktop/testABCDEFGHIJKLMNOPQRSTUVWXYZEOF

你可以用 ‘cat’ 命令检查是否成功创建了文件和内容。

$ cat /home/avi/Desktop/test

检查文件内容

3. 我们经常在 Linux 中处理归档文件(尤其是 TAR 包)。很多情况下我们会在某些位置,而不是在 Downloads 目录中使用 TAR 包。这种情况下我们怎么做呢?

在这种情况下我们通常会做两件事。

a. 复制/移动 tar 包到目标位置并解压,例如:

$ cp firefox-37.0.2.tar.bz2 /opt/或$ mv firefox-37.0.2.tar.bz2 /opt/

b. cd 到 /opt/ 目录。

$ cd /opt/

c. 解压 tar 包。

# tar -jxvf firefox-37.0.2.tar.bz2

我们也可以采用另外一种方式。

我们也可以在 Tar 包所在位置解压并复制/移动解压后的文件到所需的目标位置,例如:

$ tar -jxvf firefox-37.0.2.tar.bz2 $ cp -R firefox/  /opt/或$ mv firefox/ /opt/

不管哪种方式都需要两步才能完成任务。专业的人可以只用一步就完成这个任务:

$ tar -jxvf firefox-37.0.2.tar.bz2 -C /opt/

-C 选项提取文件到指定目录(这里是 /opt/)。

这并不是关于选项(-C)的问题,而是习惯的问题。养成使用带 -C 选项 tar 命令的习惯。这会使你的工作更加轻松。从现在开始不要再移动归档文件或复制/移动解压后的文件了,在 Downloads 文件夹保存 tar 包并解压到你想要的任何地方吧。

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,然后你可以使用这些 PID 在下面命令的帮助下杀掉 apache2。

# kill 1006 2702 2703 2704 2705 2706 2707

然后交叉检查是否还有名称中包含 ‘apache2’ 的进程/服务在运行,如下:

$ ps -A | grep -i apache2

实际上我们可以使用类似 pgrep 和 pkill 的工具以一种更容易理解的方式实现。你可以使用 pgrep 找到和一个进程相关的信息。假如你要找和 apache2 相关的进程信息,你只需要运行:

$ pgrep apache2

输出样例

15396154001540115402154031540415405

你也可以通过运行下面命令列出进程名称以及 pid。

$ pgrep -l apache2

输出样例

15396 apache215400 apache215401 apache215402 apache215403 apache215404 apache215405 apache2

用 pkill 杀掉进程非常简单。你只需要输入想要杀死的资源名称。我写了一篇关于 pkill 的博文,你可以参考:http://www.tecmint.com/how-to-kill-a-process-in-linux/

用 pkill 杀死一个进程(例如 apache2),你只需要输入以下命令:

# pkill apache2

你可以通过运行下面命令验证是否杀掉了 apache2。

$ pgrep -l apache2

它没有输出任何东西并返回到窗口意味着没有名称中包含 apache2 的进程在运行。

这就是我要说的所有东西。上面讨论的点肯定远远不够,但也肯定对你有所帮助。我们不仅仅是介绍教程使你学到一些新的东西,更重要的是想告诉你 ‘在同样的情况下如何变得更有效率’。

时间: 2024-10-10 15:04:50

Linux mkdir、tar 和 kill 命令的 4 个有用小技巧的相关文章

Linux命令行文本加密的小技巧

Linux命令行文本加密的小技巧 我在学习shell攻略时了解到了这个方法,感觉简单有趣,所以现在把它整理出来和大家分享. ROT13文本编码 介绍 ROT13(回转13位,rotateby13places,有时中间加了个减号称作ROT-13)是一种简易的置换暗码.把 ROT13 称为"加密"是大方的,"文本模糊处理"更准确些.有时候它被用来隐藏文本中潜在的攻击内容. 原理 套用ROT13到一段文字上仅仅只需要检查字元字母顺序并取代它在13位之后 的对应字母,有需要

Linux及FL2440使用过程遇到的各种问题和小技巧

原文链接:http://www.cnblogs.com/NickQ/p/8900474.html ## Linux及FL2440使用过程遇到的各种问题和小技巧 关于移植linux根文件系统中的问题 在最小内核移植并使用文件系统时,记得配置并保存好u-boot相关参数,否者会导致Linux内核找不到文件系统死掉. 文件系统时 JFFS2 时,设置的bootcmd和bootargs参数: set bootcmd 'nand read 30008000 100000 400000; bootm 300

mac下cp命令的妙用(一个小技巧)

在项目开发中遇到了这样一种情况: 需要用一个干净的工程(export出来的,没有svn信息)去覆盖一个主干的工程(含有svn信息),然后提交代码:我们在mac系统中拷贝->粘贴到目标文件夹,只有2个选项:停止和全部替换:选择全部替换后,svn信息全部丢失了. 这时我们可以使用cp -r dir1 rootdir 来进行覆盖,dir1是那个干净工程的文件夹路径,和主干工程同名:rootdir是主干工程的上级目录,如此一来我们就实现了保留svn信息前提下覆盖文件夹的目的. mac下cp命令的妙用(一

Linux下tar压缩解压缩命令详解

tar -c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件 这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个.下面的参数是根据需要在压缩或解压档案时可选的. -z:有gzip属性的-j:有bz2属性的-Z:有compress属性的-v:显示所有过程-O:将文件解开到标准输出 下面的参数-f是必须的 -f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名. # tar -cf all.tar *.jp

Linux的tar压缩解压缩命令

tar 命令语法如下: # tar <选项> <文件> 下面列举 tar 命令中一些常用的选项: --delete : 从归档文件 (而非磁带) 中删除 -r, --append : 将文件追加到归档文件中 -t, --list : 列出归档文件中包含的内容 --test-label : 测试归档文件卷标并退出 -u, --update : 将已更新的文件追加到归档文件中 -x, --extract, --get : 释放归档文件中文件及目录 -C, --directory=DIR

Linux mkdir 创建文件夹命令

介绍: 该命令创建指定的目录名,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录 语法: mkdir [-m] [-p] 目录名 选项介绍: -m: 对新建目录设置存取权限,也可以用 chmod 命令设置; -p: 可以是一个路径名称.此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录; 执行范例: [[email protected] ~]$ mkdir DIRA [[email protected] ~

Linux之tar打包压缩命令

前言: tar命令本身没有压缩功能的,它只是把多个文件或目录打包成一个文件,并且打包出来的文件的大小比原来文件大小的总和还要大,这样会大大浪费我们的磁盘空间,在工作环境中这也不是我们想要的.想要把多个文件或目录打包成一个文件 并且进行压缩,这时,我们可以用tar命令与压缩命令相结合使用.在工作实践中tar命令通常与gzip和bzip2两种压缩格式相结合使用. 1.tar命令常用参数 参数 含义j bzip2压缩格式z gzip压缩格式c 创建一个新归档x 解除归档中的文件v 详细输出f 文件t

CentOS7命令补全的一个小技巧

一.场景介绍 很多系统管理员倾向于使用CentOS6下的/etc/init.d的服务管理方式对服务进行管理,而不太习惯CentOS7下的systemctl方式对服务进行管理,他们觉得CentOS7下的systemctl的命令补全功能不太完善,其实这是一个"误会",因为现在安装操作系统的时候,选用的模板往往是最小化安装,最小化安装的情况下,命令补全的包是没有安装上去的,我们通过以下几个命令,就能很快的定位和解决问题. 二.处理方法 # yum -y install bash-comple

Linux中快捷键的使用,who命令,rm命令,ps命令,cd命令,kill命令,find命令,grep命令,tar命令(gz、tar、bz2),相关命令

1.进入Ubuntu之后打开终端窗口的快捷键是: ctrl + alt+t:通过这个命令可以打开终端.截图是: 2.关闭一个终端窗口的方式是: Alt +F4,在Ubuntu下还可以是exit 3.对于terminal中的符号,其中的$标识,普通用户时显示的是$,超级管理员对应的符号是:# 截图如下: 4.whoami:查看我是谁的命令,截图如下: 通过whoami或者who命令查看当前用户 5.清屏的命令是: clear,快捷键是:ctrl + l 6.查看当前所在位置的命令是:pwd 7.c