[Linux]基本指令(二)

一些剩下的指令部分

mv指令(重要)

mv 命令是 move 的缩写,可以用来移动文件或者将文件改名( move (rename) files ),是 Linux 系统下常用的命令, 经常用来备份文件或者目录。
语法 : mv [ 选项 源文件或目录 目标文件或目录

功能:

1. mv 命令中第二个参数类型的不同(是目标文件还是目标目录), mv 命令将文件重命名或将其移至一个新的目录中。
2. 当第二个参数类型是文件时, mv 命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。
3. 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个, mv 命令将各参数指定的源文件均移至目标目录中。
常用选项
-f  force  强制的意思,如果目标文件已经存在,不会询问而直接覆盖
-i  :若目标文件  (destination)  已经存在时,就会询问是否覆盖!
这个操作我们可以类比成,剪切和重命名
操作像这样:
mv src[文件、目录] dst[路径、文件]
mv src 文件 ->重命名
mv src 路径 ->剪切

举例  ::

重命名:

首先我当前路径下有如下内容

现在我们来对他们进行重命名:

mv dir mydir

我们会发现,不存在dir了,只存在mydir,这个mydir就是原来的dir,这个操作,我们就称之为重命名.

剪切:

首先,我们观察到mydir目录下,有一个new文件

我们先进入mydir目录里

这里我们来执行这段指令

mv new ..(..是上级目录)

来把new移至上级目录

然后

我们发现mydir里的new没了,跑到了上级目录里,这个操作我们就称之为剪切。

总结一下:

mv src[文件、目录] dst[路径、文件]
mv src 文件 ->重命名 mv dir mydir                    dir->mydir
mv src 路径 ->剪切   mv new ..                          ./new->../new
当然这两个操作一样可以同时进行:
这里new->nnew

cat

语法 cat [ 选项 ] [ 文件 ]
功能 : 显示目标文件的内容
常用选项
-b 对非空输出行编号
-n 对输出的所有行编号
-s 不输出多行空行
例:
我们先创建一个txt文件
这时候Hello.txt还是空的
我们先 nano Hello.txt写点东西:
写好后我们可以看到退出时^x,其实解释ctrl+X,我们退出然后按Y确认保存,并按ENTER退出
写好后文件内容是在Hello.txt里面的,我们每次需要查看的时候,难道都要nano进入看吗?
这时候我们的cat就有用了,我们直接执行
cat Hello.txt
就可以看到文件里的东西,这就是cat指令的作用
需要注意的是cat 对查看的文件有要求
他只能查看普通文件,即开头为-的
这里面mydir就不行
我们再来试一试别的:
cat -n会将展现的结果标注上行号
这时候,如果我们nano把Hello.txt里的内容改成这样:
我们再次cat  -n Hello.txt会怎么样呢?
我们可以得到::
cat -n会把空开的行也标上行号
面对这种过多空行的情况,我们的cat也给出了解决方法
cat -s                                    (-s 不输出多行空行)
cat -b                                    (-b 对非空输出行编号)
我们还可以结合一下
现在我们来试一试 cat -b
这个就是我们的 cat指令了, cat指令我们一般称之为 正序打印,与之对应的是 tac也就是 逆序打印
例:
其余操作类似,这里不过多赘述.
补充一个,如果cat后什么都不跟会输出什么?
cat后面如果什么都不输,它就会出现呢我们输入什么,它输出什么。也就是默认从我们的标准输入读取,也就是键盘
好这里我们也讲完了
值得注意的是:cat的作用确实就是读文件,但是我们需要注意,cat知识和读短文件,如:我们前面写的短文件和我们写的简单的代码。ca不是不能读长文件,但是长文件读取,很容易造成刷屏。

重定向

输出重定向

echo指令

首先我们再次强调一下,

Linux下一切皆文件,键盘,显示器也是被当作文件看待的----printf/cout------我们向显示器进行打印=向显示器文件进行输入,同理,scanf/cin-----键盘读取数据=从键盘为你按中读取数据。

这里我们来看这个指令:

echo "hello world"

这里其实就是

echo "hello world" ->向显示器文件写入

所以我们可以推导出这个写法

echo "Hello world">test.txt

echo本来是把内容输出到显示器文件中,现在输出到test.txt(因为没有所以新建了一个)中,这个操作就叫作,输出重定向。

由此,我们其实也能推断出,一个新的方法去创建一个新文件:

> 文件名

那么既然这样,我们现在这样再写一下:

我们来猜猜test.txt中现在有什么?

揭晓答案:

我们原本的内容没了,被覆盖成新的内容

不信再试试:

由此我们可以的出这个结论:

输出重定向每次输出都是依次全新的写入    每次写入都是从头开始

那如果我们想再原有的内容后接着写改怎么办呢?

追加重定向

我们可以这样写:把原来的">"号改成">>"号

例:

追加重定向,本质也是写入,只不过是一种新增的方式。

但是,我们发现这里的追加重定向出现了换行,这个是”echo"自带的,如果我们不要换行,我们可以用:

当然如果要换行,我们也可以这样写:

因此,我们可以这样追加:

输入重定向

本来应该从键盘文件中读取,现在从其他地方读取

我们知道我们如果直接用cat,它会从键盘文件读取数据,出现我们输入什么它输出什么

而如果我们用输出重定向'<'

它就会从后面的文件读取。

输入重定向:本来应该默认从键盘文件来,<:更改成从指定文件中读取数据。

more指令

上面我们说过了,如果文件太长cat会导致刷屏,这时,我们就可以引入我们的more命令,

我这里有一个文件里面有10000个hello world

如果我们用cat,必定会刷屏。

这时,如果我们用more呢?

more会把屏幕打满,然后,如果我们要看后面的内容,按回车就行。如果我们要退出,也很简单,输入‘Q’,即可。

less指令

事实上,more我们用的也不多,我们一般用的多的还是less

在more中我们发现文件不能上翻,less和more一样是把屏幕打满,但是less不仅指出文件的回车键下翻阅,也指出方向键的上下翻。

less还支持关键字的搜索,比如,我们要看:hello 1145

我们可以输入:/1145

然后回车

它就会跳转到1145有关的,也就是 hello 1145

然后我们可以通过输入的值决定翻页,来找到我们需要的值,输入n往后翻页,输入N往前翻页。

head指令和tail指令

我们前面的指令都是全部浏览,如果我们只想看开头和结尾,握们就可以用到上面的两个命令。

如果我们只想看开头5个,握们可以这样写

n=number(n可以省略)

后面加上数字,就是访问的行数。

同样,这样对tail也生效

但是如果,握们想看【5000,5020】行该怎么写呢?

我联盟可以先把5020以前都取出来

我们可以把这些数字重定向到一个临时文件中

然后我们从后往前取21个就行

这样就轻松完成了目标,但是这样写还是太过复杂了。

管道

我们可以这样写:

这样,直接就能取出来我们需要的范围了。这里‘|’我们称之为”管道

实际上就是通过管道,把左边明星的结果通过管道输入到右边。

根据Linux中万物皆文件的概念,我们可以说管道也是一个文件,左边的命令把结果写入管道,管道把内容传给右边。

管道不只能导一个命令,

例如:

我们可以把这个堪称流水线,最后生成相应的产物

时间相关的指令

date

date 指定格式显示时间: date +%Y:%m:%d
date 用法: date [OPTION]... [+FORMAT]
1. 在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中常用的标记列表如下
%H : 小时 (00..23)
%M : 分钟 (00..59)
%S : (00..61)
%X : 相当于 %H:%M:%S
%d : (01..31)
%m : 月份 (01..12)
%Y : 完整年份 (0000..9999)
%F : 相当于 %Y-%m-%d
2. 在设定时间方面
date -s // 设置当前时间,只有 root 权限才能设置,其他只能查看。
date -s 20080523 // 设置成 20080523 ,这样会把具体时间设置成空 00:00:00
date -s 01:01:01 // 设置具体时间,不会对日期做更改
date -s “01:01:01 2008-05-23″ // 这样可以设置全部时间
date -s “01:01:01 20080523″ // 这样可以设置全部时间
date -s “2008-05-23 01:01:01″ // 这样可以设置全部时间
date -s “20080523 01:01:01″ // 这样可以设置全部时间
时间在我们作项目中很常用,一般我们用它来写项目日志。
 
3. 时间戳
时间 -> 时间戳
时间戳我们之前写猜数字和扫雷的时候讲过
时间戳就是:格林尼治时间1970年1月1日0:00->现在所累积的时间
时间戳的特点:线性递增、唯一性
date +%s //就是把我们的时间,以时间戳的形式来表示
时间戳 -> 时间
date +%Y:%m:%d -d @xxxxx

cal

这个现在基本不用了,但是可以拿来装

用法如下:

就是生成对应年份的日历

直接cal:

就会现实当前的日期

如果我们输入

cal -3

他就会显示本月,以及其附近的总共三个月。(只有-3,没有别的)

find命令(基本的)(非常重要)

功能:在目录中查找文件

Linux下find命令的功能十分强大,提供给我们很多查找条件与选项

用法:find + (路径...) + (匹配条件) + (动作)

grep

功能:在文件中搜索字符串并打印

用法:grep + (选项)+ 目标字符串 + 文件...

常用选项:

  • -i:忽略大小写区分
  • -n:在前面输出行号
  • -v:反向选择,即输出所有不包含目标字符串的内容

ps

我们先不解释,先执行

ps -axj

然后它向我们展示了这些,这些是什么呢?这些是Linux中我启动的进程

说到这,我们还有一个top命令

这个也是向我们展示进程,它会每隔一两秒去刷新一下

对于进程的理解,我们可以类比一下windows任务管理器里的

grep和ps通过管道结合可以帮助我们去查找进程,像这样:

ps -axj | grep xxxxx

例如:

我们就通过这管道把两个指令连接起来,即可完成这个操作

zip与unzip

这个命令需要安装:

yum install -y zip unzip

功能:将目录或文件压缩成zip格式

用法:zip + 压缩文件名.zip + 目录/文件

常用选项:

  • -r:递归处理,将指定目录下的所有文件和子目录一并处理(一般都要加上)
  • -d:从压缩文件内删除指定的文件
  • -D:压缩文件内不建立目录名称

tar指令(重要):打包/解包,不打开它,直接看内容

tar [-cxtzjvf]  文件与目录  .... 参数
-c  :建立一个压缩文件的参数指令 (create  的意思 )
-x  :解开一个压缩文件的参数指令!
-t  :查看  tarfile  里面的文件!
-z  :是否同时具有  gzip  的属性?亦即是否需要用  gzip  压缩?
-j  :是否同时具有  bzip2  的属性?亦即是否需要用  bzip2  压缩?
-v  :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!
-f  :使用档名,请留意,在  f  之后要立即接档名喔!不要再加参数!
-C : 解压到指定目录

bc

功能:进行浮点运算

用法:bc + (选项) + (参数)

常用选项:

  • -i:强制进入交互式模式
  • -l:定义使用的标准数学库

参数:指定包含计算任务的文件

uname

功能:获取电脑和操作系统的相关信息

用法:uname + (选项)

常用选项:

-a:显示全部的信息,包括内核名称、主机名、操作系统版本、处理器类型和硬件架构等
-m:显示处理器类型
-n:显示主机名
-r :显示内核版本号
-s:显示操作系统名称
-v:显示操作系统的版本
--help:显示帮助

关机

语法 shutdown [ 选项 ] ** 常见选项: **
-h : 将系统的服务停掉后,立即关机。
-r : 在将系统的服务停掉之后就重新启动
-t sec -t 后面加秒数,亦即『过几秒后关机』的意思

拓展命令

安装和登录命令:login、shutdown、halt、reboot、install、mount、umount、exit、last...
文件处理指令:file、dd、diff、ln...
系统管理相关命令:df、top、free、quota、at、lp、adduser、groupadd、kill、crontab...
网络操作命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、mail、finger...
系统安全权限相关命令:passwd、su、sudo、umask、chgrp、chmod、chown、who...
其他命令:tar、gunzip、unarj、mtools、unendcode...

二、常用热键


tab:补全命令或路径
ctrl+a:光标回到行首
ctrl+e:光标回到行尾
ctrl+c:终止终端正在进行的所有任务并开启新的命令行
ctrl+r:搜索命令行使用过的历史命令记录
ctrl+l:清空屏幕所有的内容
ctrl+k:剪切(删除)光标处到行尾的所有字符
ctrl+k:剪切(删除)光标处到行尾的所有字符
ctrl+y:粘贴 ctrl+k、ctrl+u、ctrl+w删除的字符
ctrl+d:退出当前shell命令行,如果是切换过来的用户,则执行这个命令回退到原用户
ctrl+z:暂停在终端运行的任务,使用"fg"命令可以使暂停恢复

相关推荐

  1. Linux基础指令)(文件、权限等)

    2024-07-12 22:00:03       27 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-12 22:00:03       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-12 22:00:03       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-12 22:00:03       58 阅读
  4. Python语言-面向对象

    2024-07-12 22:00:03       69 阅读

热门阅读

  1. 使用 docker-compose 部署和使用 Yapi

    2024-07-12 22:00:03       21 阅读
  2. 力扣 202快乐数

    2024-07-12 22:00:03       24 阅读
  3. 跨越数据边界:域适应在目标检测中的革新作用

    2024-07-12 22:00:03       25 阅读
  4. 在linux x86服务器安装jdk

    2024-07-12 22:00:03       20 阅读
  5. 中国专利文献编号系统方案

    2024-07-12 22:00:03       21 阅读
  6. LanceDB:开源的向量搜索引擎

    2024-07-12 22:00:03       19 阅读
  7. numpy实现sigmoid函数

    2024-07-12 22:00:03       18 阅读