目录
一、登录的另一种方式
二、rm相关指令
2.1 rmdir
2.2 rm指令
2.3 rm -r指令
2.4 rm-f指令
2.5 rm -rf指令
2.6 rm -i指令
三、man指令
①手册
② 安装man手册
四 cp指令
4.1 cp指令
4.2 cp -r&&cp-rf指令
4.3 cp -i
五、mv指令
5.1mv剪切
①移动普通文件
②移动目录
③mv受限
④询问覆盖
5.2mv重命名
六、 echo&&printf&&cat
6.1 echo指令
6.2 >重定向
七、显示文本内容指令
7.1 cat&&tac指令
①cat指令
②tac指令
7.2 nano指令
7.3 more指令
① more指令比较适合查看大文本:
②more指令还可以对前n行显示
③查找具体文本
7.4 less指令
①less+文件名 可以查看文本
②less查找
③less加行号
7.5 head&&tail指令
①head指令
②tail指令
7.6怎么拿中间文本?
①临时文件的方案
②不创建临时文件的方案
7.7了解管道:|
八、时间指令
8.1 date指令
8.2 date +%s指令
8.3 cal指令
每日鸡汤:努力成为自己喜欢的那种人 就算不成功 至少你会喜欢 这样努力的自己❤
这篇博文紧承上篇博文,今天博主还是给诸位老铁分享一些Linux的入门操作。
在上篇博文,博主像各位老铁介绍了Linux登录用户的一种方式:
ssh 用户名@公网ip 然后输入密码就可登陆了。
今天再分享一种登陆方式:
其余的东西暂时先不管。我们新增后,再点击打开,就会出现这样一个窗口,这时我们创建的就会出现
后序如果想对它进行修改,右击打开属性就可以修改了。
这种方式和ssh那一种互补,大家喜欢哪个就使用哪个咯。
rmdir是一个与mkdir相对应的命令。mkdir是建立目录,而rmdir是删除指令。
rmdir的功能是删除空目录。
常用选项:
rmdir -p 当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除。
这里我们可以看到,rmdir只能删除目录,不能对普通文件删除。
rm指令默认删除普通文件。
rm删不掉有文件的目录和空目录--rm删不掉目录。
我们看到,rmdir指令只能删除空目录,rm指令只能删除普通文件。那么怎么删除目录呢?
引入了rm -r选项。
如果当我们对使用sudo指令创建的文件进行删除的时候:
对于使用sudo指令创建的文件,当我们删除时会询问我们是否要删除。这个询问是比较好的,可以防止我们误删。但是我们来看这种情况:
当我连续删使用 sudo touch 的文件时,每一个文件被删除都要询问我是否要删除,如果我删除确定丢弃的1000个文件,每个都要询问是不是过于繁琐??
所以,就有了rm -f指令,这个指令让我们在删除普通文件的时候,不需询问直接删除:
rm - f可以不需询问直接删除sudo touch创建的普通文件,但是不能删除sudo mkdir创建的目录,所以引入了 rm -rf指令可以不需询问直接强制删除sudo mkdir创建的目录。
注意:
这里提醒一下诸位老铁,对于rm -rf这条指令要谨慎使用,它会不提醒直接递归删除,这种操作是十分可怕的,不当可能会导致操作系统直接挂掉,Linux是一个企业后端服务器,它上面可能会部署很多重要的服务,MySQL数据库(大量用户信息),所以如果你不小心rm -rf /,删掉了根目录,就是码农戏称的删库跑路了!
之前介绍的rm -f;rm-rf都是强制删除不需询问,而rm -i就是一定会询问我们是否要删除。
对rm指令的总结:
1、rmdir只能删除空目录;
2、rm只能删除普通文件,删不掉目录
3、rm -r 递归删除目录,它既能删除目录,也能删除普通文件;
4、rm -f强制删除sudo touch创建的普通文件
5、rm -rf强制删除sudo mkdir创建的目录,基本删除一切文件而不询问。当然rm -ef也不是万能的,对于正在使用的文件,被特殊保护的,账号权限不够的文件是删不掉的。
6、rm -i 删除时问一下我是否要删除。
man指令是访问Linux手册页的指令,它是一个查看命令、系统调用、C接口的一个手册。
比如我们查询touch指令:
查询到,如果我们想看更详细的信息,翻页就按键盘上的空格键,退出就按'q'.
再比如:
只不过这里的printf是指令,它不是C里面的函数,要是我们要查看C语言里面的printf函数,只需man 3 printf 操作就可以在3号手册查询就可以了。
这里有的老铁可能有点茫然,三号手册是什么?还有为什么我的XShell不能查看这个printf函数。一个一个解决。
后面的数字代表他是在几号手册里面的。那么man有几个手册呢?我们输入man man就可以查看
解释一下,man手册分为8章
1 是普通的命令
2 是系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么头文件)
3 是库函数,如printf,fread4是特殊文件,也就是/dev下的各种设备文件
5 是指文件的格式,比如passwd, 就会说明这个文件中各个字段的含义
6 是给游戏留的,由各个游戏自己定义
7 是附件还有一些变量,比如向environ这种全局变量在这里就有说明
8 是系统管理用的命令,这些命令只能由root使用,如ifconfig
这里在说明一下手册的查询规则:如果我们只是输入 man指令去查询,他按照1、2、3、4手册依次去查询,查到就显示。比如printf在1号手册是指令,而在3号手册是C函数,如果我们只是默认查询,是找不到在3号手册的函数printf的,因为在1号手册找到就不找了。
所以如果我们想具体查询,就得加上手册编号:
man 1/2/3/... 命令/接口 /C
这个手册查询,有的老铁可能觉得全英不好查看,它可以汉化指令部分,但是不建议汉化。
有的老铁说为啥我的不能显示printf函数,是因为没有安装man手册,如果你是普通用户,可能会权限受限不能安装,你可以在root账号上去安装。
root上安装了其他用户也可以使用的。
语法:cp [选项] 源文件或目录 目标文件或目录
功能: 复制文件或目录
说明: cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录, 则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息。
cp指令就是简单的复制粘贴普通文件。
就是一个拷贝的作用,注意拷贝不是剪切,我们将file.txt拷贝到cp_file里面,file.txt并没有受到影响!!
cp指令只能拷贝普通文件,不能拷贝目录,所以就引入了 cp -r 拷贝目录。
cp -r:递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理。
cp -rf是也是可以的,它是强制拷贝。
cp -f:强行复制文件或目录, 不论目的文件或目录是否已经存在。
cp-i:覆盖文件之前先询问用户。
cp_file里面已经有file1.txt,但是我们在执行cp指令还在不断往里面拷贝覆盖file1.txt,而没有提醒我们--这是有风险的,如果原来有重要文件,但是因为没有提醒而误被覆盖,就会导致出问题。所以可以cp -i ,使用这个指令拷贝复制就会问你是否要覆盖:
对于这一点,还要说明的是root用户下拷贝复制,存在同名文件时,不用加i他也会询问,用户的话不加i不会询问。
cp 拷贝普通文件;cp -r/cp-rf拷贝目录 ;cp -i 设置询问拷贝。
我们知道CTRL+C ;CTRL+V不会影响原文件,但是CTRL+X CTRL+V 是以剪切移动到另一文件夹,原文件自动删除。mv指令就有类似于剪切功能。mv命令是move的缩写,可以用来移动文件或者将文件改名,是Linux系统下常用的命令,经常用来备份文件或者目录。
当存在同名文件时就会询问我们是否要覆盖剪切。如果我们不想让他询问,就可以使用mv -f指令。
mv -i :若目标文件已经存在时,就会询问是否覆盖,这个操作在root账号下和普通用户下是不一样的。
mv 原来文件名 不存在的文件名。就可以改变名字。
echo指令的功能有:
1、显示信息到屏幕,这一点和printf一样:
2、echo可以初始化创建一个文件,比如我们可以touch一个空文件,也可以echo一些内容到一个普通文件:
这里提到的cat指令后面还会细说。
>也是一个指令叫重定向指令,>文件名直接创建一个大小为0的文件 ,它的作用和touch差不多。
至此,我们创建文件的方式有了三种:
1、>创建一个大小为0的普通文件;
2、touch创建一个空白文件;
3、echo可以初始化一个普通文件,也可以打印信息到屏幕。
cat可以把文件的内容显示出来。
下面博主输入一个XShell的脚本指令:
这段指令需要 严格控制空格,否则有很大程度完成不了!!
cat-n 指令,显示文本行号:
tac 指令的功能恰好和cat反过来,它可以逆序文本。
但是,对于一行文本,tac无法逆序!!
nano指令也可以查看这一万行文本。
其实我们还可以vim查看文本,但是初学者容易进去后退不出来,所以建议还是nano指令查看。
nano指令还有很多功能,这里只做了简单介绍:比如查找,替换,和跳转到指定行数等功能,它功能比cat多得多,操作比vim简便,非常适合新手。
可能有的老铁XShell上没有nano指令,需要安装:
① more指令比较适合查看大文本:
less比more更好的地方在于它可以按键盘上下键翻阅,而more只能向下翻阅。按q退出,less也可以查找:
但是,less不支持查看指定行数的文本操作。
less和more比较:
1、less可以按键盘上下键翻阅,而more只能向下翻阅
2、less和more都可以查找文本,但是less查找到后会给予高亮。
3、但是,less不如more的是不支持查看指定行数的文本操作。
4、less可以像cat -n一样给文本加行号。
more/less指令我还觉得不够方便,比如我就想查看最开始或最后几行文本,more和less都不够方便,于是就有了head和tail指令。
讲了拿到头和尾的指令,那么我想拿到中间的文本内容,怎么操作呢?
比如我想拿到[800,809]这10行的文本怎么办呢?
| 称为管道,它是一个类似于容器的东西,用于传输资源,这里我们只学习管道的命令行操作,后面到了进程间通信还会介绍管道的实现。
我们来分析刚才是怎么使用的管道:
head将前810行文本放到了管道,tail将管道内后十行打印。通过管道,head将文本内容传给了tail去操作。
了解管道之后,我们来进行这样一个操作,将中间十行[600,609]并逆置,并提取逆置后的前三行。
我们看到,管道类似于一个流水线。我们把逆置后的 10行放到管道,head提取前三行,通过管道实现多个信息流进行不同指令的加工处理。
date 指定格式显示时间: date +%Y:%m:%d
date 用法:date [OPTION]... [+FORMAT]
1.在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中常用的标记列表如下
1、%H : 小时
2、%M : 分钟
3、%S : 秒
4、%X : 相当于 %H:%M:%S
5、%d : 日
6、%m : 月份
7、%Y : 完整年份
8、%F : 相当于 %Y-%m-%d
这个看起来不舒服,我们可以改造一下:date +%Y/%m/%d
这里需要说明,除了百分号以外的符号,其他符号除了空格可以自行随便设置。
date +%s指令显示时间戳
我们决定这个秒数真别扭,可以把时间戳转成好看的时间。
我们在时间后面加上 -d@秒数 ,就会计算距离1970年1月1日多少秒的时间。
cal指令就是一个查看日历的指令。
cal+年份显示那一年的日历:
cal -3显示本月上月和下月的日历