Linux基本指令2

前言

上文我们讲解了linux的基本指令,本文将继续讲解剩余指令,以便更好地进行Linux操作系统的操作

目录

通配符: * 

man指令:查找手册

cp指令:拷贝

echo

cat

cp

mv指令:剪切并重命名

Ctrl + C

解析ll 等价于ls -l

安装

 卸载

Alias:别名        (ˈeɪliəs)        

Linux下一切皆文件        

输出重定向:

追加重定向(>>实现)

cat:读取目标文件的内容

输入重定向(<实现)

More指令:打印内容

更强大的功能less:打印内容

Head指令

Tail指令

想看中间的指令

管道操作


通配符: * 

*在Linux中是一个特殊的符号:通配符。可以匹配任意的字符。

我们新建了四个普通文件

可以看到*可以匹配任意字符

ls *可以匹配所有子文件

删除这些文件时,只需要如图即可,因为*可以匹配任意子文件

 

注意:rm * -rf 和 rm -rf *都是可以的,最好是 rm -rf *因为它更加直观,更容易被他人理解

man指令:查找手册

让我们先进入家目录下的lesson3文件下进行操作(cd ~/lesson3)

Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。访问Linux手册页的命令是

man 语法 : man [ 选项 ] 命令

 

常用选项
-k 根据关键字搜索联机帮助
num 只在第num章节找
-a 将所有章节的都显示出来,比如 man printf 它缺省从第一章开始搜索,知道就停止,用a选项,当按下q退出,他会继续往后面搜索,直到所有章节都搜索完毕
        
查找ls
按q退出
查找man
可以看到man内部存在很多个手册,用来查找
当我们查找printf时,默认从1号手册开始查找。查找的是linux操作系统的printf。
如果我们想查找C语言的printf,就需要去3号手册查找。
在查找手册中  回车下翻,上下箭头也可以。q退出
当我们查找一个不存在的内容时,可以看到提示不存在llll对应的手册
手册解释
man手册分为8章
1 是普通的命令
2 是系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么头文
件)
3 是库函数,如printf,fread4是特殊文件,也就是/dev下的各种设备文件
5 是指文件的格式,比如passwd, 就会说明这个文件中各个字段的含义
6 是给游戏留的,由各个游戏自己定义
7 是附件还有一些变量,比如向environ这种全局变量在这里就有说明
8 是系统管理用的命令,这些命令只能由root使用,如ifconfig

cp指令:拷贝

语法 cp [ 选项 ] 源文件或目录 目标文件或目录
功能 : 复制文件或目录
说明 : cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息
在介绍之前,我们先了解两个语法:echo、cat

echo

echo + 一段内容,可以将内容原封不动的打印到屏幕上(linux中一切皆文件,屏幕对于linux而言就是一个输出文件)

echo + 一段内容 + 一个文件,可以将内容写到对应的文件中。

可以看到,系统自动为我们建立了t1.txt这个文件夹。
将本该输出到屏幕的内容输出到文件中,这就叫做输出重定向,通过 >操作符实现。

cat

cat指令可以打印一个文件的内容。

echo后面跟的是字符串,cat后面跟的是文件名

有了这些知识就可以更好的学习cp指令了

cp

cp指令用来内容的拷贝

cp [选项] 源目录/文件 目标目录/文件
 

可以拷贝文件到文件,拷贝文件到目录,拷贝目录到目录

这样我们将t1的内容,拷贝到了t1的备份文件中。同时系统自动建立t1_backup.txt
但是我们不能自己拷贝自己

可以将内容拷贝到上级目录中         拷贝到上级(可以相对、绝对路径)

这样上级路径多了一个t1.txt的文件

上级路径t1确实将内容拷贝到了

拷贝文件该怎么?

拷贝目录文件不能直接cp,而是需要递归式的拷贝:cp -r

拷贝得到了t4,t4内部有t1递归展开的目录文件

cp的常用选项

常用选项
-f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在
-i 或 --interactive 覆盖文件之前先询问用户
-r递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理
-R 或 --recursive递归处理,将指定目录下的文件及子目录一并处理

mv指令:剪切并重命名

mv + src + dest

mv 命令是 move 的缩写,可以用来移动文件或者将文件改名( move (rename) files ),是 Linux系统下常用的命令,经常用来备份文件或者目录。
语法 : mv [ 选项 源文件或目录 目标文件或目录
功能 :
1. mv 命令中第二个参数类型的不同(是目标文件还是目标目录), mv命令将文件重命名或将其移至一个新的目录中。
2. 当第二个参数类型是文件时, mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。
3. 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个, mv命令将各参数指定的源文件均移至目标目录中。
常用选项
-f  force  强制的意思,如果目标文件已经存在,不会询问而直接覆盖
-i  :若目标文件  (destination)  已经存在时,就会询问是否覆盖
将t1文件剪切到上级目录,重命名为t1的备份

上级文件多了一个t1的备份

将上级文件重新剪切回来

如何区分是在剪切还是重命名呢?----mv的功能本质是剪切并重命名

 mv可以重命名,可以剪切。

完成这两步需要  : mv  路径/文件名(src)     路径/文件名(dest)

//否则使用缺省值

mv也可以对目录文件进行操作

当我们移动目录时,如果dest是一个已经存在的目录,那么不会出现剪切,而是将src移动到dest

路径定位的时候,目录后面的/可带可不带,最好带上

Ctrl + C

这个指令主要是针对Xsehll下的linux而言。当我们输入了一串指令,如果不想按删除键,只需要一个ctrl +C就可以中止指令。

解析ll 等价于ls -l

先解析两个问题:你是如何看待指令的 2.执行指令之前,我们应该先做什么

1.你是如何看待指令的

指令和可执行程序一样,都是可以被执行的-----指令本身就是一种可执行程序(我们安装的tree指令)

2.执行指令之前,我们应该先做什么

指令需要先查找,然后再执行

当我们输入错误指令,发现指令无法查找到。

指令在/usr/bin目录下(搜索目录)

通过which指令,可查找到指令在/usr/bin目录下

这些指令就是一个个的可执行程序,和我们自己编写的代码没有本质区别

安装

将a.out这个可执行程序重命名为mycmd(mv可以重命名),将这个文件放在默认的搜索目录下,我们就可以在直接执行这个文件。

cp在这个地方的作用就是拷贝普通文件到一个目录。如下就是将文件拷贝到目录

 卸载

删掉这条指令就叫卸载。

Alias:别名        (ˈeɪliəs)        

alias 别名='原来的指令'                //不能有空格

tree只能操作目录内部的文件(想操作本文件 ,需要tree  ./)

注意,中间不能有空格,这样t1.txt就能像可执行程序一样使用

移除该指令

这样就什么也不会发生。

需要注意的是alias指令是一个临时的指令,每次登录操作系统,这个指令都会取消

Linux下一切皆文件        

对于键盘、显示器,对于Linux而言,都是一个个的文件

可以向显示器写,但是从显示器读的读方法为空

Echo默认把数据写到显示器这个文件当中

输出重定向:

把本来应该写到显示其中的内容,写到了普通文件中。(通过>实现)

输出重定向是覆盖写入

清空一个文件的内容:可以直接>文件,这样直接清楚内容,不写入新内容

追加重定向(>>实现)

cat:读取目标文件的内容

语法 cat [ 选项 ][ 文件 ]
功能 : 查看目标文件的内容
常用选项
-b 对非空输出行编号
-n 对输出的所有行编号
-s 不输出多行空行

当我们什么都不写时,默认从键盘读取,打印到显示器

输入重定向(<实现)

默认是从键盘读取(输入),重定向之后从其他文件中输入

三大重定向:输出、追加、输入

输出重定向、追加重定向,对应的文件不存在会自动创建。

想建立文件时,可以直接 >newfile.txt,这样可以建立一个空文件

建立一个大文件

cnt=1; while [ $cnt -le 1000 ]; do echo "nihao$cnt"; let cnt++; done > t1.txt

当我们使用cat时,发现效果十分不好,这时候就需要使用别的指令。

用cat查看文本,发现滑不到1000行(成本太高),cat不适合读取大文本

Cat适合小文本、代码片段

More指令:打印内容

将文件内容打印出来,占满整个屏幕,就不会再去打印,知道按回车,才会继续打印

按住q退出,按住下箭头也会翻滚。(more只可以下翻)

语法 more [ 选项 ][ 文件 ]
功能 more 命令,功能类似 cat
常用选项
-n 对输出的所有行编号
q 退出 more

-n:只打印n行

也可以直接跳到某一行

更强大的功能less:打印内容

可以上下箭头翻滚

也可以/行号 ,跳转到某一行

less +n:快速打印第n行。

不同于more,more需要-  less需要+

lessmore类似,但使用less可以随意浏览文件,而more仅能向前移动,却不能向后移动,而且less在查看之前不会加载整个文件。
选项
-i  忽略搜索时的大小写
-N  显示每行的行号
/字符串:向下搜索“字符串”的功能
?字符串:向上搜索“字符串”的功能
n:重复前一个搜索(与 / 或 ? 有关)
N:反向重复前一个搜索(与 / 或 ? 有关)
q:quit

Head指令

head   tail  就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块, head 用来显示档案的开头至标准输出中,而  tail  想当然尔就是看档案的结尾。
语法: head [ 参数 ]... [ 文件 ]... 
功能
head  用来显示档案的开头至标准输出中,默认 head 命令打印其相应文件的开头 10 行。 
选项
-n< 行数 显示的行数
默认显示10行

Tail指令

tail  命令从指定点开始将文件写到标准输出 . 使用 tail 命令的 -f 选项可以方便的查阅正在改变的日志文件,tail -f filename 会把 filename 里最尾部的内容显示在屏幕上 , 并且不但刷新 , 使你看到最新的文件内容 .
语法: tail[ 必要参数 ][ 选择参数 ][ 文件
功能: 用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。
选项:
-f  循环读取
-n< 行数 显示行数
tail默认也是显示10行

想看中间的指令

方法一:先head再tail

缺陷:创建临时文件

管道操作

I是一个管道操作符

前面的指令的结果进入管道

后面指令进行对管道的操作

管道是一个内存中的文件,不占用磁盘空间

将前90行流入管道,后面对管道进行操作(不是对t1,而是对管道后面的指令对管道的内容进行操作

我们想读取数据并不是直接读取磁盘的数据,而是先将数据加载到内存,再进行读取

可以有多节管道(将上一级处理完的数据交给下一个管道)

可以看到后续的参数都少了一个,默认的文件就是这个管道文件

cat用来读取(输入)文件内容,所以用cat而不是echo

echo用来输出,负责将内容输出到一个文件。

从文件读取内容用cat

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值