首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

【Linux】Linux指令进阶:从新手到高手的必备命令

  • 25-03-03 01:03
  • 3165
  • 13817
blog.csdn.net

在这里插入图片描述

Linux相关知识点可以通过点击以下链接进行学习一起加油!
初识指令

让我们继续踏上Linux学习之旅!在这篇文章中,我将延续上篇内容,深入讲解一些基础指令。欢迎大家观看!

一、输出输入指令

1.1 cat指令

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

【功能】:查找目标文件的内容,跟打印一样

【常用选项】:

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

在这里插入图片描述

【-s指令压缩空格】

【注意】:选项是可以多选项的

在这里插入图片描述

1.2 tac指令

同cat指令为查看目标文件的内容,不过是倒置查看

在这里插入图片描述

无论是cat指令还是tac指令,适用于查看短一些的小文件

1.3 echo指令

用于在终端显示一段文本或变量的值,也可以配合输出重定向用来创建文件向文件中写入内容

在这里插入图片描述

1.4 输出重定向 >

【输出重定向功能】:

  • 本来应该显示在显示器上的数据,显示到文件中
  • 清空文件、创建文件(每次进行重定向,都会清空文件后在写入文件内容)
  • 创建一个空文件> file 清空一个文件>file

在这里插入图片描述

【Linux理念】

Linux中一切即文件,意味着Linux可以统一的方式进行文件/设备访问。好处就是可以让操作系统以统一的一套方案来管理所有软件。

【普通文件 vs 显示器】

对于任何文件来讲,无非就是对文件进行读写文件操作

对于显示器设备->显示器文件->向显示器文件进行写入

在这里插入图片描述

1.5 追加重定向>>

不会清空文件内容在该基础上,追加输入内容。

在这里插入图片描述

1.6 输入重定向 <

本来应该从键盘文件中读取 ,改为从普通的log.txt文件中读取

在这里插入图片描述

在这里插入图片描述

这两个虽然都能打印,但是本质不是一样的。

【重定向总结】

  • 【输出重定向】:command > filename

  • 【追加重定向】:command >> filename

  • 【输入重定向】:command < filename

二、查看大文件指令

查看日志具有多方面的好处,尤其是在操作系统、应用程序或网络设备的管理和故障排除过程中。以下几个指令推荐使用来查看大文本(日志)

【创建大文件】 (具体细节先不管)

# i=1; while [ $i -le 10000 ]; do echo "hello Linux $i"; let i++; done > big.txt

在这里插入图片描述

2.1 more指令

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

【功能】: more命令功能类似cat,支持查找大文件

【常用选项】:

  • -n 对输出的所有行编号
  • -q 退出more

more可以打满一屏输出就停下来,让用户下翻逐行进行阅读,但是不适合使用大文本,比如查看日志,逐行查看会很废时间。

对于↑↓健一般没啥用,只能通过回车执行下翻,其实我们并不怎么推荐这个指令,更加推荐下一个指令

2.2 less指令

【语法】:less [参数] 文件

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

【常用选项】:

  • [-i ]:忽略搜索时的大小写
  • [-N] :显示每行的行号
  • [/]字符串:向下搜索“字符串”的功能
  • [?]字符串:向上搜索“字符串”的功能
  • [n]:重复前一个搜索(与 / 或 ? 有关)
  • [N]:反向重复前一个搜索(与 / 或 ? 有关)
  • [q] :quit退出

less工具也是对文件或其他输出进行分页显示的工具,应该说是Linux正统查看文件内容的工具,功能极其强大。不同于more只能向前面翻看,less更加具有弹性可以借助↑↓键查看一个文件的内容。

像这样子大文件,比如说日志,做好日志记录,也是很重要的,能帮助我们解决很多问题,就来程序来说,如果程序出现BUG,通过日志定位问题是一种高效的方法

在这里插入图片描述

【/与-i选项配合使用】

这里我们使用/和-i参数配合演示下,将忽略搜索时的大小写和向下搜索“字符串”的功能配合起来。

  1. less -i filename
  2. 输入[ / ]进行字符串向下查找

在这里插入图片描述

在这里插入图片描述

2.3 head指令

【语法】:head [参数]… [文件]…

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

【选项】:如果你想显示不同数量的行数,可以使用 -n 选项

在这里插入图片描述

2.4 tail指令

【语法】:tall [必要参数] [选择参数] [文件]

【功能】:默认tail命令打印其指定文件末尾内容的末尾10行。不指定文件按时,作为输入信息进行处理。常用查看日志文件

【选项】 :

  • f 循环读取
  • 如果你想显示不同数量的行数,可以使用 -n 选项

【问题:如何得到文件内容5000~5100行间的内容。】

那么我们可以借助head和tail指令配合-n实现,如下先创建一个文件tmp,将前5100行重定向输出到tmp文件,在对文件执行tail指令读取前后100个文件。

在这里插入图片描述

【这里存在一个致命的缺点】:它需要创建临时文件进行中转。那么简单了解下管道的用法,在后继会详细介绍的。

使用管道在显示器上倒着打印5000~5100行内容。管道可以进行【多指令级联】,流水线作业,就是跟打连招一样。

在这里插入图片描述

三、时间相关指令

3.1 date指令

data 指定格式显示时间: 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.时间戳 (单调递增的时间)

时间->时间戳: date +%s

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

Unix时间戳(英文为Unix epoch, Unix time, POSIX time 或 Unix timestamp)是从格林威治的1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。至于从八点开始,由于我们使用的是北京时间,处于东八区处在时差。

3.2 Cal指令

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

【语法】: cal [参数] [月份] [年份]

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

【常用选项】:

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

在这里插入图片描述

在这里插入图片描述

在windows下自带查看日历的工具,如果在Linux想看下日历可以使用cal指令

四、查找文件指令

4.1 find 指令(非常重要)

【语法】: find pathname -options

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

【常用选项】: -name 安按照文件名查找文件,是真正的在系统的树形结构中进行文件查找

Linux下find命令提供了相当多的查找条件,功能很强大。由于find具有强大的功能,所以它的选项也很多,其中大部分选项值得我们花时间了解一下。

即使系统中含有网络文件系统(NFS),find命令在该文件系统中同样有效,只你具有相应的权限,在运行一个非常销毁资源的find指令时,很多人都倾向于它放在后台执行,因为遍历一个大文件系统可能会花费很长的时间(这里是指30G字节以上的文件系统)。第二次是使用find查找指定目录比第一次查找会比较快。

【find指令使用】

这里具体运用,在当前目录及其子目录中查找名为"file1.txt"的文件

在这里插入图片描述

4.2 grep指令

【语法】:grep [选项] 搜查字符串 文件

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

【常用选项】:

  • -i :忽略大小写的不同,所以大小写视为相同
  • -n :顺便输出行号
  • -v :反向选择,亦即显示出没有 ‘搜寻字符串’ 内容的那一行

在这里插入图片描述

五、打包与压缩指令

【打包和压缩是什么?】

比如你上学需要装东西,打包好比拿一个麻袋装起来,而压缩就是先把东西整理好再放进去。

【打包和压缩作用】

  1. 缩小体积,占据磁盘空间比较小,下载速度快
  2. 不会轻易的丢失文件
  3. 便于网络传输

5.1 zip/unzip指令

【语法】:zip压缩文件[zip目录或文件]

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

【常用选项】:-r 递归处理,将指定目录下的所用文件和子目录一并处理

【场景使用】:zip/unzip进行对文件的压缩和解压操作
【出现空目录情况】:
在这里插入图片描述

对于压缩dir目录到解压dir目录中,导致解压出来一个空目录情况,是由于压缩dir目录时,没有使用-r递归处理,将指定目录下的所有文件和子目录一同压缩到.zip文件中。

在这里插入图片描述

在压缩过程中压缩文件可以取名,但是.zip后缀是固定的(不同压缩指令,有不同后缀),在解压到指定目录下,如果不存在该目录,会自动创建目录。

【通配符*使用】

如果需要将零散的文件全部压缩,这里可以使用通配符*会比较方便。

在这里插入图片描述

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

【语法】:tar [-cxtzjvf] 文件与目录 …参数

【常用选项】:

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

这里通过常见的选项组合在一起使用,打包选项cvzf、解包选项xvzf

在这里插入图片描述

【案例】 (剩下指令有需要看):

范例一:将整个 /etc 目录下的文件全部打包成为 `/tmp/etc.tar`
[root@linux ~]# tar -cvf /tmp/etc.tar /etc<==仅打包,不压缩!
[root@linux ~]# tar -zcvf /tmp/etc.tar.gz /etc <==打包后,以 gzip 压缩
[root@linux ~]# tar -jcvf /tmp/etc.tar.bz2 /etc <==打包后,以 bzip2 压缩
特别注意,在参数 f 之后的文件档名是自己取的,我们习惯上都用 .tar 来作为辨识。
如果加 z 参数,则以 .tar.gz 或 .tgz 来代表 gzip 压缩过的 tar file ~
如果加 j 参数,则以 .tar.bz2 来作为附档名啊~
上述指令在执行的时候,会显示一个警告讯息:
『`tar: Removing leading `/" from member names`』那是关於绝对路径的特殊设定。

范例二:查阅上述 /tmp/etc.tar.gz 文件内有哪些文件?
[root@linux ~]# tar -ztvf /tmp/etc.tar.gz
由於我们使用 gzip 压缩,所以要查阅该 tar file 内的文件时,就得要加上 z 这个参数了!这很重要的!

范例三:将 /tmp/etc.tar.gz 文件解压缩在 /usr/local/src 底下
[root@linux ~]# cd /usr/local/src
[root@linux src]# tar -zxvf /tmp/etc.tar.gz
在预设的情况下,我们可以将压缩档在任何地方解开的!以这个范例来说,
我先将工作目录变换到 /usr/local/src 底下,并且解开 /tmp/etc.tar.gz ,
则解开的目录会在 /usr/local/src/etc 呢!另外,如果您进入 /usr/local/src/etc
则会发现,该目录下的文件属性与 /etc/ 可能会有所不同喔!

范例四:在 /tmp 底下,我只想要将 /tmp/etc.tar.gz 内的 etc/passwd 解开而已[root@linux ~]# cd /tmp
[root@linux tmp]# tar -zxvf /tmp/etc.tar.gz etc/passwd
我可以透过 tar -ztvf 来查阅 tarfile 内的文件名称,如果单只要一个文件,
就可以透过这个方式来下达!注意到! etc.tar.gz 内的根目录 / 是被拿掉了!

范例五:将 /etc/ 内的所有文件备份下来,并且保存其权限!
[root@linux ~]# tar -zxvpf /tmp/etc.tar.gz /etc
这个 -p 的属性是很重要的,尤其是当您要保留原本文件的属性时!

范例六:在 /home 当中,比 2005/06/01 新的文件才备份
[root@linux ~]# tar -N "2005/06/01" -zcvf home.tar.gz /home

范例七:我要备份 /home, /etc ,但不要 /home/dmtsai
[root@linux ~]# tar --exclude /home/dmtsai -zcvf myfile.tar.gz /home/* /etc

范例八:将 /etc/ 打包后直接解开在 /tmp 底下,而不产生文件!
[root@linux ~]# cd /tmp
[root@linux tmp]# tar -cvf - /etc | tar -xvf -
这个动作有点像是 cp -r /etc /tmp 啦~依旧是有其有用途的!
要注意的地方在於输出档变成 - 而输入档也变成 - ,又有一个 | 存在~
这分别代表 standard output, standard input 与管线命令啦!
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43

在这里插入图片描述

按照上面的说法,这个压缩包用来便于网络传输的,那么这里我们操作两台Linux下进行信息的互传,需要使用rz和scp指令(这里仅当了解)

在这里插入图片描述

六、其他指令

6.1 bc指令

bc命令可以很方便的进行浮点运算(计算器)

在这里插入图片描述

6.2 uname -r指令

【语法】: uname [选项]

【功能】: uname用来获取电脑和操作系统的相关信息

【补充说明】:uname可显示Linux主机所用的操作系统版本,硬件的名称的基本信息

【常用选项】:-a或–all 详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称 。(32位以下的软件可以兼容64位,但是64位上32位以下软件不能跑)

在这里插入图片描述

七、热键

  • [Tab]按键—具有『命令补全』和『档案补齐』的功能
  • [Ctrl]-c按键—让当前的程序『停掉』
  • [Ctrl]-d按键—通常代表着:『键盘输入结束(End Of File, EOF 戒 End OfInput)』的意思;另外,他也可以用来取代exit

八、关机指令

【语法】: shutdown [选项]

【常见选项】:

  • [-h] : 将系统的服务停掉后,立刻关机
  • [-r ]: 在将系统服务停掉之后重新启动
  • [-t sec ]: -t 后面加秒数,亦即『过几秒后关机』的意思

九、扩展命令

  • 【安装和登录命令】: login、 shutdown、 halt、 reboot、 install、 mount、 umount、 chsh、 exit、 last;
  • 【文件处理命令】: file、 mkdir、 grep、 dd、 find、 mv、 ls、 diff、 cat、 ln;
  • 【 系统管理相关命令】: df、 top、 free、 quota、 at、 lp、 adduser、 groupadd、 kill、 crontab;
  • 【 网络操作命令】: ifconfig、 ip、 ping、 netstat、 telnet、 ftp、 route、 rlogin、 rcp、 finger、 mail、 nslookup;
  • 【系统安全相关命令】: passwd、 su、 umask、 chgrp、 chmod、 chown、 chattr、 sudo ps、 who;
  • 【其它命令】: tar、 unzip、 gunzip、 unarj、 mtools、 man、 unendcode、 uudecode。

在这里插入图片描述

以上就是本篇文章的所有内容,在此感谢大家的观看!这里是Linux笔记,希望对你在学习Linux旅途中有所帮助!

欢迎各位商业合作或学习交流
微信名片
注:本文转载自blog.csdn.net的是店小二呀的文章"https://blog.csdn.net/2302_79177254/article/details/142771298"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2491) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top