• [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"命令可以使暂停恢复

  • 相关阅读:
    常见代码优化技术
    zemax双透镜公差分析
    `SQL`编写判断是否为工作日函数编写
    保姆级安装 Linux 虚拟机教程 (CentOS 7)
    SpringBoot 入门
    【UE】材质描边、外发光、轮廓线
    室温离子液体1-丁基-3-甲基咪唑四氟硼酸盐([BMIM]BF4)偶联牛血清蛋白(BSA)合成路线
    iPhone删除所有照片的高效三部曲
    算法---水壶问题(DFS)
    指针笔试题讲解(让指针变得简单易懂)
  • 原文地址:https://blog.csdn.net/2301_80017277/article/details/138681684