• Linux入门学习 —— 常用的基本命令(下)


     


    🌳前言

    这篇文章我将会超详细的为大家讲解剩下的Linux常用基本命令,特别适合Linux入门的学习。字数过万,建议先收藏再观看,避免以后再想看就找不到了,那么废话不多说,开始我们今天的内容。


    🍏Linux常用的基本命令(上)

    如果还有小伙伴没有看过上篇的可以先看看上篇哦,上篇相对基础一些,当然下篇也不难,但会很精彩哦。

    快速跳转:Linux入门学习 —— 常用的基本命令(上)

    🍎Linux常用的基本命令(下)

    💧clear命令

    语法:clear

    功能:clear命令用于清除当前屏幕终端上的所有信息。(如果你鼠标滚轮往上滑动,你会发现,你清除的所有信息都还保留在这上面)

    常用选项:

    快捷清除:ctrl + L 与clear效果一样。

    💧nano命令

    介绍:nano是一个字符终端的文本编辑器,通俗来讲就跟记事本差不多。它比vi/vim要简单得多,比较适合Linux初学者使用。某些Linux发行版的默认编辑器就是nano。(由于nano比较适合初学者使用,在后期使用起来还是没有vim那么方便,所以我们这里只简单介绍一下,后期我们主要讲vim的使用)

    语法:nano [选项] [[+行,列] 文件名]...

    选项:(这里只讲最常用的选项)

    • +行,列 从所指列数与行数开始
    • -m --mouse 启用鼠标功能
    • -w 或 --nowrap 不要自动换行(nano命令可以打开指定文件进行编辑,默认情况下它会自动断行,即在一行中输入过长的内容时自动拆分成几行,但用这种方式来处理某些文件可能会带来问题,比如Linux系统的配置文件,自动断行就会使本来只能写在一行上的内容折断成多行了,有可能造成系统不灵了。因此,如果你想避免这种情况出现,就加上-w选项吧。)

    用法:

    复制:复制一整行:Alt+6

    剪贴:剪贴一整行:Ctrl+K

    粘贴:Ctrl+U

    提示:如果需要复制/剪贴多行或者一行中的一部分,先将光标移动到需要复制/剪贴的文本的开头,按Ctrl+6(或者Alt+A)做标记,然后移动光标到 待复制/剪贴的文本末尾。这时选定的文本会反白,用Alt+6来复制,Ctrl+K来剪贴。若在选择文本过程中要取消,只需要再按一次Ctrl+6。

    搜索:按Ctrl+W,然后输入你要搜索的关键字,回车确定。这将会定位到第一个匹配的文本,接着可以用Alt+W来定位到下一个匹配的文本。

    翻页:

    • Ctrl+Y到上一页
    • Ctrl+V到下一页

    保存:Ctrl+O

    退出:Ctrl+X

    提示:如果你修改了文件,下面会询问你是否需要保存修改。输入Y确认保存,输入N不保存,按Ctrl+C取消返回。如果输入了Y,下一步会让你输入想要保存的文件名。如果不需要修改文件名直接回车就行;若想要保存成别的名字(也就是另存为)则输入新名称然后确定。这个时候也可用Ctrl+C来取消返回。

    💧cat命令

    语法:cat [选项][文件]

    功能: 将目标文件里面的内容打印出来,让用户不用进入这个文件就可以查看文件里面的内容,更加的方便。

    常用选项:

    • -b 对非空输出行编号。
    • -n 对输出的所有行编号。
    • -s 不输出多行空行。

    举例:

    提示:我们学完上面的nano命令后,我们就可以往文件里面写东西了。下面用我写的一个test.c文件来测试cat命令

    ee832ea0c7674b37b83c0ee16cfcfd74.png

    我们再用cat命令来查看 

    cat test.c

    643f154f7b9542b985b4df281e2ca9ab.png

     

    cat -b test.c

    e125cc0040b8430db12f1153ac966ce5.png

     

    cat -n test.c

    d1646aacc41c45328ee192a8516cc822.png

     

    cat -s test.c

    437bd0f40bf4456b99db3b7d0c5030db.png

      

    额外补充:说完cat命令后,我们就不得不说说tac命令,相信细心的小伙伴已经发现了,tac命令就是将cat命令倒着写的,所以tac命令的作用就是将文件内容倒着打印出来。

    举例:我们还是以上面的test.c文件来测试

    3317dbf4715d4a84bc4fb30db939e0d9.png

     

    💧echo命令

    介绍:由于本文章主要讲解入门知识,所以我们只讲最基础的echo命令,让大家更快上手。

    功能1:相信绝大多数程序员人生中的第一个程序都是“Hello world”,而在 Linux 中,这个程序是由 echo 命令来完成的。当你需要在屏幕上显示一些提示信息时,你就需要 echo 的帮忙。

    举例:

    echo "hello world"

    418fbbbd96054e9c9f713e0291f30998.png

     这就是echo的第一个功能,将你想要显示的的信息打印在屏幕上,只用在 echo 后面加上想要显示的内容就好了。

     

    功能2:使用 ">" 和 ">>" 运算符,将echo后面的内容写入目标文件。

    举例:

    首先我们看见当前目录下什么文件都没有

    c1cc31a4bea6483a97571a75511a9029.png

    然后我们利用 ">" 运算符,写内容到目标文件。

    echo "hello world" > file.txt

    e257211440d843ca8011057d0f38af97.png

    这里我们发现,用了 ">" 运算符后,echo没有直接把 "hello world" 打印在屏幕上,而是将 "hello world"  写进了 file.txt 这个文件。

     

    介绍 ">" 运算符:">" 表示输出重定向,它的功能是,如果目标文件不存在的话,就创建这个文件(就如上面自动创建 file.txt 文件一样),否则就直接进行访问。访问的时候是从文件的开始,进行覆盖式的写入。

    例如:

    2be6b7e4a4704c60a5c8cd481a26414b.png

     

    介绍 ">>" 运算符:">>" 表示追加重定向,它的功能是,如果目标文件不存在的话,就创建这个文件,否则就直接进行访问。访问的时候是从文件的结尾,进行追加式的写入。

    例如:

    18fb3e61e6934594ad2f694f4a0cade9.png

     总结:无论是输出重定向还是追加重定向,他们的本质都是写入。

     

    额外补充:">" 运算符除了可以跟echo命令一起用,还可和其他命令一起用。

    举例:

    8da498bc14d8476ba3c0983472b67c65.png

    这里 ">" 将本来用cat命令打印到屏幕上面的内容写入到了bak.txt文件里面。

    💧more命令

    语法:more [选项][文件]

    功能:more命令,功能类似 cat。

    常用选项:

    • -n 对输出的所有行编号。
    • -num(num对应数字)只打印num行文件内容。例如:more -5 file.txt
    • q 退出more。

    举例:

    我们先用下面命令写一个10000行的文本(file.txt)。

    count=1; while [ $count -le 10000 ]; do echo "hello world ${count}"; let count++; done > file.txt

    如果大家跟下面显示效果一样,就证明写入成功,如果不一样,需检查一下是否与上面代码一致。

    0188087b859e4865822a312c9b44cd9b.png

     写好文件后,我们这时用cat命令查看,发现cat命令将10000行文件内容全部打印了出来。

    cat file.txt

     用鼠标滚轮往上翻可以查看所有的打印内容。753d6bbc35de4a4183e8002e4a1fb964.png

     

    但是,如果我们不想把文件所有内容都打印出来,只想查看一点打印一点怎么办呢?

    这时我们就需要用到more命令,more命令的功能就是打印文件的内容,当打印满整个屏幕后就不再继续打印了,如果你这时还想继续查看文件后续内容,你可以按回车建,more会帮你一行一行打印。 

    61ff089cba1b4be8a979e5d97f8b57fc.png

    提示:通常more命令用于想一行一行的查看长文本的情况。但是more有个缺点,more只能往下继续查看文本内容,却不能往上翻查看之前打印的内容(当然用鼠标滑动除外,这里将的是用键盘查看内容)。所以我不推荐大家使用more命令查看长文本,而是推荐接下来我们要讲的less命令。

    🔥less命令(重要)

    介绍:

    • less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大。
    • less 的用法比起 more 更加的有弹性。在 more 的时候,我们并没有办法向前面翻, 只能往后面看。但若使用了 less 时,就可以使用 [pageup][pagedown] 等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容!
    • 除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。

    语法: less [参数] 文件

    功能: less与more类似,但使用less可以随意浏览文件,而more仅能向前移动,却不能向后移动,而且less在查看之前不会加载整个文件。

    选项:

    -i  忽略搜索时的大小写。

    -N  显示每行的行号。

    / 字符串:向下搜索“字符串”的功能。

    ? 字符串:向上搜索“字符串”的功能。

    n:重复前一个搜索(与 / 或 ? 有关)。

    N:反向重复前一个搜索(与 / 或 ? 有关)。

    q:退出less。

    举例:

    比如我们想要向下搜索带有999数字的那一行 。我们在less下输入/ 999,然后回车就可以了。

    0e50ecb98030490d80e8a209adbfeaf0.png

    这样我们就搜索到带有999数字的那一行。

    62e31508e241494dba1421b5556b6a65.png

     如果我们还想继续向下搜索带有999数字的那一行,我们按下小写字母n就可以了。

    08d1031372b145a4a2d5bbb7b475de38.png

    总结:less和more命令都只是用来粗看一个大文本的规模和各模块,如果要细看各模块的代码逻辑,我们就必须使用代码编辑器来看。

    💧head命令

    介绍:head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的开头至标准输出中,而 tail 当然就是看档案的结尾。

    语法: head [选项] [文件]

    功能:head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。

    选项:

    • -n 显示的行数(n对应输入的数字)

    举例:

    还是以刚刚的 file.txt 文件举例,默认head命令打印文件的开头10行。

    63f38b6406194f2db9eafc993d4c8f97.png

     打印20行。

    e76964d44e4145f8b2da4590a9c3142f.png

     

    💧tail命令

    介绍:tali命令和上面的head命令相对于,这里就不过多介绍。

    语法:tail命令的语法也和上面的head命令一样。

    功能:tail 用来显示档案的结尾至标准输出中,默认 tail 命令打印其相应文件结尾的10行。(tail命令还有其他许多功能,但是在我们入门阶段基本用不上,所以我们这里就略过,当前就把tail命令当成与head命令相对应的命令就可以了)。

    举例:

    打印 file.txt 文件的后20行内容。

    dca7c7f9b8b440c7a5b6470724a9ae04.png

     小练习:你能否做到只打印出 file.txt 文件里面 [1000行, 1009行] 的内容。(提示:用我们现有的知识就能做到哦)

    方法1:

    1.我们先将 file.txt 文件里面前1009行内容写入临时文件 tmp.txt 中。

    head -1009 file.txt > tmp.txt

    2.我们再用 tail 命令打印出 tmp.txt 文件的最后10行内容。

    tail -10 tmp.txt

    就这样我们打印出了 file.txt 文件里面 [1000行, 1009行] 的内容。

    96a8e64c643048c983d1587bb9d7a214.png

     方法2:

    由于我们的 方法1 需要创建临时文件,如果我们写入的内容太多,会很浪费磁盘空间的,所以我们这里借助 "|"("|" 表示管道,等会儿会解释)来打印出 file.txt 文件里面 [1000行, 1009行] 的内容。

    下面我们先上代码,看看具体效果。

    head -1009 file.txt | tail -10

    053887466f1e4ed9b85b6cc899cd8f09.png

     

     我们看到,当前显示的结果和上面创建临时文件方法的效果一模一样。现在我们就来解释一下 "|" 是什么。

    介绍 "|" :"|" 被称作管道,它就像我们生活中的下水管道一样,用来传输中间数据。我们就拿上面的练习来介绍 "|" 的功能,它可以让head本来该打印在屏幕上的内容输入到管道中,并让 tail 本来该在文件里面读取数据,而让其在管道里面读取数据。管道就像上面的临时文件tmp.txt 一样,但是管道是内存级的文件,不会占用磁盘空间。有了管道后,我们刚刚的练习就只需一条命令就可以完成,而且全都是在内存上完成的,不会占用磁盘空间。

    💧date命令

    语法:date [选项] [+格式]

    功能:显示时间

    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

    举例:

    直接用date命令。

    date

    d9f4c66a3432449aa2dc3432481f435d.png

     直接用date命令,我们发现显示的格式有点乱,所以我们可以自己设置显示格式。

     

    date +%Y:%m:%d-%H:%M:%S

    3e884a2603fb4166ae9ad439b153e2aa.png

    设置了显示格式后,就可以让我们更清晰的看时间了。 

     

    提示:中间的分隔符是可以我们自己设置的,比如说

    date +%Y/%m/%d-%H:%M:%S

    8405088752d045d7b397f037f401c57e.png

     

    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.时间戳(重要):

    时间->时间戳:date +%s(注意:这里的小写字母s)

    举例:

    2e41735236ab48778ae7a4d2c926de97.png

    我们这里就得到了一个时间戳,这个时间戳是从1970年1月1日(UTC/GMT的 午夜)开始,到现在所经过的秒数,不考虑闰秒。

    时间戳->时间:date -d@1662100637

    7ddeda5e7f5f42198af34e7cf1c7f4ea.png

     我们这里将时间戳转换成的时间就是当前的时间,当然我们这里也可以自己设置显示格式。

    date +%Y/%m/%d-%H:%M:%S -d@1662100637

    3ce491f471754fa283dc13f4b9a63758.png

     额外补充:

    如果你将 0 这个时间戳转化成时间的话,你会发现并不是1970年1月1日的午夜,而是8:00,这是因为国外与我们国家是有时差的,他们那里的午夜就是我们这里的8:00。

    date +%Y/%m/%d-%H:%M:%S -d@0

    f642a19c97904bdeb7df6741363e19b1.png

     

    💧cal命令

    介绍:cal命令可以用来显示公历(阳历)日历。公历是现在国际通用的历法,又称格列历,通称阳历。“阳历”又名“太阳 历”,系以地球绕行太阳一周为一年,为西方各国所通用,故又名“西历”。

    命令格式: cal [选项][月份][年份]

    功能: 用于查看日历等时间信息,如只有一个参数,则表示年份(1-9999),如有两个参数,则表示月份和年份。

    常用选项:

    • -3 显示系统前一个月,当前月,下一个月的月历。
    • -j  显示在当年中的第几天。(一年日期按天算,从1月1号算起,默认显示当前月在一年中的天数)
    • -y  显示当前年份的日历。

    举例:

    cal 2022

    be8f7bd6d6d3437085ea02b879705aaf.png

     

    cal -3

    fd1bf3173cab4411b7a773a7758c2744.png

     

    cal -j

     1bcaa2c86d064239b56a1ac88ebcac48.png

     

    🔥find命令(非常重要)

    语法: find [目录] [选项]

    功能: 用于在文件树种查找文件,并作出相应的处理(可能访问磁盘)

    常用选项:

    • -name   按照文件名查找文件。(由于find的选项太多了,并且我们这里主要讲的是入门命令,所以不可能在这一篇文章里面把find的所有选项给讲完,我们这里只讲最常用且最重要最简单的一个选项 -name)

    举例:

    比如我们想要在我们的家目录下寻找名为 file.txt 的文件。

    find ~/ -name file.txt

    82ea11de649349d7bdf5872564e559f0.png

     就这样 find 帮我们找到了所有名为 file.txt 的文件所在位置。

    💧which命令

    讲前补充:

    1. 我们已经讲了这么多常用命令了,那么该如何看待 Linux 下的各种命令呢?其实这些命令的本质就是 可执行程序。(又被称为工具、命令、指令)
    2. 我们在 Windows 下打开一个软件,其实这个软件的本质就是一个可执行程序,例如我们用的浏览器,其实本质是一个以 ".exe" 结尾的可执行程序。

    829087e9fd7748e78807d7621b4328fc.png

    我们将其所在路径复制下来。

    72823b2b10fc4abeb11fd63c05b9302f.png

     

     我们打开我的电脑,进入这个目录,就发现了我们的浏览器。017f2cabdcab45df962e210b853f4a36.png

     

    我们这时候双击一下它,发现照样可以运行。

    cf2189799baf4d2c8d6ea3355cfbcdcd.png

     

    总结:说了这么多,我其实就是想告诉大家,Linux下的各个命令其实就是一个个可执行程序。在比如说我们编写的C/C++代码,经过编译器编译后,就会形成一个以 ".exe" 结尾的可执行文件,这个可执行文件在定位上其实跟上面的可执行程序是一样的。那么我们自己也可以在Linux下写几个命令给我们自己用。再比如说,其实所谓的安装一个软件,也就是将别人编译好的可执行程序拷贝到我们自己的路径下。而我们要运行这个程序的时候也会分成两步,第一步是找到这个程序,第二步当然就是运行这个程序了。在Windows下我们安装完一个软件后它就会自动在我们桌面上创建一个快捷打开方式,它的作用就是第一步的找到这个程序,很多人以前删除软件就是直接把软件快捷打开方式的图标给拖进回收站就完了,其实这只删除了找到文件这一步,删除并不完全。

     

    which功能:经过上面的铺垫,我们就可以说说which命令的功能了,它的功能也就是上面运行程序的第一步,找到这个可执行文件所在的绝对路径。

    语法:which [文件...]

    举例:

    which ls

    509bcd69655e4f2ba5dd638dbf15d45e.png

    我们用which命令就找到了ls命令所在位置就是在 /usr/bin 里面。

    which pwd

    bd96f8c396d047d695491984ad60f098.png

     我们用which命令就找到了pwd命令所在位置也是在 /usr/bin 里面。

    由于运行一个可执行程序分为找到程序和运行程序这两步,所以我们在用一个命令的时候,带着它所在路径也可以,比如:

    29ed3af5150348b79978a96ae516ce11.png

    额外补充1:

    我们观察发现,which在查找pwd时,就直接打印了它的路径;而在查找ls时,却多打印了一行内容 alias ls='ls --color=auto',这里我就要为大家解释,为什么会多打印这一行内容。

    f727b85f30834488beea3f0778cd0224.png

    简单介绍alias命令:

    功能:给一条命令取别名。

    语法:alias 别名='命令'

    举例:

    这里我们给 ls -al 命令取别名为 yanhuo,取完别名后,我们以后就可以直接把别名 yanhuo当成命令ls -al 用了。

    1. alias yanhuo='ls -al'
    2. yanhuo

    6e78ff6a1fbc443c8e00503720736ab1.png

     这里我们再用which命令查找别名 yanhuo,你就会明白为什么刚才用 which 查找 ls 会多一行内容了。

    which yanhuo

    e8eaa804b47a4b95afd04252a2e0ffd4.png

    这里多的一行内容就是在给你解释,yanhuo 是 ls -al 命令的别名。

     提示:起别名只在这一次登录有效,下次登录就不能用这个别名了。如果你想要让这个别名一直有效,就必须将上面起别名的那行命令放在启动脚本上,但这都是后面的事情了,本文章只讲入门阶段的知识。

     

    额外补充2(了解):

     这里我们可以再补充一个命令,它就是 whereis 命令,它的作用比which命令多一点。我们以ls举例,whereis会找到ls这个可执行文件,并且找到所有包含ls内容的文件。

    例如:

    whereis ls

    c1bba5991c2b4a4d8f7a316becb32ae9.png

    💧grep命令

    语法: grep [选项] [要搜寻的字符串] [文件]

    功能: 在文件中搜索字符串,将找到的行打印出来。

    常用选项:

    -i 忽略大小写的不同,所以大小写视为相同。

    -n 顺便输出内容在文件里面的行号。

    -v 反向选择,亦即显示出没有 '搜寻字符串' 内容的那些行。

    举例:

    我们还是以上面写的长文本 file.txt 来举例。

    grep -n '888' file.txt

    cfec9109ef2542b3aa344fa3dbe6242c.png

     这是不是很方便就找到了 file.txt 文件里面包含数字888的那些行,并且连它们所在行号都帮你打印出来了,这就是为什么我们不经常用more和less里面的搜索功能的原因,用grep不香吗?

    在这里我们还可以使用一些组合命令,来达到对文本内容的过滤:

    grep -n '888' file.txt | tac | head -3

    我们将 file.txt 文件里面含有888数字的所有行取出来并逆置,最后打印前三行在屏幕上。

     

    07c03caccf8449d5a146610ccf91837c.png

    💧xargs命令

    功能:将管道的输出结果,作为命令行参数,交给后面的程序。

    举例:

    不加xargs的效果。

    echo "-l -a -i" | ls

    我们发现只执行了ls命令,ls并没有读取管道里面的内容,因为ls是不会读取数据的。

    40d36b148af44aeebcbf1f3b18131c07.png

     加上xargs的效果。

    echo "-l -a -i" | xargs ls

    我们在ls前面加上xargs后,xargs就将管道的输出结果,作为命令行参数传给了ls,使这里执行的命令为 "ls -l -a -i"。

    34e72dcf998b48fd917d69329376e047.png

     

    💧zip/unzip命令

    介绍打包和压缩:

    1.是什么?

    打包:将所有文件/目录放在一起。(就好比你要出远门,需要带很多东西,这时你爸就会把你需要用到的所有东西都装在一个包里面,方便带走)

    压缩:采用某种压缩算法,压缩已经打包好的文件的存储空间。(就好比你上面出远门,结果你爸给你装了太多东西在一个包里面,导致这个包的体积太大,不好带走,这时你爸就会把这个包里面的空气抽干,让这个包的体积变小,方便你带走)

    提示:现在大部分压缩软件都是将打包和压缩合在一起进行的。

     

    2.为什么?

    便于传输,或者归档,防止文件在传输过程中丢失。(就像你出远门,当然是将行李打包压缩后才方便带走)

     

    3.怎么办?

    这里主要讲zip、unzip和tar两种方案。

     

    语法: zip [选项] [压缩文件.zip] [目标目录或文件]

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

    常用选项:

    -r 递归处理,将指定目录下的所有文件和子目录一并处理

    举例:

    我们先创建一个project目录,并将当前目录下所有文件都移动到project目录下。

    c9c1215f229d426eac37b63ae8e22aae.png

     

    下面我们就来将project目录给压缩。

    zip pro.zip project

    压缩完后我们用ll命令查看,明显观察到压缩后的文件要比没压缩前小很多。

    a11ab966c51b4f1e8e75c163b7c4fca0.png

     我们学会压缩后,接下来就再解压试试。

    解压我们需要用到unzip命令:

    语法:unzip [压缩文件.zip] [选项]...

    常用选项:

    • -d [目录] 指定文件解压缩后所要存储的目录。(不加-d选项就默认解压在当前目录)

    那么我们再创建一个tmp目录,将pro.zip解压在tmp目录下。

    unzip pro.zip -d tmp

    17a5bb32ee234572be8d049986954890.png

     但是我们发现解压后project目录下并没有任何文件,这是为什么呢?原因就是,zip命令默认是只将目录给打包压缩,并不会将目录里面的子目录或者文件给打包压缩,如果想将子目录或文件给打包压缩的话需要加上 -r 选项,就跟前面用rm命令删除目录一样必须加上 -r 选项一样。

    所以我们下面再来压缩一次试试,这次我们加上 -r 选项。

    zip -r pro.zip project

    这就是压缩完后的效果。

    35a2a16ea944420584d02762342e989e.png

     下面我们再重新将 pro.zip 文件解压到 tmp 目录下。

    unzip pro.zip -d tmp

    我们发现,这次就成功解压出来了我们压缩的所有文件及目录,所以在压缩目录的时候一定要记得加 -r 选项哦。

    aa0fd60eca8a461b82279c519d1eb987.png

     

     

    🔥tar命令(重要)

    介绍:tar命令是一个十分常见的将 文件/目录 打包压缩的一个命令,但是由于tar命令的选项太多,导致用起来有点恶心。但是大家不用担心,由于这是入门阶段,所以我直接给大家提供两套选项方案,让大家可以快速上手,可以不用太深入了解细节,因为这些都是在后期学习中慢慢摸索的。

    选项:

    -c :建立一个压缩文件的参数指令(create 的意思)。

    -x :解开一个压缩文件的参数指令。

    -t :查看 tarfile 里面的文件(以'' .tar ''结尾的文件)。

    -z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩或解压?

    -j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩或解压?

    -v :压缩的过程中显示文件(也就是显示压缩过程)!这个常用,但不建议用在背景执行过程。

    -f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!(一般都是写在所有选项的最后)

    -C : 解压到指定目录

     

    使用方法:

    1.打包并压缩方案:tar [-czvf] [压缩后的文件名.tgz] [目标文件/目录]

    提示:

    • 这里打包压缩完后的文件名后缀为 ".tgz",它是 ".tar.gz" 的简写,tar表示打包的意思,gz表示压缩的意思,如果你想写完整也可以写成 ".tar.gz" 。
    • 如果不是特殊情况最好把v选项去掉,因为如果该文件太大了,打印压缩的过程也是挺费时间的。

    举例:

    我们还是以上面创建的project目录来举例。

    tar -czvf pro.tgz project

    这样就压缩好了。

    提示:tar命令会自动将该目录下的子目录以及文件都一起打包压缩。

    e7e711da0ee147b3a64fefb6c3ae4275.png

     

    2.解压方案:tar [-xzvf] [需要解压的文件] [-C] [需要解压到的目录]

    提示:解压只需将压缩选项里面的 c 换成 x 即可,如果想要解压到别的目录下,需要额外添加 -C 选项,默认是解压到当前目录下。

    举例:

    将压缩好的 pro.tgz 文件解压到 tmp 目录下。

    tar -xzvf pro.tgz -C tmp

    这样就解压成功了。

    4c645ddcb2894844bf6bc53c0ffc9459.png

    总结:我们主要讲解了tar的打包压缩和解压这两套方案,在入门阶段算是够有了。注意我们这里讲的是打包和压缩一起进行的方案,这样更方便入门阶段的操作,后面有机会我会为大家详细讲解tar命令的。

    💧bc命令

    功能:bc命令可以很方便的进行浮点运算(就相对于Linux下的一个计算器)

    举例:

    我们输入bc后就进入了这个界面,在这个界面里面,就可以输入数字和运算符,让bc给你计算结果。当你想退出的时候输入quit就可以了。

    a826fe9bb2414f2eb463910350e7cf92.png

     bc还可以这样用:

    echo "1+2+3+4+5+6"

    我们知道,当我们直接用echo "1+2+3+4+5+6" 的时候,echo会直接将这个字符串打印在屏幕上。

    7b57ba45338749988682ad129c216c49.png

     

    但是如果我们通过管道,将这个字符串传给bc的话,又会发生上面呢?

    echo "1+2+3+4+5+6" | bc

    a0cc60e2a731451986db8c856bd9cd7b.png

     我们发现,bc通过管道读取到了字符串 "1+2+3+4+5+6" ,并将计算结果打印了出来,这就是bc的另外一种用法。

    💧uname命令

    语法:uname [选项] 

    功能: uname用来获取电脑和操作系统的相关信息。(比如Linux的体系结构,以及内核版本)

    补充说明:uname可显示linux主机所用的操作系统的版本、硬件的名称等基本信息。

    常用选项:

    • -a或–all 详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类 型,硬件平台类型,操作系统名称。
    • -r或--release 只显示操作系统的发行编号(内核版本)。

    举例:

    uname -a

    d7d8b21df41e4c5b8f1db08183b70d86.png

    这里的 3.10.0-1160.53.1.el7 就是Linux的内核版本,x86_64 就是Linux的体系结构(实际上是cpu的体系结构),这里的64表示所用的计算机是64位的,有的地方把x86_64简写成x64,把x86_32简写成x86。

     

    如果你只想查看内核版本就用 -r 选项。

    uname -r

    dd4f77ceb66a429282090d0dae36f426.png

     

     在我们Windows下也可以在我的电脑的属性里面查看自己电脑上的体系结构和内核版本。

    dfbe2055d0ea439fa09b3b39e024cc9d.png

     

     

    🔥重要的几个热键(重要)

    • ctrl + c 终止异常命令(比如你写了一个死循环程序,你想让他停下来,用 ctrl + c 就可以让该程序停下来)。
    • Tab按键 具有 “命令补全” 和 “档案补齐” 的功能。

    举例:

    假如我们输入whi,我们这时快速按两下Tab键,系统就会将所有以whi开头的命令打印出来。

    8ec070b189e840e2ba61259831599598.png

    如果我们这时再多输入一个c,即输入whic,这时再按一下Tab键,系统就会自动给我们补齐这条命令。同样,我们在输入文件/目录名的时候,也可以按两下Tab键列出所有以这个字符串开头的文件/目录,按一下Tab键自动补全文件/目录名。

    • ctrl + d 快速退出当前登录。
    • ctrl + r 查看历史输入过的命令。(假如你以前输入过一条很长的命令,这时你难得再敲一遍了,你就可以先 ctrl + r 进入查找模式,然后输入这条长命令的片段,系统就会帮你找到与之对应的命令)
    • 上下按键:通过按上下键可以找到上面一条你写过的命令,和你下面一条写过的命令。

    💧history命令

    功能:能够显示出当前用户输入过的所有命令。

    💧关机

    语法:shutdown [选项]

    -h  将系统的服务停掉后,立即关机。

    -r 在将系统的服务停掉之后就重新启动。

    -t 秒数  -t 后面加秒数,亦即 “过几秒后关机” 的意思.


    🌵总结

    到这里 Linux常用的基本命令(下)就结束了,大家可以自己去动手敲一敲这些命令,加深一下印象。如果大家有什么解决不了的问题,欢迎大家评论区留言或者私信告诉我。如果感觉对自己有用的话,可以点个赞或关注鼓励一下博主,我会越做越好的,感谢各位的支持。

     

  • 相关阅读:
    Vue+GoJS使用初步(1)
    nodejs+vue交友推荐系统的设计与实现-微信小程序-安卓-python-PHP-计算机毕业设计
    PaddleOCR安卓Demo存在的问题
    Spring面试题
    使用 pnpm 管理全栈、多包 monorepo
    M4a文件解析(一)---某些播放器不能播放m4a(如炬芯播放器)
    自动化办公02 用openpyxl库操作excel.xlsx文件(新版本)
    咖啡技术培训:传统意式咖啡菜单制作配方及流程
    Java错题归纳day11
    toString&equals&hashcode
  • 原文地址:https://blog.csdn.net/qq_64042727/article/details/126566927