Linux - 常用基础指令和命令

news2024/11/15 18:34:06

文章目录

    • 1、ifconfig指令
    • 2、ssh指令
    • 3、ls指令
    • 4、pwd命令
    • 5、cd 指令
    • 6、stat命令
    • 7、 touch指令
    • 8、mkdir指令
    • 9、rmdir指令
    • 10、rm指令
    • 11、man指令
    • 12、cp指令
    • 13、mv指令
    • 14、cat指令
    • 15、more指令
    • 16、less指令
    • 17、head指令
    • 18、tail指令
    • 19、时间相关的指令
    • 20、cal指令
    • 21、find指令
    • 22、grep指令
    • 23、zip/unzip指令
    • 24、tar指令
    • 25、bc指令
    • 26、echo 命令


1、ifconfig指令

(1)显示所有接口的信息。

ifconfig

此命令将列出系统上所有网络接口的当前配置,包括它们的IP地址、子网掩码、广播地址等。

(2)显示特定接口的信息

ifconfig eth0

这里eth0是网络接口的名称,替换为你想要查看的接口名称。

2、ssh指令

使用Shell 登陆主机时使用

ssh ip

输入正确的ip后敲下回车就会出现输入用户名与密码。
在这里插入图片描述

3、ls指令

(1)功能

对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。

(2)语法

ls [选项][目录或文件]

(3)常用选项
选项可以组合使用 如 ls -al

-a 列出目录下的所有文件,包括以 . 开头的隐含文件。
-d 将目录象文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录
-i 输出文件的 i 节点的索引信息。如 ls –ai 指定文件
-k 以 k 字节的形式表示文件的大小。ls –alk 指定文件
-l 列出文件的详细信息。
-n 用数字的 UID,GID 代替名称。 (介绍 UID, GID)
-F 在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通文件;“/”表示目录;“@”表 示符号链接;“|”表示FIFOs;“=”表示套接字(sockets)。(目录类型识别)
-r 对目录反向排序。
-t 以时间排序。
-s 在l文件名后输出该文件的大小。(大小排序,如何找到目录下最大的文件)
-R 列出所有子目录下的文件。(递归)
-1 一行只输出一个文件

(4)举例
查看当前目录下所有文件

ls -a

查看directory1 目录下的所有文件的详细信息

ls -al directory1

(5)补充
不加选项,只显示当前目录文件/目录名(不包含隐藏文件)。

ls

ls -lll 效果相同。

ls -l  \\ ll

4、pwd命令

(1)功能

显示用户当前所在的目录。

(2)语法

pwd

5、cd 指令

(1)功能

改变工作目录。将当前工作目录改变到指定的目录下。

(2)语法

cd directory(目录)

(3)举例
cd .. 回到上级目录

cd ..

cd ~ 回到用户家目录

cd ~

cd(无参数)。在某些shell中,如果你只输入cd而不带任何参数,它会将你的工作目录改变到你的主目录。

cd

cd - 返回最近访问目录

cd -

cd directory1 :由当前目录跳转至directory1

cd directory1

(4)补充1:路径
Linux系统中,磁盘上的文件和目录被组成一棵目录树,每个节点都是目录或文件。
在这里插入图片描述
理解该树形结构:

1、这个多叉树的叶子节点不是目录就是文件。
2、任何一个父节点可能存在多个子节点。
3、任何一个子节点只有一个父节点。

所以我们从开始定位一个文件或者目录就是唯一的,如:定位test.c/home/bit/test.c,这也叫绝对路径。
当从当前目录定位另一个目录时的路径叫相对路径,如:当前在home目录下,定位etc目录,../etc

(5)补充2:目录中...

1、.(点): 代表当前目录。当你在Linux命令行中执行与文件或目录相关的操作时,. 用来指代你当前所在的目录。例如,如果你想在当前目录下执行一个名为script.sh的脚本,你可以使用./script.sh命令(假设该脚本具有执行权限)。这里的./就是指当前目录。
注意,以.开头的文件或目录在Linux中是隐藏的,使用常规的ls命令不会显示它们,除非使用ls -a命令。

2、..(双点): 代表上级目录,也就是当前目录的父目录。在Linux命令行中,你可以使用…来引用上级目录中的文件或子目录。例如,如果你当前位于/home/user/documents目录下,..就代表/home/user目录。 同样地,使用../的形式可以表示从当前目录开始向上回溯一级或多级目录。例如,cd ../..命令会将你当前的工作目录从/home/user/documents改变到/home/user的上级目录,即/home目录。

6、stat命令

(1)功能

查看文件信息。

(2)语法

stat 文件名

(3)举例

stat test01.txt

在这里插入图片描述
详细信息解释:

1、文件类型:首先,stat会显示文件是常规文件、目录、字符设备、块设备等。
2、文件大小:显示文件占用的字节数(对于目录,这个数字通常很小,因为它只包含文件名和inode链接)。
3、块:文件占用的磁盘块数。磁盘块是文件系统分配空间的最小单位。 IO
4、Block:最优的I/O传输块大小,这通常是文件系统块大小或硬件扇区大小的倍数。
5、硬链接数:有多少文件名链接到该文件的inode。对于常规文件,这通常是1,除非有额外的硬链接。对于目录,这个数字至少为2(.和…)。
6、设备:文件所在设备的编号。 Inode:文件的inode号,inode是文件系统中存储文件元数据的数据结构。
7、权限:文件的权限,分为三组(所有者、组、其他),每组有读(r)、写(w)和执行(x)权限。
8、UID和GID:文件所有者的用户ID(UID)和组ID(GID)。 时间戳: Access:文件最后一次被读取或执行的时间。
9、Modify:文件内容最后一次被修改的时间。
10、Change:文件元数据(如权限或所有权)最后一次被改变的时间,或文件状态被改变的时间(例如,链接到一个目录的条目被删除)。
11、Birth(在某些系统上可能不存在):文件被创建的时间。不是所有的文件系统都支持这一信息。

7、 touch指令

(1)功能

touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。

(2)语法

touch [选项]... 文件..

(3)常用选项

-a 或 --time=atime 或 --time=access 或 --time=use:仅更改文件的访问时间。
-c 或 --no-create:如果文件不存在,则不创建新文件。如果文件已存在,则不执行任何操作(不更新时间戳)。
-d 或 --date=STRING:使用指定的字符串来设置文件的访问和修改时间,而不是使用当前时间。字符串格式通常为YYYY-MM-DD HH:MM[:SS]。
-m 或 --time=mtime 或 --time=modify:仅更改文件的修改时间。
-r 或 --reference=FILE:将指定文件的时间戳(访问时间和修改时间)复制到目标文件。
-t STAMP:使用指定的时间戳来设置文件的时间,时间戳格式为[[CC]YY]MMDDhhmm[.ss]。

(4)举例
创建多个文件

touch test01.txt test02.txt test03.txt

将文件的访问时间和修改时间更新到当前系统时间

touch test01.txt(已经存在的文件) 

将文件的访问时间修改为当前系统时间

touch -a test01.txt

按照时间戳的格式将文件的访问时间和修改时间修改为指定的时间戳

touch -t 202405101111 test01.txt 

8、mkdir指令

(1)功能

在当前目录下创建目录。

(2)语法

 mkdir [选项] dirname... 

(3)常用选项

-p 或 --parents:允许创建多级目录,即如果父目录不存在,mkdir将会创建它。这个选项非常有用,因为它可以一次性创建多个不存在的目录,而不需要逐级创建。
-m 或 --mode=模式:设定权限模式(如755或644),允许在创建目录的同时设定其权限。这与chmod命令类似,但mkdir在创建目录时直接设置权限。

(4)举例
创建一个目录

mkdir directory1

创建多个目录

mkdir directory2 directory3 directory4

递归创建多个目录

 mkdir -p directory5/directory6/directory7

创建一个目录且设置权限为755

mkdir -m 755 directory8

9、rmdir指令

(1)功能

删除一个或多个空目录。

(2)语法

mkdir [选项] dirname... 

(3)常用选项

-p 或 --parents:递归地删除目录,当子目录被删除后,如果父目录变为空,则也一并删除。这个选项非常有用,可以一次性删除多级空目录。
–ignore-fail-on-non-empty:即使某些目录非空也不显示错误信息。默认情况下,如果指定的目录非空,rmdir会失败并显示错误消息。
–ignore-errors:忽略所有错误并继续删除其他目录。这可以用于在批量删除目录时,忽略某些目录因权限等问题导致的删除失败。

(4)举例
删除一个空目录

rmdir directory2

删除多个目录

rmdir directory3 directory4 directory5

递归地删除目录

rmdir -p directory5/directory6  \\当删除directory6后rmdir会尝试删除directory5,如果directory5为空也会删除

当目录不为空时,删除失败不显示信息

rmdir --ignore-fail-on-non-empty  directory9

10、rm指令

(1)功能

可以同时删除文件或目录。

(2)语法

rm [选项][目录或者文件] 

(3)选项

-f(force):强制删除文件或目录,忽略不存在的文件,并且不会询问确认。
-i(interactive):在删除每个文件之前询问用户。
-r(recursive):递归删除目录及其内容。

(4)举例
删除一个文件

rm test01.txt

删除一个目录及其内容

rm -r directory9

11、man指令

(1)功能

查看命令、系统调用、库函数等手册页的实用工具。

(2)安装指令

yum install -y man-pages

(3)语法

man [选项] [命令或函数名]

(4)常用选项

-k 根据关键字搜索联机帮助
num 只在第num章节找
-a 将所有章节的都显示出来,比如 man printf 它缺省从第一章开始搜索,知道就停止,用a选项,当按下q退出,他会继续往后面搜索,直到所有章节都搜索完毕。
num章节:
1 是普通的命令
2 是系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么头文
件)
3 是库函数,如printf,fread4是特殊文件,也就是/dev下的各种设备文件
5 是指文件的格式,比如passwd, 就会说明这个文件中各个字段的含义
6 是给游戏留的,由各个游戏自己定义
7 是附件还有一些变量,比如向environ这种全局变量在这里就有说明
8 是系统管理用的命令,这些命令只能由root使用,如ifconfig

(5)举例
查找ls指令

man 1 ls

查找printf函数

 man 3 printf

12、cp指令

(1)功能

cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息 。

(2)语法

cp [选项] 源文件或目录 目标文件或目录 

(3)常用选项

-f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在
-i 或 --interactive 覆盖文件之前先询问用户
-r递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理
-R 或 --recursive递归处理,将指定目录下的文件及子目录一并处理

(4)举例
将文件test01.txt拷贝给test02.txt ,如果test02.txt不存在就创建test02.txt,存在就对test02.txt进行覆盖

cp test01.txt test02.txt

将文件test01.txt拷贝到目录directory8里,如果directory8中不存在test01.txt就将test01.txt拷贝到该目录里,如果存在就覆盖

cp test01.txt directory8

将目录directory8(包括子目录的内容)拷贝到directory9里,如果directory9不存在就创建再拷贝,如果存在就拷贝到当前目录下

cp -r directory8 directory9

13、mv指令

(1)功能

用来移动文件或者将文件改名。

(2)语法

 mv [选项] 源文件或目录 目标文件或目录

文件与文件:如果目标文件存在,源文件就会覆盖目标文件,如果目标文件不存在,就是给源文件重命名
文件与目录:

(3)常用选项

-i:交互式操作,在覆盖文件之前询问用户。
-f:强制覆盖目标文件,不会询问用户。
-n:不要覆盖任何已存在的文件。
-u:只有在源文件比目标文件新,或者目标文件不存在时,才移动文件。

(4)举例
用源文件:test01.txt,目标文件:test02.txt,如果目标文件存在,源文件就会覆盖目标文件,如果目标文件不存在,就是给源文件重命名

mv test01.txt test02.txt

用源文件:test01.txt,目标目录:directory1,如果目标目录存在,将源文件移到目标目录下,如果目标目录存在且存在与源文件同名的文件,源文件会覆盖目标目录下的同名文件,如果目标目录不存在,此时相当于用目标目录名给源文件重命名

mv test01.txt directory1

用源目录:directory1,目标目录:directory2,如果目标目录存在,将源目录移到目标目录下,如果目标目录不存在,就是给源目录重命名

mv directory1 directory2

14、cat指令

(1)功能

查看目标文件的内容。

(2)语法

cat [选项][文件...]	//可以接受多个文件,没有文件的话从标准输入读取数据

(3)常用选项

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

(4)举例
查看文件test01.txt的内容

cat test01.txt

15、more指令

(1)功能

more命令,功能类似 cat

(2)语法

more [选项][文件]	//可以接受多个文件,没有文件的话从标准输入读取数据

(3)常用选项

+n:从第n行开始显示文件内容。
-n:定义屏幕大小为n行,即每页显示n行内容。
+/pattern:在每个文件显示前搜索该字符串(pattern),然后从该字符串所在行的前两行之后开始显示文件内容。
-c:从顶部清屏,然后显示文件内容,并提示用户如何继续操作(如按空格键继续,按q键退出)。
-d:在显示提示信息时,禁用响铃功能。
-l:忽略Ctrl+l(换页)字符。
-p:通过清除窗口而不是滚屏来对文件进行换页,与-c选项相似。
-s:把连续的多个空行显示为一行。
-u:把文件内容中的下划线去掉。

(4)常用操作

空格键(Space):向下滚动一屏内容。
回车键(Enter):向下滚动一行内容(可以连续按多次以滚动多行)。
b键:往回(back)一页显示内容。
q键:退出more命令。 /字符串:搜索文件中第一次出现的指定字符串,然后定位到该字符串处并显示。
n:重复前一个搜索操作,即搜索文件中下一个出现的指定字符串。
=:输出当前行的行号。
:f:输出文件名和当前行的行号。
V:调用vi编辑器,以便对当前显示的文件内容进行编辑。
!命令:调用Shell,并执行指定的命令。

(5)举例
查看文件test.txt,并且按5行一页查看

more -5 test.txt

(6)补充:|(管道)

管道(Pipe)是一种非常强大的机制,它允许你将一个命令的输出直接作为另一个命令的输入,而不需要将输出保存到文件中。管道使用竖线(|)符号表示。

语法:

command1 | command2 //command1 的输出会被直接传递给 command2 作为其输入。

使用:
more不支持给文件内容编号,解决:先用cat给文件编号再用more

cat -n test.txt | more //" | "为管道

cat -n test.txt输出直接传递给more,作为其输入。

注意事项:

1、管道中的每个命令都是独立运行的,它们之间通过管道传递数据,但彼此之间不知道对方的存在。
2、管道只能处理文本数据。如果你需要处理二进制数据,可能需要考虑其他方法,如命名管道(FIFOs)或套接字(sockets)。
3、管道是单向的,即数据只能从一个命令流向另一个命令。如果你需要更复杂的数据流,可能需要使用其他工具,如 tee(读取标准输入并将其内容输出到标准输出和文件中)或 xargs(构建并执行命令)。

16、less指令

(1)功能

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

(2)语法

less [参数] 文件

(3)常用选项

-i 忽略搜索时的大小写
-N 显示每行的行

(4)进入浏览文件后( less 模式)
在这里插入图片描述

导航:在 less 模式下,你可以使用方向键(上、下、左、右)来移动光标。按 Page Up 和 Page Down 键可以分别向上和向下翻页。按 b 键向后翻页(即向上翻页),按空格键向前翻页(即向下翻页)。
搜索:在 less 中,你可以使用 / 后跟搜索字符串来向前搜索文本。例如,/搜索词 会向前搜索“搜索词”。使用 n 键查找下一个匹配项,N 键查找上一个匹配项。类似地,? 后跟搜索字符串用于向后搜索文本。
退出:按 q 键退出 less。
跳转到文件开头或结尾:按 G 键跳转到文件的末尾,按 g 键(小写)跳转到文件的开头。
跳转到特定行:你可以使用 -N 选项(其中 N 是行号)来直接跳转到文件的第 N 行。例如,less +50 filename.txt 会打开文件并直接跳转到第 50 行。在 less 模式下,你也可以使用 -N(不带空格)后跟行号来跳转到特定行,但需要先按 - 键,然后输入行号,最后按 Enter(有些版本不支持),通用:先按g键,然后输入冒号:,接着输入行号并回车。例如,要跳转到第100行,可以输入:100后回车。
标记和跳转:less 允许你设置和跳转到文件中的标记。使用 ma(其中 a 是你选择的标记名)来设置标记,然后使用 'a(单引号加标记名)来跳转到该标记。
查看帮助:在 less 模式下,按 h 键可以查看帮助信息。

(5)举例
查看文件并编号

less -N test.txt

17、head指令

(1)功能

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

(2)语法

 head [选项](行数...) [文件] 

(3)常用选项

-n<行数> 显示的行数

(4)举例
查看文件test,txt的前20行内容

head -n20 test.txt

18、tail指令

(1)功能

用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。

(2)语法

tail [选项] [文件...]

(3)常用选项

-n <行数> 或 --lines=<行数>:显示文件的最后N行。如果N前面有加号(+),则表示从文件的第N行开始显示到文件末尾。
-f(或–follow)选项是一个非常有用的功能,它允许用户实时地查看文件末尾新增的内容。这在监控日志文件或实时数据流时特别有用(停止一般通过Ctrl+C)。

(4)举例
查看文件test.txt结尾20行

tail -n20 test.txt

查看文件test.txt第10行到结尾

tail -n+10 test.txt

19、时间相关的指令

(1)显示时间
date 指定格式显示时间: date +%Y:%m:%d

date [选项] +显示格式

-d<字符串>:显示字符串所指的日期与时间。字符串前后必须加上双引号。
%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)在设定时间方面

-s<字符串>:根据字符串来设置日期与时间。字符串前后必须加上双引号。

(3)时间戳
时间->时间戳:date +%s
时间戳->时间:date -d@时间时间戳

(4)举例
显示当前时间

date

在这里插入图片描述

按指定时间格式显示当前时间

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

在这里插入图片描述

按照指定格式输出指定时间

date -d "2023-01-01" +"%Y-%m-%d"

在这里插入图片描述

设定当前系统时间

sudo date -s "2024-08-15 21:32:18"

显示当前时间戳

 date +%s

将时间戳转换为时间

date -d@1508749502

在这里插入图片描述

20、cal指令

(1)功能

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

(2)语法

  cal [选项][月份][年份]

(3)常用选项

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

(4)举例
显示当月日历

cal

在这里插入图片描述
显示当年日历

cal -y

显示2018年3月前后3个月的日历

cal -3 3 2018

在这里插入图片描述

21、find指令

(1)功能

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

(2)语法

find [搜索路径] [选项] [搜索条件] [处理动作]

搜索路径:指定find命令开始搜索的目录路径,默认为当前目录。
选项:用于控制find命令的行为,如搜索条件、处理动作等。
搜索条件:指定搜索的标准,如文件名、文件类型、文件大小、修改时间等。
处理动作:对查找到的文件执行的操作,如打印、删除、执行命令等。

(3)常用选项

-name:按照文件名查找文件。
-iname:按照文件名查找文件,忽略大小写。
-type:根据文件类型进行搜索。
文件类型参数包括:f(普通文件)、d(目录)、l(符号链接)、b(块设备)、c(字符设备)等。
-size:根据文件大小进行搜索。 示例:find / -size +10M 查找根目录下大于10MB的文件。 单位可以是c(字节)、k(千字节)、M(兆字节)、G(吉字节)等。
-mtime、-atime、-ctime:根据文件的时间戳进行搜索。
-mtime:修改时间
-atime:访问时间
-ctime:状态改变时间
示例:find / -mtime -7 查找根目录下最近7天内被修改过的文件。
-user、-group:根据文件属主或所属组进行搜索。
示例:find /home -user john 查找/home目录下所有属主为john的文件。
-perm:根据文件权限进行搜索。 示例:find / -perm 644 查找系统中所有权限为644的文件。
-exec、-ok:对查找到的文件执行指定的命令。
-exec:直接执行命令,不需要用户确认。
-ok:在执行命令前会提示用户确认。

(4)组合使用

组合条件

-a(and):逻辑与,必须同时满足两个条件。
-o(or):逻辑或,满足其中一个条件即可。
! 或 -not:逻辑非,不满足指定条件。
find命令默认使用 -a 逻辑运算符来连接条件,即使你没有显式地写出来。

语法:

find [搜索路径] [选项] [搜索条件] (组合条件) [选项] [搜索条件]...   [处理动作]

举例:
在当前路径下查找hehe开头并且后缀为.txt的文件

find -name "hehe*" -a -name "*.txt"

(5)处理动作: -exec-ok

-ok选项与-exec选项非常相似,都允许你对查找到的每个文件执行指定的命令。不过,-ok选项在执行每个命令之前会先提示用户进行确认,以确保用户知道哪些文件将被操作,并有机会取消操作。

语法:

find [搜索路径] [选项] [搜索条件] -ok [命令] {} \;

命令:对查找到的每个文件执行的命令,{}会被替换为查找到的文件名。
;:标记 -exec \ -ok参数的结束。

举例:
在当前目录下查找test.txt的文件并进行删除

find ./ -name "test.txt" -ok rm {} \;

(6)举例
/home目录下查找所有以.txt结尾的文件

find /home -name "*.txt" 

在当前目录查找普通类型的文件

find ./ -type f

在当前目录下查找大于10MB的文件

find ./ -size +10M 

22、grep指令

(1)功能

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

(2)语法

grep [选项]... 字符串 [文件]...

字符串:匹配的内容。
文件:你要搜索的文件列表。如果省略文件名,grep会读取标准输入。
(3)常用选项

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

(4)举例
test1.txt文件当中查找“cc”,并带行号输出

grep -n "cc" test1.txt

23、zip/unzip指令

(1)功能

zip:将目录或文件压缩成.zip格式。
unzip: 解压.zip文件或者目录。

(2)语法

zip [选项] 文件名.zip   源文件或目录...
unzip [选项] 文件名.zip [-d 目录]

(3)选项
zip:

-r:递归地将目录及其所有子目录和文件压缩到ZIP文件中。

unzip:

-d 目录名:指定解压缩后的目标目录。如果不指定,文件将被解压到当前目录。

(4)举例
压缩test.txt文件

zip test.zip test.txt

压缩目录directory1

zip -r directory1.zip directory1

压缩多个文件到一个 .zip 文件

zip test.zip test1.txt test2.txt

解压文件到指定目录

unzip test.zip -d ./

24、tar指令

(1)功能

用于归档和压缩文件。

(2)语法

tar [选项](归档文件名)[处理文件或目录...]

(3)常用选项

-c:创建一个新的归档文件。
-x:从归档文件中提取文件。
-t:列出归档文件中的内容(不解压)。
-f:指定归档文件的名称。这个选项通常是必需的,并且通常放在所有其他选项之后,紧接着是归档文件的名称。
-v:在处理文件时显示详细信息(verbose,冗长模式)。
-z:通过 gzip 压缩或解压缩归档文件。
-j:通过 bzip2 压缩或解压缩归档文件。
-J:通过 xz 压缩或解压缩归档文件(较新的版本才支持)。
-r:向归档文件中追加文件(需要 -f 选项指定归档文件)。
-u:仅追加比归档文件中同名文件更新的文件。
-p:保留原文件的属性(如修改时间和访问权限)。
-C 目录:在解压缩时,切换到指定的目录。

(4)举例
将目录dir归档

tar -cvf dir.tar dir

将目录dir归档加压缩

tar -czvf dir.tar.gz dir

查看归档文件dir.tar

tar -tvf dir.tar

查看归档压缩文件dir.tar.gz

tar -ztvf dir.tar.gz

将归档文件dir.tar中提取文件到当前目录

tar -xvf dir.tar

将归档文件dir.tar中提取文件到./tmp目录下
需要先来到./tmp,再进行提取,并且提前后的文件属性会变化喔,想要属性不变化在选项上加p

cd ./tmp
tar -xvf dir.tar

将归档压缩文件dir.tar.gz解压到当前目录下

 tar -vzxf dir.tar.gz

只将归档压缩文件dir.tar.gz中的test1.txt文件解压到当前目录下

tar vzxf dir.tar.gz dir/test1.txt

将目录dir归档压缩,除了dir/test1.txt

tar --exclude dir/test1.txt -vzcf dir1.tar.gz dir

25、bc指令

(1)功能

bc可以执行整数和浮点数的运算,包括加(+)、减(-)、乘(*)、除(/)等基本运算,以及更复杂的数学函数和表达式。

(2)使用

1.交互式使用
直接在终端中输入bc命令并回车,将进入bc的交互式环境。在这个环境中,你可以输入算术表达式并立即看到结果。

bc

然后,你可以输入表达式,如3 + 4,并回车查看结果。

2.非交互式使用
你也可以通过管道(pipe)将表达式传递给bc,而不是进入交互式环境。这对于脚本编写特别有用。

echo "3 + 4" | bc

这将输出7。

3.设置精度
bc默认的精度可能不足以满足你的需求。你可以通过scale变量来设置所需的精度(小数点后的位数)。

echo "scale=2; 3 / 4" | bc

这将输出0.75,因为我们设置了两位小数精度。

4.使用数学函数
GNU版本的bc(许多Linux发行版中的默认版本)支持许多数学函数,如sqrt()(平方根)、sin()(正弦)、cos()(余弦)等。

echo "scale=2; sqrt(16)" | bc

这将输出4.00。

5.赋值和变量
bc也支持变量赋值和基于这些变量的计算。

echo "a = 5; b = 7; a + b" | bc

这将输出12。

6.读取文件
你可以将一系列bc表达式保存在文件中,并使用bc的-f选项来执行这些表达式。
首先,创建一个名为calc.bc的文件,并添加以下内容:

bc
scale = 2  
a = 5  
b = 7  
print a + b

然后,使用以下命令执行文件:

bc -f calc.bc

这将输出12.00。

7.使用obase和ibase进行进制转换
bc还支持不同进制之间的转换。通过设置obase(输出基数)和ibase(输入基数),你可以轻松地在不同进制之间转换数字。

echo "obase=2; ibase=10; 10" | bc

这将输出1010,表示十进制数10的二进制表示。

26、echo 命令

(1)功能

echo是一个常用的命令行工具,用于在终端显示一行文本或字符串。你可以使用echo命令来输出几乎任何你想要在屏幕上看到的文本,包括变量、文本字符串等。

(2)语法

echo [option(s)] [string(s)]

[option(s)]:这是可选的,echo命令有一些选项,但大多数时候人们直接使用它来输出文本,不需要选项。
[string(s)]:这是你想要输出的文本或字符串。如果没有提供字符串,echo会输出一个空行。

(3)常用选项

-n:不输出行尾的换行符。默认情况下,echo 会在输出的末尾添加一个换行符。使用 -n 选项可以阻止这一行为,使得输出后的光标停留在同一行。
-e:启用对反斜杠转义字符的解释。这意味着 echo 会识别并处理 \n(换行)、\t(制表符)、\(反斜杠本身)等转义序列。需要注意的是,并非所有版本的 echo 都支持 -e 选项(比如 POSIX
标准的 echo 就没有 -e 选项),但在大多数 Linux 发行版和 Bash shell 中,它是可用的。
-E(在某些版本的 echo 中):禁用对反斜杠转义字符的解释。然而,这个选项在大多数 Linux 发行版中可能并不常见,因为默认情况下 echo 就不解释转义字符(除非使用了 -e)。

(4)举例
输出Hello, World,并且不换行

echo -n Hello, World!

显示变量的值

name="Linux"  
echo $name

(5)补充:重定向
介绍:

在Linux中,重定向是一种强大的功能,它允许你将命令的输出(stdout)或错误输出(stderr)发送到文件或其他命令中,而不是显示在终端上。同样,你也可以将文件的内容作为输入(stdin)重定向给命令。重定向主要通过几个特殊的符号来实现:>、>>、<
和 2>。

使用:
1.标准输出重定向(stdout)

> 将命令的标准输出重定向到文件。如果文件已存在,则覆盖文件内容;如果文件不存在,则创建新文件。

echo "Hello, World!" > file.txt

使用 > 创建文件


> file.txt

>>:将命令的标准输出追加到文件末尾。如果文件不存在,则创建新文件。

echo "Another line." >> file.txt

2.标准输入重定向(stdin)

<:将文件的内容作为命令的标准输入

cat < file.txt

3.标准错误输出重定向(stderr)

2>:将命令的标准错误输出重定向到文件。与>类似,但仅针对错误输出。

ls nonexistent_file 2> errors.txt

如果nonexistent_file不存在,错误信息将被写入errors.txt而不是显示在终端上

2>>:将命令的标准错误输出追加到文件末尾。

ls nonexistent_file 2>> errors.txt

使用&>(在某些shell中,如bash)来同时重定向标准输出和标准错误输出。

ls nonexistent_file &> output.txt

这将把命令的输出和错误信息都写入output.txt

使用2>&1将标准错误输出重定向到标准输出,然后再将标准输出重定向到文件。

ls nonexistent_file > output.txt 2>&1

这个命令首先尝试将标准输出重定向到output.txt,然后通过2>&1将标准错误输出也重定向到标准输出的当前位置(即output.txt)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2048786.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

指向派生类的基类指针、强转为 void* 再转为基类指针、此时调用虚函数会发生什么?

指向派生类的基类指针、强转为 void* 再转为基类指针、此时调用虚函数会发生什么&#xff1f; 1、无论指针类型怎么转&#xff0c;类对象内存没有发生任何变化&#xff0c;还是vfptr指向虚函数表&#xff0c;下面是成员变量&#xff0c;这在编译阶段就已经确定好了&#xff1b…

校园失物招领系统pf

TOC springboot337校园失物招领系统pf 绪论 1.1研究背景与意义 信息化管理模式是将行业中的工作流程由人工服务&#xff0c;逐渐转换为使用计算机技术的信息化管理服务。这种管理模式发展迅速&#xff0c;使用起来非常简单容易&#xff0c;用户甚至不用掌握相关的专业知识&…

自动驾驶-机器人-slam-定位面经和面试知识系列09之C++STL面试题(04)

这个博客系列会分为C STL-面经、常考公式推导和SLAM面经面试题等三个系列进行更新&#xff0c;基本涵盖了自己秋招历程被问过的面试内容&#xff08;除了实习和学校项目相关的具体细节&#xff09;。在知乎和牛客&#xff08;某些文章上会附上内推码&#xff09;也会同步更新&a…

鸿蒙(API 12 Beta3版)【HDR Vivid视频录制】 音视频编码

开发者可以调用本模块的Native API接口&#xff0c;实现在视频录制中支持HDR Vivid标准。 视频录制的主要流程是“相机采集 > 编码 > 封装成mp4文件”。 HDR Vivid视频编码 应用创建H265编码器&#xff0c;配置profile(main 10)相机底层包含HDR Vivid的surfacebuffer内…

Airtest 的使用

Airtest 介绍 Airtest Project 是网易游戏推出的一款自动化测试框架&#xff0c;其项目由以下几个部分构成 Airtest : 一个跨平台的&#xff0c;基于图像识别的 UI 自动化测试框架&#xff0c;适用于游戏和 App &#xff0c; 支持 Windows, Android 和 iOS 平台&#xff0c…

蛋白质基础

氨基酸:必需氨基酸 条件必需氨基酸和非必需氨基酸 必需氨基酸:机体需要但自身不能合成&#xff0c;必须从食物中获取的氨基酸。共有八种&#xff0c;对婴儿&#xff0c;组氨酸也是必需氨基酸。 条件必需氨基酸:半胱氨酸和酪氨酸在体内分别由蛋氨酸和苯丙氨酸转变而来。若膳食中…

HTML 列表和容器元素——WEB开发系列10

HTML 提供了多种方式来组织和展示内容&#xff0c;其中包括无序列表、有序列表、分区元素 ​​<div>​​ 和内联元素 ​​<span>​​、以及如何使用 ​​<div>​​​ 进行布局和表格布局。 一、HTML 列表 1. 无序列表 (​​<ul>​​) 无序列表用于展…

Java流程控制06:for循环详解

教学视频链接&#xff1a;https://www.bilibili.com/video/BV12J41137hu?p41&vd_sourceb5775c3a4ea16a5306db9c7c1c1486b5https://www.bilibili.com/video/BV12J41137hu?p41&vd_sourceb5775c3a4ea16a5306db9c7c1c1486b5 Java中的‌for循环结构‌是一种基础…

Python与DIAdem联合开发

Python可以通过COM接口与NI的DIAdem软件集成&#xff0c;允许用户以编程方式自动生成和定制报告。这种方式使得报告生成更加灵活且可定制&#xff0c;尤其适用于需要定期生成大量报告或对报告内容有特定要求的场景。 1. 工作原理 Python与DIAdem的集成主要依赖于COM&#xff0…

二叉树的判断

二叉树的判断 判断一颗二叉树是不是搜索二叉树 &#xff08;左边的比根小&#xff0c;右边的比根大&#xff09; 中序遍历一下&#xff0c;如果是的话就一定是升序的 如何判断一颗二叉树是否是完全二叉树 1.遍历任意的节点时候&#xff0c;如果返回右孩子没有左孩子&#x…

【Linux学习】权限

&#x1f525;个人主页&#xff1a; Forcible Bug Maker &#x1f525;专栏&#xff1a;Linux学习 目录 &#x1f308;前言&#x1f525;Linux权限的概念&#x1f525;Linux权限管理01.文件访问者的分类02.文件类型和访问权限&#xff08;文件属性&#xff09;03.文件权限值得…

线程同步-条件变量

文章目录 引言条件变量初始化条件变量&#xff1a;pthread_cond_init销毁条件变量&#xff1a;pthread_cond_destroy条件等待&#xff1a;pthread_cond_wait唤醒等待&#xff1a;pthread_cond_signal、pthread_cond_broadcast认识条件变量接口使用 引言 有一个非常好的VIP自习…

树莓派3B运行rasa init和rasa shell遇到的tensorflow报错总结

终于在我的树莓派上安装rasa-1.4.0版本成功&#xff08;见《树莓派智能语音助手之聊天机器人-RASA》&#xff09;。不过&#xff0c;在初始化rasa的时候还是遇到了很多报错&#xff0c;在此总结&#xff0c;供朋友们参考。 1. ModuleNotFoundError: No module named ‘tensorf…

合肥网站制作服务

合肥网站制作服务&#xff1a;为您的企业搭建数字化桥梁 随着互联网的迅猛发展&#xff0c;越来越多的企业意识到拥有一个专业的网站对于提升品牌形象和扩大市场影响力的重要性。合肥作为安徽省的省会&#xff0c;经济发展迅速&#xff0c;许多企业渴望通过优质的网站制作服务&…

Windows采用VS2019实现Open3D的C++应用

1、参考链接 https://blog.csdn.net/qq_31254435/article/details/137799739 但是&#xff0c;我的方法和上述链接不大一样&#xff0c;我是采用VS2019进行编译的&#xff0c;方便在Windows平台上验证各种算法。 2、创建一个VS2019的C Console工程 #include <iostream>…

Unity 6 预览版正式发布

Unity 6 预览版发布啦&#xff0c;正式版本将于今年晚些时候正式发布&#xff01; 下载链接&#xff1a; https://unity.com/releases/editor/whats-new/6000.0.0 Unity 6 预览版是 Unity 6 开发周期的最后一个版本&#xff0c;在去年 11 月 Unite 大会上&#xff0c;我们宣…

应急响应-DDOS-典型案例

某单位遭受DDoS攻击事件如下 事件背景 2019年2月17日&#xff0c;某机构门户网站无法访问&#xff0c;网络运维人员称疑似遭受DDoS攻击&#xff0c;请求应急响应工程师协助。 事件处置 应急响应工程师在达到现场后&#xff0c;通过查看流量设备&#xff0c;发现攻击者使用僵…

日拱一卒(4)——leetcode学习记录:路经总和

一、任务&#xff1a; 给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径&#xff0c;这条路径上所有节点值相加等于目标和 targetSum 。如果存在&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 叶…

RCE与SQL漏洞的复现

eval长度限制突破 php eval函数参数限制在16个字符的情况下&#xff0c;如何拿到webshell呢 首先&#xff0c;我们还是先把环境搭好&#xff08;此次的所有漏洞环境我都部署在Ubuntu下,我的Ubuntu下的环境是nginxphp&#xff0c;至于Ubuntu下的nginxphp环境我也有博客也写到&a…

配置maven环境(全局)

全局设置 修改Maven 更改JRE 更改Java Compiler 修改完成后&#xff0c;Apply即可