bash shell命令(二)

ls命令最基本的形式会显示当前目录下的文件和目录。
可用带**-F**参数的ls命令轻松区分文件和目录。
在这里插入图片描述
-F参数在目录名后加了正斜线( /),以方便用户在输出中分辨它们。类似地,它会在可执行文件(比如上面的my_script文件)的后面加个星号,以便用户找出可在系统上运行的文件。

基本的ls命令显示了当前目录下的文件和目录,但并没有将全部都显示出来。 Linux经常采用隐藏文件来保存配置信息。在Linux上,隐藏文件通常是文件名以点号开始的文件。这些文件并没有在默认的ls命令输出中显示出来,因此我们称其为隐藏文件
ls -a命令把隐藏文件和普通文件及目录一起显示出来。
在这里插入图片描述
-R参数叫作递归选项。它列出了当前目录下包含的子目录
文件
在这里插入图片描述
$ls -l显示附加信息-l参数会产生长列表格式的输出,包含了目录中每个文件的更多相关信息。

文件类型 比如目录(d)、文件( -)、字符型文件( c)或块设备(b);
文件的权限
文件的硬链接总数;
文件属主的用户名;
文件属组的组名;
文件的大小(以字节为单位);
文件的上次修改时间;
文件名或目录名

$ls -alF
问号( ?)代表一个字符;
星号( *)代表零个或多个字符。
问号可用于过滤器字符串中替代任意位置的单个字符。
在过滤器中使用星号和问号被称为文件扩展匹配( file globbing),指的是使用通配符进行模式匹配的过程。通配符正式的名称叫作元字符通配符(metacharacter wildcards)。除了星号和问号之外,还有更多的元字符通配符可用于文件扩展匹配。可以使用中括号。
我们使用了中括号以及在特定位置上可能出现的两种字符:a或i中括号表示一个字符位置并给出多个可能的选择。
在这里插入图片描述
可以将待选的字符列出来,也可以指定字符范围,例如字母范围[a – i]。
另外,可以使用感叹号( !)将不需要的内容排除在外。
在这里插入图片描述

创建文件touch

touch命令创建了空文件。
在这里插入图片描述
ls- l不会显示访问时间,因为默认显示的是修改时间。要想查看文件的访问时间,需加入:–time=atime。
在这里插入图片描述
复制文件 cp命令需要两个参数——源对象目标对象
cp source destination
当source和destination参数都是文件名时, cp命令将源文件复制成一个新文件,并且以
destination命名。新文件就像全新的文件一样,有新的修改时间。
新文件test_two和文件test_one的修改时间并不一样。如果目标文件已经存在, cp命令
可能并不会提醒这一点。最好是加上**-i**选项,强制shell询问是否需要覆盖已有文件。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
单点符表示当前工作目录。如果需要将一个带有很长的源对象名的文件复制到当前
工作目录中时,单点符能够简化该任务。
在这里插入图片描述
cp命令的-R参数威力强大。可以用它在一条命令中递归地复制整个目录的内容。
在这里插入图片描述
目录Mod_Scripts随着cp -R命令被创建,整个Scripts目录中的内容都被复制到其中。在新的目录中所有文件都有对应的新日期。
在这里插入图片描述
Tab制表键可以自动补全文件名或目录名。

链接文件是Linux文件系统的一个优势。如需要在系统上维护同一文件的两份或多份副本,
除了保存多份单独的物理文件副本之外,还可以采用保存一份物理文件副本和多个虚拟副本的方
法。这种虚拟的副本就称为链接。链接是目录中指向文件真实位置的占位符

符号链接是一个实实在在的文件,它指向存放在虚拟目录结构中某个地方的另一个文件。
这两个通过符号链接在一起的文件,彼此的内容并不相同。
在这里插入图片描述
可以使用$ln -s 文件 符号链接创建符号链接。
符号链接的名字sl_data_file位于ln命令中的第二个参数位置上。显示在长列表中符号文件名后的->符号表明该文件是链接到文件data_file上的一个符号链接。
符号链接sl_data_file只有9个字节,而data_file有1092个字节。这是因为sl_data_file仅仅只是指向data_file而已。它们的内容并不相同,是两个完全不同的文件。(类似于超链接)
$ls -i可以查看文件或目录的inode编号,这是用于标识的唯一数字,是内核分配给文件系统中的对象的。
在这里插入图片描述
硬链接会创建独立的虚拟文件,其中包含了原始文件的信息及位置。但是它们从根本上而言
是同一个文件。引用硬链接文件等同于引用了源文件。
在这里插入图片描述
$ln命令不需要加入额外的参数。
在这里插入图片描述

重命名文件(移动)

在Linux中,重命名文件称为移动。mv命令可以将文件和目录移动到另一个位置或重新命名
在这里插入图片描述
注意,移动文件会将文件名从fall更改为fzll,但inode编号和时间戳保持不变。这是因为mv只影响文件名
也可以使用mv来移动文件的位置。并不改变文件的inode编号或时间戳。
在这里插入图片描述
在这里插入图片描述
使用mv命令移动文件位置并修改文件名称。
也可以使用mv命令移动整个目录及其内容。

删除文件 rm

在Linux中,删除( deleting)叫作移除( removing) 。bash shell中删除文件的命令是rm。
在使用rm命令时,要养成总是加入-i参数的好习惯。
在这里插入图片描述
也可以使用通配符删除成组的文件。别忘了使用**-i**选项保护好自己的文件。
在这里插入图片描述

创建目录mkdir命令

在这里插入图片描述
d开头的表示是目录。
$mkdir -p 要想同时创建多个目录和子目录,需要加入**-p**参数:
在这里插入图片描述

删除目录

$rmdir
默认情况下, rmdir命令只删除空目录。因为我们在New_Dir目录下创建了一个文件my_file,所以rmdir命令拒绝删除目录。要想解决问题,得先把目录中的文件删除,然后才能在空目录上使用rmdir命令。
也可以在整个非空目录上使用rm命令。使用**-r选项使得命令可以向下进入目录,删除其中的文件,然后再删除目录本身。**
在这里插入图片描述
这种方法也可以向下进入多个子目录,删除大量的目录和文件时有效。

在这里插入图片描述
删除目录及其所有内容的方法是:使用带有-r参数和-f参数的rm命令。

rm -rf命令既没有警告信息,也没有声音提示。这肯定是一个危险的工具,尤其是在拥有超级用户权限的时候。务必谨慎使用,请再三检查你所要进行的操作是否符合预期。

file可以探测文件内部,查看文件类型
在这里插入图片描述
上面例子中的文件是一个text(文本)文件。 file命令不仅能确定文件中包含的文本信息,
还能确定该文本文件的字符编码, ASCII。
在这里插入图片描述
目录。可以使用file命令作为另一种区分目录的方法。
在这里插入图片描述
展示了一个类型为符号链接的文件。注意, file命令甚至能够告诉你它链接到了哪个文件上。

最后一个例子是二进制可执行程序。 file命令能够确定该程序编译时所面向的平台以及需
要何种类型的库。如果你有从未知源处获得的二进制文件,这会是个非常有用的特性:
在这里插入图片描述

查看整个文件

1.cat命令
$cat test_one
-n会给所有行加上行号。
$cat -n test1
如果只想给有文本的行加上行号,可以用**-b**参数。
-T参数会用^I字符组合去替换文中的所有制表符。

2.more命令
more命令会显示文本文件的内容,但会在显示每页数据之后停下来。
more命令是分页工具。

3.less命令
比more更高级。

查看部分文件

1.tail命令:显示文件最后几行的内容。默认为文件的末尾10行。
$ tail log_file:可以向tail命令中加入**-n参数来修改所显示的行数**。
在这里插入图片描述
-f参数是tail命令的一个突出特性。它允许你在其他进程使用该文件时查看文件的内容。
tail命令会保持活动状态,并不断显示添加到文件中的内容。这是实时监测系统日志的绝妙方式。
2.head命令:显示文件开头那些行的内容。默认显示文件前10行的文本。
在这里插入图片描述

小结:

ls命令列出目录中的文件和子目录。
touch创建空文件和变更已有文件的访问时间。
cp复制文件到其他地方。
链接文件。
mv命令移动文件。
rm命令移除文件。
还有mkdir和rmdir命令对目录执行任务。
cat、more和less命令 可以查看文件全部内容。tail和head命令可以查看文件的首尾部分文件。

发布了19 篇原创文章 · 获赞 12 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_44710568/article/details/104990420