个人主页:平行线也会相交
欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 平行线也会相交 原创
收录于专栏【Linux专栏】🎈
本专栏旨在分享学习Linux的一点学习心得,欢迎大家在评论区讨论💌
目录
- ls *
- man指令
- 小插曲echo
- cp指令
- mv指令
- cat指令
- more指令
- less指令
- head指令
- tail指令
ls *
ls有个对应的通配符*
,而*代表零个或多个任意字符
。
举个例子:
比如
ls *.c
可以匹配以.c后缀
结尾的所有内容:
再比如,ls test.*
可以匹配所有以test.
为开头的内容:
还有rm * -rf
可以理解为全部删除了。
man指令
Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。访问Linux手册页的命令是man 语法: man [选项] 命令
。
常用选项:
1 是普通的命令
2 是系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么头文
件)
3 是库函数,如printf,fread4是特殊文件,也就是/dev下的各种设备文件
5 是指文件的格式,比如passwd, 就会说明这个文件中各个字段的含义
6 是给游戏留的,由各个游戏自己定义
7 是附件还有一些变量,比如向environ这种全局变量在这里就有说明
8 是系统管理用的命令,这些命令只能由root使用,如ifconfig
小插曲echo
echo命令的功能是在显示器上显示一段文字,一般起到一个提示的作用。
也可以将字符串写入一个文件中,请看:
cat指令:打印文件内容
,请看:
cp指令
语法:cp [选项] 源文件或目录 目标文件或目录
功能: 复制文件或目录
特别注意: cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息。
选项:
- -f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在
- -i 或 --interactive 覆盖文件之前先询问用户
- -r递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理
- -r 或 --recursive递归处理,将指定目录下的文件及子目录一并处理
将当前目录文件拷贝到当前目录中的一个新文件中:
cp mytest.txt mytest_backup
(即将mytest.txt
拷贝到新文件mytest_backup
),请看:
拷贝也可以拷贝到上级目录中的一个新文件中,如cp mytest.txt ../mytest.txt
,请看:
现在,我们不在拷贝文件了,我们来试一试直接拷贝整个目录(lesson3)
,cp -r lesson3 lesson3_backup
这里要注意,拷贝目录和拷贝文件不当然是一样的,请看:
cp -i
的演示请看(这里拷贝是并没有询问我,故没有展示,仅仅值展示了删除目录的部分):
mv指令
mv:以用来移动文件或者将文件改名
mv d1 dir1
:将当前目录d1
重命名为dir1
。
mv dir1 ./d1
:将当前目录dir1
重命名为d1
。
mv d1 ../
:将当前目录中的d1
移动到上级目录下。
mv ../d1 .
:将上级目录中的目录d1
移动到当前目录。
mv d1 ../newd1
:将当前目录中的目录d1
移动到上级目录并重命名为newd1
。
mv dir1 ../newd1
:如果newd1
在上级目录中已经存在,则表示将当前目录中的dir1
放到到上级目录中的newd1
中去,请看:
指令的本质是可执行程序,和我们自己代码编译好的程序没什么区别。指令是在系统中,特定的路径下存在的,一定是某种可执行程序。
cat指令
cat指令:打印文件中的内容。
echo "hello linux" > out.txt
:本来应该写到显示器文件的内容,最终写到了文件out.txt
中去。这种行为是重定向的行为。
ll
:将文件的属性数据写入到显式文件中去。
输出重定向:
向目标文件写入的时候,覆盖写入,清空文件,写入新内容。
追加重定向:
cat指令后如果什么都不跟,则默认从键盘中读取数据:
输入重定向(一种打印文件内容的写法):本来应该从键盘文件中读取,现在不用从键盘文件读取,而是从指定的文件中读取。
语法:cat [选项][文件]
功能: 查看目标文件的内容
常用选项:
-b
:对非空输出行编号
-n
:对输出的所有行编号
-s
:不输出多行空行
下面来看具体举例:
-n
:对输出的所有行编号
我们发现上图给空行也编上号了,如果我们不想给空行编号的话,这个时候就用到选项-b
了,请看举例:
还有一个选项是-s
:不输出多行空行,即把多行的空行压缩成一行空行进行输出,请看:
cat -sn test.txt
cat -sb test.txt
more指令
cat指令不适合看大文本,所以cat适合小文本,more指令
适合看大文本。
语法:more [选项][文件]
功能:more命令,功能类似 cat
常用选项:
-n
:对输出的所有行编号
q
:推出more
这是一个10000行的超大文本,可以很明显的看到观察起来很不方便。所以cat指令
不适合观察大文本。所以就引出了more指令
。
more -5000 test.txt
:
more命令可以逐行的进行下翻,然后把我们的文本展现给我们。
less指令
- less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大。
- less 的用法比起 more 更加的有弹性。在 more 的时候,我们并没有办法向前面翻, 只能往后面看。
- 但若使用了 less 时,就可以使用 [pageup][pagedown] 等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容!
- 除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。
语法: less [参数] 文件
功能:less与more类似,但使用less可以随意浏览文件,而more仅能向前移动,却不能向后移动,而且less在查看之前不会加载整个文件。
选项:
-i
:忽略搜索时的大小写
-N
: 显示每行的行号
/字符串
:向下搜索“字符串”的功能
?字符串
:向上搜索“字符串”的功能
n
:重复前一个搜索(与 / 或 ? 有关)
N
:反向重复前一个搜索(与 / 或 ? 有关)
q
:quit
来看举例:
less test.txt
:
less指令
支持文本的上下翻动。
less -500 test.txt
more指令和less指令推荐使用less指令,因为less指令可以进行上下文的翻动。
head指令
head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的开头至标准输出中,而 tail 想当然尔就是看档案的结尾。
语法:head [参数]… [文件]…
功能:head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。
选项:
-f
:循环读取。
-n<行数> 显示行数
举个例子:
head -3 test.txt
head -9 test.txt
tail指令
tail 命令从指定点开始将文件写到标准输出.使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不但刷新,使你看到最新的文件内容。
语法: tail[必要参数][选择参数][文件]
功能: 用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。
选项:
-f
:循环读取
-n<行数> 显示行数
还是来进行举例:
tail test.txt
:
tail -5 test.txt
:
现在,我们如果想要截取1000到1021行的这一小段,我们应该怎么做呢?请看:
方法一(head和tail以及重定向的方法):
第一步:
head -1020 test.txt
此时已经有了前1020行。
第二步:保存一个temp.txt
的临时文件,即head -1020 test.txt > temp.txt
cat temp.txt
:
第三步:tail -21 temp.txt
这种方法需要我们实实在在的创建一个文件,这个文件确实是在磁盘当中存在的文件,但是如果我们不想创建临时文件的话我们应该怎么做呢?请看:
方法二:
第一步:
head -1020 test.txt
第二步:head -1020 test.txt | tail-21
在这个方法中,我们把head -1020 test.txt | tail-21
中的|
符号称之为管道文件
。这个管道文件不会真实的在磁盘中存在,这个管道文件是一种内存级的文件。
这个管道文件的作用就是把其左侧的程序输出并交给管道文件,然后其右侧的程序在从管道文件中把数据读取到自己的程序中。
现在再来举一个管道文件的例子,请看:
cat test.txt | head -20
cat test.txt | head -20 | tail - 5
cat test.txt | head -20 | tail -5 | wc -l
(统计文本行的个数)
上述就是管道文件的一个典型的例子。
以上就是本文章的全部内容,依然是讲述了Linux中的一些最基本的指令,需要我们不断重复地去进行练习,同时一些理论知识也是非常重要的,大家也要重视起来。
好了,就到这里啦,各位友友们再见啦!!!