linux中命令cat、more、less均可用来查看文件内容,主要区别有:
创新互联公司网站建设由有经验的网站设计师、开发人员和项目经理组成的专业建站团队,负责网站视觉设计、用户体验优化、交互设计和前端开发等方面的工作,以确保网站外观精美、网站设计制作、网站建设易于使用并且具有良好的响应性。
1、cat是一次性显示整个文件的内容,还可以将多个文件连接起来显示,它常与重定向符号配合使用,适用于文件内容少的情况。
cat主要有三大功能:
2、more命令,功能类似 cat ,cat命令是整个文件的内容从上到下显示在屏幕上。 more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能 。more命令从前向后读取文件,因此在启动时就加载整个文件。
常用操作命令:
3、less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大。less 的用法比起 more 更加的有弹性。在 more 的时候,我们并没有办法向前面翻, 只能往后面看,但若使用了 less 时,就可以使用 [pageup] [pagedown] 等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容!除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜,而且 less 在查看之前不会加载整个文件。
常用操作命令:
mv 命令是一个与cp类似的命令,但是它并非创建文件或目录的复制品/副本。不管你在使用什么版本的Linux系统,mv 都默认安装在你的Linux系统上了。来看一下 mv 命令在日常操作中的一些例子。
1.移动文件
移动文件时需要注意的是文件的源地址和目标地址必须不同。这里有个例子,想要将file_1.txt文件从当前目录移动到其它目录,以/home/pungki/为例,语法应该如下:
$ mv file_1.txt /home/pungki/office
如我们所见,当我们移动 filetxt 文件时,先前目录的 file1.txt 就被删除了。
2.移动多个文件
如果想一次移动多个文件,我们可以将他们放在一行并用空格分开。
$ mv file_2.txt file_3.txt file_4.txt /home/pungki/office
如果你的文件有规律可循的话那么你就可以使用通配符。比如,为了移除所有以.txt为扩展名的文件,我们可以用下面的命令:
$ mv *.txt /home/pungki/office
3.移动目录
不同于复制命令,用 mv 命令移动目录相当直接。移动目录你可以使用不带选项的 mv 命令。看下面的截图就一目了然了。
4.重命名文件或目录
我们也用 mv 命令来重命名文件或目录。不过目标位置和源位置必须相同才可以。然后文件名必须不同。
假定我们当前所在目录为/home/pungki/Documents,而我们想将file1.txt重命名为file2.txt。那么命令应该如下:
$ mv file_1.txt file_2.txt
如果是绝对路径,它应该像下面这样:
$ mv /home/pungki/Documents/file_1.txt /home/pungki/Documents/file_2.txt
5. 重命名目录
上一段的规则同样适用于目录。请看这个例子:
$ mv directory_1/ directory_2/
6. 打印移动信息
当你移动或重命名一大堆文件或目录时,你可能会想在不去目标位置去查看的情况下知道你自己的命令是否成功地执行了。这就要用到-v选项了。
$ mv -v *.txt /home/pungki/office
该方法同样适用于目录。
7. 使用交互模式
当你将文件移动到其它位置,而那个位置恰好有同样的文件,这时 mv 命令会覆盖掉原来的文件。对于mv的这一行为一般不会有什么提示。如果想产生一个关于覆盖文件的提示,我们可以使用-i选项。(译注:通常发行版会通过alias命令,将-i作为默认选项,所以会有提示。)
假设我们想将 file1.txt 移动到 /home/pungki/office。同时,/home/pungki/office 目录下已经有file1.txt文件了。
$ mv -i file_1.txt /home/pungki/office
这个提示会让我们知道目标位置处file_1.txt的存在。如果我们按y键,那么那个文件将会被删除,否则不会。
8. 使用更新选项
-i 选项会提示我们关于覆盖文件的提示,而 -u 则只在源文件比目标文件新时才执行更新。让我们看一看下面的例子:
假如 file1.txt 和 file2.txt有如下特点:
File_1.txt has 84 bytes file size and it last modified time is 12:00
File_2.txt has 0 bytes file size and it last modified time is 11:59
我们想将它们移动到 /home/pungki/office 目录下。**但是目标地址*已经有file1.txt和file2.txt了。
我们用下面的命令将file1.txt 和file2.txt从当前目录移动到/home/pungki/office
$ mv -uv *.txt /home/pungki/office
可以看到这些文件被移动了。能移动这些文件是因为它们最近的修改时间戳比 /home/pungki/office 目录中的文件新。
9.不要覆盖任何已存在的文件
如果-i选项询问我们是否要覆盖文件,那么 -n 选项将不会允许我们覆盖任何已存在的文件。
继续使用第8点中的例子,如果我们将-u 换成 -n同时加上-v选项,那么我们会看到没有任何文件移动到了 /home/pungki/office 目录下。
$ mv -vn *.txt /home/pungki/office
10. 复制时创建备份
默认情况下,移动文件将会覆盖已存在的目标文件。但是如果我们移动错了文件而目标文件已经被新的文件覆盖了,这时应该怎么办才好呢?有没有一种方法可以恢复之前的文件呢?答案是肯定的。我们可以用-b选项。该选项会在新文件覆盖旧文件时将旧文件做备份。这里我们还以第8点为例。
$ mv -bv *.txt /home/pungki/office
如截图中所见,在 /home/pungki/office 目录下出现了名为file1.txt~ and file2.txt~ 的文件。那个波浪符号(~)意味着这些文件是备份文件。从它们的属性中我们可以看到,这些文件比file1.txt和file2.txt要旧。
lsof命令用于查看你进程打开的文件、打开文件的进程、进程打开的端口。找回/恢复删除的文件。是十分方便的系统监视工具,因为lsof命令需要访问核心内存和各种文件,所以需要root用户执行。
在Linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以如传输控制协议和用户数据协议套接字等,系统在后台都为该应用程序分配了一个文件描述符,无论这个文件的本质如何,该文件描述符为应用程序与基础操作系统之间的交互提供了通用接口。因为应用程序打开文件的描述符列表提供了大量关于这个应用程序本身的信息,因此通过lsof工具能够查看这个列表对系统监测以及排错将是很有帮助的。
语法:
losf (选项)
选项:
-a 列出打开文件存在的进程;
-c进程名 列出指定进程所打开的文件;
-g 列出GID号进程详情;
-d文件名 列出占用该文件号的进程;
+d目录 列出目录下被打开的文件;
+D目录 递归列出目录下被打开的文件;
-n目录 列出使用NFS的文件;
-i条件 列出符合条件的进程。
可以使用whoami.
具体参考如下:
命 令:whoami 或者 who am i
功能说明:显示用户名称。
语法:whoami [--help][--version]
补充说明:显示自身的用户名称,本指令相当于执行"id -un"指令。
whoami 命令显示登录名。与使用命令 who 并指定 am i
不同,whoami 命令在有 root 用户权限时也有效,因为它不检查 /etc/utmp 文件。
该命令只出现在windows系列中的
windows 2000中。
参数:
--help 在线帮助。
--version 显示版本信息。
附:whoami
与who am i 的区别
who这个命令重点是用来查看当前有哪些用户登录到了本台机器上。
who -m的作用和who am
i的作用是一样的。
who -q用来显示当前登录用户的个数。
who am i
显示的是实际用户的用户名,即用户登陆的时候的用户ID。此命令相当于who -m。
who am i显示的是“登录用户”的用户名。
用Linux的术语来解释就是:(实际用户=uid,即user id。有效用户=euid,即effective user id)
whoami 显示的是有效用户ID.
whoami显示的是当前“操作用户”的用户名。
先看看这三个命令的输出信息:
[jb51@jb51 ~]$ whoami
jb51
[jb51@jb51 ~]$ who am i
jb51
pts/3 2011-07-25 13:17 (:0.0)
[jb51@jb51 ~]$ who
jb51 :0 2011-07-25
09:54
jb51 pts/0 2011-07-25 09:55 (:0.0)
jb51 pts/1 2011-07-25 09:57
(:0.0)
jb51 pts/3 2011-07-25 13:17 (:0.0)
当我用sudo su(或者sudo su
-)更换到root用户之后,你再看看:
[jb51@jb51 ~]$ sudo su
[root@jb51 jb51]# whoami
root
[root@jb51 jb51]# who am i
jb51 pts/3 2011-07-25 13:17 (:0.0)
[root@jb51 jb51]# who
jb51 :0 2011-07-25 09:54
jb51 pts/0 2011-07-25
09:55 (:0.0)
jb51 pts/1 2011-07-25 09:57 (:0.0)
jb51 pts/3 2011-07-25
13:17 (:0.0)