【探索Linux】—— 强大的命令行工具 P.2(Linux下基本指令)

前言

        前面我们讲了C语言的基础知识,也了解了一些数据结构,并且讲了有关C++的一些知识,也相信大家都掌握的不错,今天博主将会新开一个Linux专题,带领大家继续学习有关Linux的内容。今天第一篇文章博主首先带领大家了解一下什么是Linux,以及Linux的几个常用命令符。下面话不多说坐稳扶好咱们要开车了!!!😍

01.ls 指令

        ls指令是在Linux系统中用于列出目录和文件的命令。它的主要功能是显示指定目录中的内容,并提供了一些选项以控制显示的输出方式和内容。

ls指令的基本语法:ls [选项] [文件或目录]

下面是一些常用的ls指令的选项:

1.  -l  或  --long :以长格式显示文件和目录的详细信息,包括文件权限、所有者、大小、修改日期等。

2.  -a  或  --all :显示所有文件和目录,包括以`.`开头的隐藏文件。

3.  -h  或  --human-readable :以易读的格式显示文件和目录的大小,例如使用字节、KB、MB等来表示文件大小。

4.  -r  或  --reverse :反转显示的顺序,使得文件和目录按照相反的顺序排列。

5.  -t :按照修改时间的先后顺序,以最新的文件或目录显示在前面。

6.  -F  或  --classify :在显示的文件名后面加上一个字符表示其类型,如斜杠表示目录,星号表示可执行文件等。

除了上面的选项,还有许多其他选项可用于定制化显示的效果,下面是一些示例用法:

1. 显示当前目录下的所有文件和目录:ls

2. 显示指定目录中的所有文件和目录,并以长格式显示详细信息:ls -l /path/to/directory

3. 显示所有文件(包括隐藏文件)并按照文件大小以易读的格式显示:ls -ah --human-readable

4. 反转显示指定目录内容的顺序:ls -r /path/to/directory

        ls指令是一个非常常用的工具,它可以帮助用户快速查看和理解文件系统中的内容。通过不同的选项组合,可以实现更多不同的用途和展示方式。可以通过 man ls 命令查看更详细的帮助文档。


02.pwd命令

        pwd命令用于显示当前工作目录的路径("pwd"代表"print working directory",即打印当前工作目录)

pwd命令的基本用法pwdpwd命令没有任何选项,只需输入命令即可显示当前工作目录的路径

执行该命令后,终端将显示当前工作目录的完整路径,例如:/home/username/Documents

        注意当前工作目录是指用户在命令执行时所处的目录。当新打开终端窗口或切换到其他目录时,工作目录会相应地更改。通过pwd命令,用户可以随时查看当前所处的目录位置

        pwd命令在用户日常的命令行操作中非常有用,特别是在需要检查或确认当前所处位置时。它还可以与其他命令配合使用,以获取当前工作目录的路径并将其用于其他操作,如创建文件、复制文件或更改目录等,可以通过 man pwd 命令来获取更详细的帮助文档。


03.cd 指令

Linux系统中,磁盘上的文件和目录被组成一棵目录树每个节点都是目录或文件(如图)

Linux 系统目录结构

        cd(change directory)指令用于改变当前工作目录用户可以使用cd命令进入其他目录或返回到上级目录

cd命令的基本语法cd [目录路径]

下面是一些常见的用法和选项

1. 进入指定目录cd /path/to/directory该命令将将当前工作目录切换到指定的目录。

2. 进入用户的主目录cd ~ 该命令将当前工作目录切换到当前用户的主目录。

3. 进入上级目录cd .. 该命令将当前工作目录切换到上级目录。

4. 进入上次访问的目录cd - 该命令将当前工作目录切换到上次所在的目录。

除了上面的用法外,cd命令还支持其他一些特殊操作,例如:

  • 使用相对路径:可以使用相对于当前工作目录的路径,如`cd ..`表示进入上级目录, cd ./subdir 表示进入当前目录下的子目录。
  • 使用绝对路径:可以使用完整的绝对路径,如cd /path/to/directory表示进入指定路径下的目录。
  • 使用环境变量:可以使用环境变量作为目录路径,如 cd$HOME 表示进入当前用户的主目录。

        注意cd命令仅适用于切换工作目录,它不会在不同的终端会话之间保持持久性。换句话说,当你在一个终端窗口中使用cd命令切换目录后,如果打开新的终端窗口,工作目录仍然会是原来的目录。可以通过 man cd 命令查看更详细的帮助文档。 


04.touch指令

touch指令用于创建新的空白文件或更新已存在文件的访问和修改时间戳

touch命令的基本语法touch [选项] 文件名

以下是一些常见的选项:

1.  -a :只更新访问时间戳,不修改修改时间戳。
2.  -c :不创建新文件,只更新已存在文件的时间戳。
3.  -m :只更新修改时间戳,不修改访问时间戳。

下面是一些使用示例:

1. 创建一个新的空白文件touch filename 这将创建一个名为 "filename" 的空白文件。

2. 更新文件的访问和修改时间戳为当前时间touch -c filename 如果文件"filename"存在,则更新它的访问和修改时间戳为当前时间。如果文件不存在,则不会创建新文件。

3. 只更新文件的修改时间戳touch -m filename 如果文件"filename"存在,则只更新它的修改时间戳为当前时间。访问时间戳不会被修改。

4. 批量更新多个文件的时间戳touch file1 file2 file3这将同时更新文件"file1"、"file2"和"file3"的访问和修改时间戳为当前时间。

        touch命令是Linux中一个非常实用的工具,它可以用于创建空白文件,或者在脚本中更新文件的时间戳。通过修改和管理文件的时间戳,用户可以方便地进行文件排序、查找最新文件等操作。可以通过 man touch 命令查看更详细的帮助文档。


05.mkdir指令

mkdir(make directory)指令用于创建新的目录(文件夹)

mkdir命令的基本语法mkdir [选项] 目录名

以下是一些常见的选项:

1.  -p :创建多级目录。如果指定的目录路径中的某些目录不存在,mkdir会自动创建它们。
2.  -m :设置目录的权限模式。可以指定使用八进制形式的权限值,例如755、700等。
3.  -v :显示创建过程中的详细信息。

下面是一些使用示例:

1. 创建单级目录mkdir dirname这将在当前目录中创建一个名为"dirname"的新目录。

2. 创建多级目录mkdir -p dir1/dir2/dir3这将创建一个目录路径为dir1/dir2/dir3的多级目录。如果dir1、dir2或dir3中的任何一个目录不存在,mkdir会自动创建它们。

3.创建目录并设置权限mkdir -m 750 dirname这将创建一个名为"dirname"的目录,并将其权限设置为750(读、写和执行权限仅限于所有者,读和执行权限对于所属组和其他用户是可用的)。

4. 创建目录并显示详细信息mkdir -v dirname这将创建一个名为"dirname"的目录,并在创建过程中显示详细信息。

        mkdir命令是在Linux中创建目录的常用工具,它可以帮助用户轻松创建新目录,无论是单级目录还是多级目录。用户还可以通过指定选项来自定义目录权限和查看详细的创建过程。可以通过man mkdir命令查看更详细的帮助文档。


06.rmdir指令 && rm 指令

rmdirrm两个指令均用于删除文件或目录,但它们之间存在一些区别。

rmdir指令用于删除空目录,而不能删除非空目录。它的基本语法:rmdir 目录名

rm指令用于删除文件和非空目录。它的基本语法:rm [选项] 文件或目录

下面是rmdir指令的一些常见用法:

1. 删除空目录rmdir dirname这将删除名为"dirname"的空目录。

2. 删除多个空目录rmdir dir1 dir2 dir3这将依次删除dir1、dir2和dir3这些空目录。

注意rmdir只能删除空目录。如果目录不为空,使用rmdir将会报错。

下面是rm指令的一些常见选项:

1.  -r :递归删除目录及其内容。
2.  -f :强制删除,不弹出提示。
3.  -i :交互式删除,删除前询问用户确认。
4.  -v :显示详细信息,即删除的文件或目录名。

rm指令的一些常见用法:

1. 删除文件rm filename这将删除名为"filename"的文件。

2. 删除目录及其内容rm -r dirname这将递归删除"dirname"目录及其所有内容。使用`-r`选项是为了确保连同目录中的文件一起删除。

3. 强制删除文件或目录rm -f filename这将忽略不存在的文件警告,强制删除"filename"文件(如果它存在)。

4. 交互式删除文件或目录rm -i filename这将在删除"filename"文件(如果它存在)之前询问用户是否确认。用户需按y或n来做出选择

        rm指令是Linux中删除文件和目录的常用命令,具有强大的删除功能。使用rm指令要谨慎,尤其在删除目录时,确保目录中的内容是要删除的。可以通过 man rmdirman rm 命令查看更详细的帮助文档。


07.man指令

man(manual)指令用于查看命令的帮助文档。man指令提供了对系统中安装的各种命令、函数、配置文件等的说明和文档。

man命令的基本语法:man [选项] 命令或关键字

以下是一些常见的选项:

1.  -k :搜索关键字。用于查找与关键字相关的命令或文档。
2.  -f:显示与关键字匹配的命令简要描述。
3.  -a:显示所有与关键字匹配的文档。

下面是一些使用示例:

1. 查看命令的帮助文档man command这将显示关于"command"命令的详细文档,包括命令的用法、选项和示例等。

2. 搜索关键字并显示相关文档man -k keyword这将搜索与关键字"keyword"相关的命令、函数或配置文件,并显示它们的简要描述。

3. 显示关键字对应的所有文档man -a keyword这将显示与关键字"keyword"匹配的所有文档。

        man命令的帮助文档分为不同的部分,每个部分包含了不同类型的文档。例如,1节包含常规命令的文档,2节包含系统调用的文档,3节包含库函数的文档,以此类推。可以通过在关键字前追加节号来指定要查看的文档节。

例如:要查看bash命令的文档,可以使用以下命令:man 1 bash

        通过man指令,用户可以方便地查阅命令和其他相关文档,从而更好地了解和使用Linux系统中的各种功能和工具。可以通过 man man 命令查看更详细的man指令的使用说明。


08.cp指令

在Linux系统中,cp(copy)指令用于复制文件和目录

cp命令的基本语法:cp [选项] 源文件 目标文件或目录

以下是一些常见的选项:

1.  -r :递归复制目录及其内容。
2.  -i :交互式复制,复制前询问用户确认。
3.  -v :显示详细信息,即复制的文件名。

下面是一些使用示例:

1. 复制文件到指定目录cp file1 file2 dir这将复制文件file1和file2到目录dir中。

2. 复制目录及其内容cp -r dir1 dir2这将递归复制目录dir1及其所有内容到目录dir2中。使用`-r`选项是为了确保连同目录中的文件一起复制。

3. 强制复制文件(覆盖已存在的目标文件):cp -f file1 file2 这将忽略目标文件file2的存在,并强制复制文件file1到file2

4. 交互式复制文件cp -i file1 file2这将在复制file1到file2之前询问用户是否确认。用户需按y或n来做出选择

cp命令还支持其他选项,例如设置文件的权限模式、保留文件属性等。

注意

  • 如果目标文件已经存在,而且没有使用`-f`选项,cp命令将询问用户是否覆盖目标文件。
  • 如果目标指定为目录,则会将源文件复制到目标目录,并以源文件的名称创建副本。

        通过cp命令,用户可以轻松复制文件和目录,以便进行备份、移动文件等操作,可以通过man cp命令查看更详细的帮助文档。


09.mv指令

mv(move)指令用于移动文件和目录,也可用于重命名文件或目录

mv命令的基本语法mv [选项] 源文件或目录 目标文件或目录

以下是一些常见的选项:

1.  -i :交互式移动,移动前询问用户确认。
2. -v :显示详细信息,即移动的文件或目录名。

下面是一些使用示例:

1. 移动文件到指定目录:mv file1 file2 dir这将把文件file1和file2移动到目录dir中。

2. 重命名文件或目录:mv oldname newname这将把文件或目录的名称从oldname改为newname。

3. 移动目录及其内容:mv -r dir1 dir2这将递归地移动目录dir1及其所有内容到目录dir2中。使用`-r`选项是为了确保连同目录中的文件一起移动。

4. 强制移动文件(覆盖已存在的目标文件):mv -f file1 file2这将忽略目标文件file2的存在,并强制移动文件file1到file2。

5. 交互式移动文件或目录:mv -i file1 file2这将在移动file1到file2之前询问用户是否确认。用户需按y或n来做出选择。

mv命令还支持其他选项,例如设置文件的权限模式、保留文件属性等。

注意

  • 如果源文件和目标文件在同一文件系统中,mv命令将在文件系统级别上对文件进行重命名或移动,移动过程即为重命名过程。
  • 如果源文件和目标文件不在同一文件系统中,mv命令将通过复制源文件到目标文件系统,再删除源文件来完成移动操作。

        通过mv命令,用户可以轻松地移动和重命名文件和目录,可以通过 man mv 命令查看更详细的帮助文档。


10.cat指令

cat(concatenate)指令主要用于连接文件、创建文件、显示文件内容等操作

cat命令的基本语法cat [选项] 文件

以下是一些常见的选项:

  1.  -n :显示行号,将文件的每一行前面加上行号。
  2.  -b :非空行显示行号,将非空行的文件内容前面加上行号。
  3.  -s :合并多个空行,将多个连续的空行压缩成一个空行。

下面是一些使用示例:

  1. 显示文件内容:cat file1这将显示文件file1的内容。
  2. 显示多个文件内容:cat file1 file2 file3这将按顺序显示文件file1、file2和file3的内容。
  3. 合并文件:cat file1 file2 > newfile这将将文件file1和file2的内容合并,并将结果存储到newfile文件中。
  4. 显示行号:cat -n file这将显示文件file的内容,并在每一行前面加上行号。
  5. 合并多个空行:cat -s file这将显示文件file的内容,并将多个连续的空行压缩成一个空行。

        除了以上常见用法,cat还可以通过管道符(|)与其他命令组合使用,实现更复杂的操作。例如,将cat的输出作为另一个命令的输入。cat是一个强大而灵活的命令,可用于快速查看文件内容、合并文件、创建文件等多种用途。可以通过 man cat 命令查看更详细的帮助文档。


11.more指令

more指令用于逐页显示文件内容,方便查看大文件。它可以按页向后滚动,允许用户按需加载和滚动文件内容。

more命令的基本语法:more [选项] 文件

以下是一些常见的选项:

  1. -d:显示“Press space to continue...”提示。
  2. -c:显示Ctrl-L字符作为换页符。
  3. -p:显示当前文件的百分比。
  4. -num:指定每次显示的行数。

下面是一些使用示例:

  1. 逐页显示文件内容:more file这将以一页一页的方式显示文件file的内容。可以使用空格键向后翻页,按q键退出。
  2. 显示文件内容,并显示类似“Press space to continue...”提示:more -d file这将在每一页的结尾显示提示信息,提示用户按空格键继续浏览下一页。
  3. 显示文件内容,并在每页顶部显示当前文件的百分比:more -p file这将在每一页的顶部显示当前浏览位置相对于整个文件的百分比。
  4. 指定每页显示的行数:more -10 file这将以每页显示10行的方式浏览文件内容。

        more指令还支持其他一些功能,例如前进/后退一页、跳到指定行号等。more命令在处理大文件时非常有用,因为它可以逐页加载文件内容,节省资源,并提供方便的浏览和检索功能。可以通过 man more命令查看更详细的帮助文档。


12.less指令

less指令也用于查看文件内容,与more指令类似,但提供了更多的功能和选项

less命令的基本语法:less [选项] 文件

以下是一些常见的选项:

  1. -N:显示行号,将文件的每一行前面加上行号。
  2. -i:忽略搜索时的大小写。
  3. -S:折叠长行,超过屏幕宽度的行将被折叠显示。
  4. +num:从指定的行号开始显示文件内容。

下面是一些使用示例:

  1. 查看文件内容:less file这将以交互方式显示文件file的内容。可以使用上下方向键滚动内容,使用q键退出查看。
  2. 显示行号:less -N file这将显示文件file的内容,并在每一行前面加上行号。
  3. 忽略搜索时的大小写:less -i file这将在搜索文件内容时忽略大小写。
  4. 折叠长行显示:less -S file这将折叠超过屏幕宽度的长行,以便更好地显示文件内容。
  5. 从指定行号开始浏览文件内容:less +10 file这将从文件的第10行开始显示内容。

        less指令还提供了其他一些功能,如搜索字符串、跳转到指定行号等。相较于more指令,less提供了更多的交互和浏览功能,使用户能够更方便地查看和搜索文件内容。可以通过man less命令查看更详细的帮助文档。


13.head指令

head指令用于显示文件的开头部分,默认情况下,它显示文件的前10行

head命令的基本语法head [选项] 文件

以下是一些常见的选项:

  1. -n num:显示文件的前n行,其中num表示要显示的行数。
  2. -c num:显示文件的前n个字符,其中num表示要显示的字符数。

下面是一些使用示例:

  1. 显示文件的开头部分(默认显示前10行):head file这将显示文件file的前10行内容。
  2. 显示指定行数的文件开头部分:head -n 5 file这将显示文件file的前5行内容。
  3. 显示指定字符数的文件开头部分:head -c 100 file这将显示文件file的前100个字符。

        head指令还支持其他选项,如显示文件名、显示文件的前几个字节等。head命令通常用于查看文件的开头部分,可以快速预览文件的内容,在处理大文件时特别有用。可以通过 man head命令查看更详细的帮助文档。


14.tail指令

tail指令用于显示文件的末尾部分,默认情况下,它显示文件的后10行

tail命令的基本语法tail [选项] 文件

以下是一些常见的选项:

  1. -n num:显示文件的后n行,其中num表示要显示的行数。
  2. -c num:显示文件的后n个字符,其中num表示要显示的字符数。
  3. -f:实时显示文件末尾的新增内容,类似于实时日志追踪。

下面是一些使用示例:

  1. 显示文件的末尾部分(默认显示后10行):tail file这将显示文件file的后10行内容。
  2. 显示指定行数的文件末尾部分:tail -n 5 file这将显示文件file的后5行内容。
  3. 显示指定字符数的文件末尾部分:tail -c 100 file这将显示文件file的后100个字符。
  4. 实时显示文件的新增内容:tail -f file这将实时显示文件file末尾的新增内容,适用于追踪日志文件等实时变化的情况。

        tail指令还支持其他选项,如显示文件名、禁止显示页眉等。tail命令通常用于查看文件的末尾部分,特别适用于查看日志文件的最新消息或持续追踪文件的变化。可以通过man tail命令查看更详细的帮助文档。


15.时间相关的指令

在Linux下,有一些与时间相关的指令可以用于获取和管理系统时间。以下是几个常用的时间相关指令的详细介绍:

1. date指令:用于显示或设置系统的日期和时间

基本语法为date [选项] [+格式]

一些常见的选项:

  • -u:显示或设置UTC时间。
  • +%格式:按指定格式展示日期和时间。

   示例:

  • date:显示当前日期和时间。
  • date +%Y-%m-%d:以YYYY-MM-DD的格式显示当前日期。
  • date -s "2023-08-05 10:30:00":设置系统时间为指定日期和时间。

2. timedatectl指令:用于系统时间和日期的配置和管理

   一些常见的命令:

  • timedatectl status:显示当前系统的时间和日期状态。
  • timedatectl set-time "10:30:00":设置系统时间为指定时间。
  • timedatectl set-timezone Asia/Shanghai:设置系统时区为Asia/Shanghai。
  • timedatectl list-timezones:列出所有可用的时区。

3. hwclock指令:用于读取和设置硬件时钟(Real-Time Clock)。

   一些常见的命令:

  • hwclock:显示硬件时钟的时间。
  • hwclock --set --date="2023-08-05 10:30:00":设置硬件时钟为指定日期和时间。
  • hwclock --systohc:将系统时间同步到硬件时钟。
  • hwclock --hctosys:将硬件时钟同步到系统时间。

        这些时间相关的指令可以帮助你获取和修改系统的日期和时间,设置时区,以及同步硬件时钟和系统时钟。可以通过man命令加上相应指令的名称来获取更详细的帮助文档,例如:man dateman timedatectlman hwclock


16.Cal指令

在Linux系统中,cal指令用于显示一个月的日历

cal命令的基本语法cal [选项] [月份] [年份]

以下是一些常见的选项:

  1. 使用单列显示日历。
  2. 使用三列显示日历,每周从周一开始。
  3. -m:使用两列显示日历,每周从周一开始。
  4. -j:显示一个月中的每一天的年内日期。

下面是一些使用示例:

  1. 显示当前月份的日历:cal这将显示当前月份的整个月历。
  2. 显示指定年份的月历:cal 2023这将显示2023年的每个月份的月历。
  3. 显示指定年份和月份的月历:cal 8 2023这将显示2023年8月的月历。
  4. 使用单列显示日历:cal -1这将以单列形式显示当前月份的日历。

        cal指令还支持其他选项,如指定日历的起始星期几以及自定义输出格式。cal命令通常用于查看日历以及查询特定日期的星期几。可以通过man cal命令查看更详细的帮助文档。


17.find指令

在Linux系统中,find指令用于在指定目录下搜索符合条件的文件或目录

find命令的基本语法find [路径] [选项] [表达式]

以下是一些常见的选项:

  1. -name 文件名:按文件名匹配搜索。
  2. -type 类型:按文件类型匹配搜索(如f表示文件、d表示目录)。
  3. -mtime +/-天数:按文件最后一次修改时间匹配搜索(+表示n天前,-表示n天以内)。
  4. -size +/-大小:按文件大小匹配搜索(+表示大于n,-表示小于n,单位可用c、k、M、G表示字节、KB、MB、GB)。
  5. -user 用户名:按文件所有者匹配搜索。
  6. -group 组名:按文件所属组匹配搜索。

下面是一些使用示例:

  1. 在当前目录及其子目录中搜索名为file.txt的文件:find . -name "file.txt"这将在当前目录及其子目录中搜索名为file.txt的文件。
  2. 在根目录下搜索所有的目录:find / -type d这将在根目录下搜索所有的目录。
  3. 在当前目录中搜索最近7天内修改过的文件:find . -mtime -7这将在当前目录中搜索最近7天内修改过的文件。
  4. 在/var/log目录中搜索大于100MB的文件:find /var/log -size +100M这将在/var/log目录中搜索大于100MB的文件。

        find命令还可以通过逻辑操作符(如-and、-or)以及括号来组合多个条件进行复杂的搜索。可以通过man find命令查看更详细的帮助文档,了解更多find指令的用法和选项。


18.grep指令

在Linux系统中,grep指令用于在文本文件中搜索指定的模式或字符串,并将匹配的行打印出来。

grep命令的基本语法grep [选项] 模式 [文件]

以下是一些常见的选项:

  1. -i:忽略大小写。
  2. -v:反向匹配,只输出不匹配的行。
  3. -r:递归搜索目录下的所有文件。
  4. -l:只输出包含匹配模式的文件名。
  5. -n:显示匹配行的行号。
  6. -c:统计匹配的行数而不显示具体内容。

下面是一些使用示例:

  1. 在文件中搜索包含指定字符串的行:grep "pattern" file这将在file文件中搜索包含pattern的行并打印出来。
  2. 在多个文件中搜索指定字符串:grep "pattern" file1 file2这将在file1和file2中搜索包含pattern的行并打印出来。
  3. 在目录及其子目录下递归搜索指定字符串:grep -r "pattern" directory这将在directory目录及其子目录中递归搜索包含pattern的行并打印出来。
  4. 忽略大小写进行搜索:grep -i "pattern" file这将在file文件中搜索不区分大小写的pattern并打印出来。

        grep指令还支持更多的选项和正则表达式的使用,可以实现更灵活的文本搜索。可以通过man grep命令查看更详细的帮助文档,了解更多grep指令的用法和选项。


19.zip/unzip指令

在Linux系统中,zip和unzip指令用于压缩和解压缩文件或目录

1.zip指令

zip指令用于将文件或目录压缩成一个zip格式的归档文件

zip命令的基本语法:zip [选项] 输出文件 归档文件

   一些常见的选项:

  • -r:递归地压缩目录及其所有子目录中的文件。
  • -j:只压缩文件本身,而不包含目录结构。
  • -u:只压缩新添加或修改的文件。

   示例:

  • 压缩单个文件:zip compressed.zip file.txt这将将file.txt压缩成compressed.zip文件。
  • 压缩目录及其内容:zip -r compressed.zip directory   这将递归地将directory目录及其所有子目录和文件压缩成compressed.zip文件。

2. unzip指令:

unzip指令用于解压缩zip格式的归档文件

   unzip命令的基本语法:unzip [选项] 归档文件

   一些常见的选项:

  • -d 目标目录`:指定解压缩的目标目录。
  • -l:列出归档文件中的文件列表,而不进行实际解压缩。

   示例:

  • 解压缩归档文件:unzip compressed.zip这将解压缩compressed.zip文件,并将文件提取到当前目录。
  • 解压缩到指定目录:unzip compressed.zip -d target_directory这将解压缩compressed.zip文件,并将文件提取到target_directory目录。

        zip和unzip指令提供了在Linux系统中进行文件压缩和解压缩的功能。可以使用man zipman unzip命令查看更详细的帮助文档,了解更多选项和用法。


20.tar指令

在Linux系统中,tar指令用于创建和提取tar格式的归档文件,常用于打包和解包多个文件或目录。

tar指令的基本语法:tar [选项] [归档文件] [文件/目录...]

以下是一些常见的选项:

1. -c:创建新的归档文件。
2. -x:从归档文件中提取文件。
3. -f 归档文件`:指定归档文件的名称。
4. -v:显示详细的操作信息。
5. -z:使用gzip进行压缩或解压缩。
6. -j:使用bzip2进行压缩或解压缩。
7. -r:向现有归档文件中追加文件或目录。
8. -t:列出归档文件中的文件列表。

下面是一些使用示例:

  1. 创建归档文件:tar -cvf archive.tar file1 file2 directory这将创建一个名为archive.tar的归档文件,并将file1、file2和directory加入到归档文件中。
  2. 提取归档文件:tar -xvf archive.tar这将从archive.tar归档文件中提取出所有文件和目录。
  3. 创建并使用gzip进行压缩:tar -czvf archive.tar.gz file1 file2 directory这将创建一个使用gzip压缩的归档文件archive.tar.gz,并将file1、file2和directory加入到归档文件中。
  4. 使用bzip2进行压缩:tar -cjvf archive.tar.bz2 file1 file2 directory这将创建一个使用bzip2压缩的归档文件archive.tar.bz2,并将file1、file2和directory加入到归档文件中。

        tar指令支持更多的选项和功能,例如排除指定文件或目录、仅提取部分文件等。可以使用man tar命令查看更详细的帮助文档,了解更多选项和用法。


21.bc指令

在Linux系统中,bc是一种用于进行任意精度计算的命令行计算器。它支持整数和浮点数运算,并提供了一些基本的数学函数和控制结构。

bc命令的基本语法:bc [选项] [文件]

以下是一些常见的选项:

1. -i:以交互式模式运行bc,进入交互式计算器。
2. -q:以静默模式运行bc,在脚本中进行计算而不打印结果。
3. -l:加载标准数学库,提供数学函数(如平方根、三角函数等)的支持。

使用bc进行计算时,可以直接在命令行中输入表达式。支持的操作符包括加法(+)、减法(-)、乘法(*)、除法(/)等。

$ bc
6 + 4
10
3 * 5
15
22 / 7
3

        除了基本的算术运算外,bc还提供了一些高级的功能,如条件语句和循环结构。通过在脚本文件中编写bc代码,可以实现更复杂的计算和处理。示例脚本文件(calc.bc):

if (10 > 5) {print "10 is greater than 5\n"
} else {print "10 is not greater than 5\n"
}for (i = 1; i <= 5; i++) {print i, "\n"
}

运行脚本文件:

$ bc calc.bc

        以上是bc命令的简要介绍。可以使用man bc命令查看更详细的帮助文档,了解更多选项和用法。


22.uname –r指令

在Linux系统中,uname -r 指令用于获取当前正在运行的内核的版本号。

uname是一个用于获取系统信息的命令,而-r选项用于指定只输出内核版本号。

使用uname -r指令的语法:uname -r

当你在终端中执行该指令时,它将输出正在运行的内核的版本号。

示例输出:4.15.0-65-generic

这个输出表示当前系统中正在运行的内核的版本号为4.15.0-65-generic。

uname -r在管理和诊断系统问题时非常有用,特别是当你需要获取内核版本号以确认所需的内核模块是否与当前内核兼容时。

此外,uname命令还支持其他选项,如:

  • -a:输出所有可用的系统信息。
  • -s:输出内核名称。
  • -n:输出主机名。
  • -m:输出系统类型(如x86_64)。

        你可以通过man uname命令查看uname命令的完整用法和选项说明。


23.重要的几个热键

在Linux系统中,有一些重要的热键可以提高工作效率和便捷操作。以下是几个常用的热键:

1. Ctrl + C:中断当前正在运行的程序。当你需要提前结束一个正在运行的命令或程序时,可以使用Ctrl + C来终止它。

2. Ctrl + D:在终端中表示输入结束或退出当前会话(EOF)。当你想要退出当前的shell会话或表示输入结束时,可以使用Ctrl + D。

3. Ctrl + Z:将当前正在运行的程序放入后台,并暂停其执行。这常用于暂停正在运行的程序,然后再次恢复它或将其置于后台运行。

4. Ctrl + A:将光标移动到命令行的最开始处。当你想要快速移动到命令行的起始位置时,可以使用Ctrl + A。

5. Ctrl + E:将光标移动到命令行的最末尾。当你想要快速移动到命令行的末尾位置时,可以使用Ctrl + E。

6. Ctrl + L:清除当前终端屏幕并滚动到顶部,相当于执行`clear`命令。当你需要清除终端屏幕上的输出并返回到顶部时,可以使用Ctrl + L。

7. Tab 键:自动补全命令或文件名。在终端中输入命令或文件名时,按下Tab键可以自动补全该命令或文件名,提高输入命令的速度。

8. 上下箭头键:用于在命令历史记录中浏览之前执行过的命令。按向上箭头键可以显示上一个执行过的命令,按向下箭头键可以显示下一个执行过的命令。


24.关机指令

在Linux系统中,关机是一个重要的操作,通过命令可以实现关机。以下是Linux下常用的关机指令:

1. shutdown指令:shutdown指令用于安全地关闭系统,在关机之前通知登录用户并执行必要的步骤。shutdown指令有多个选项,其中一些常用的选项如下:

  • shutdown -h now:立即关机。
  • shutdown -h +10:在10分钟后关机。
  • shutdown -h 02:00:在指定的时间(例如02:00)关机。
  • shutdown -r now:立即重启系统。

2. halt指令:halt指令用于立即关闭系统,不进行任何通知或动作。执行halt指令后,系统会立即停止,并提示你安全地关闭电源。

3. poweroff指令:poweroff指令用于关闭系统并关闭计算机电源。它类似于halt指令,但会在关机之前执行一些额外的操作,如卸载文件系统等。

需要注意的是,关机指令通常需要root用户权限才能执行。你需要以root用户身份或使用sudo来执行这些关机指令。

在执行任何关机指令之前,务必保存并关闭所有正在进行的工作,以免丢失数据。

另外,还可以使用图形界面中的关机按钮或通过logout菜单来关机。这些方法通常会触发相应的关机指令来执行关机操作。

  • shutdown指令:用于安全地关机或重启系统,并可设置延迟时间。
  • halt指令:立即关闭系统,不进行通知。
  • poweroff指令:关闭系统并关闭计算机电源。

可以使用man命令来查看这些指令的更多选项和用法,如man shutdown、man halt、man poweroff。


温馨提示

        感谢您对博主文章的关注与支持!在阅读本篇文章的同时,我们想提醒您留下您宝贵的意见和反馈。如果您喜欢这篇文章,可以点赞、评论和分享给您的同学,这将对我提供巨大的鼓励和支持。另外,我计划在未来的更新中持续探讨与本文相关的内容。我会为您带来更多关于Linux以及C++编程技术问题的深入解析、应用案例和趣味玩法等。请继续关注博主的更新,不要错过任何精彩内容!

        再次感谢您的支持和关注。我们期待与您建立更紧密的互动,共同探索Linux、C++、算法和编程的奥秘。祝您生活愉快,排便顺畅!


 

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

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

相关文章

uniapp两个单页面之间进行传参

1.单页面传参&#xff1a;A --> B url: .....?code JSON.stringify(param), 2.单页面传参B–>Auni.$emit() uni.$on()

使用HTTP隧道时如何应对目标网站的反爬虫监测?

在进行网络抓取时&#xff0c;我们常常会遇到目标网站对反爬虫的监测和封禁。为了规避这些风险&#xff0c;使用代理IP成为一种常见的方法。然而&#xff0c;如何应对目标网站的反爬虫监测&#xff0c;既能保证数据的稳定性&#xff0c;又能确保抓取过程的安全性呢&#xff1f;…

[CKA]考试之查看pod的cpu

由于最新的CKA考试改版&#xff0c;不允许存储书签&#xff0c;本博客致力怎么一步步从官网把答案找到&#xff0c;如何修改把题做对&#xff0c;下面开始我们的 CKA之旅 题目为&#xff1a; Task 找出标签是namecpu-loader的Pod&#xff0c;并过滤出使用CPU最高的Pod&#…

Spring Boot集成Mybatis-Plus

Spring Boot集成Mybatis-Plus 1. pom.xml导包 <!--lombok--><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency><!--mysql驱动--><dependency><groupId>mysql<…

论 SoC上的Linux如何拉动外部I/O

在MCU中&#xff08;如classic autosr或其他RTOS&#xff09;&#xff0c;一般可以直接通过往对应的寄存器&#xff08;地址转为指针&#xff09;写值&#xff0c; 或者调用一些硬件抽象层或者驱动接口来拉动芯片提供的GPIO。 但是在Linux中&#xff0c;可能不会让应用层直接去…

我在leetcode用动态规划炒股

事情是这样的&#xff0c;突然兴起的我在letcode刷题 121. 买卖股票的最佳时机122. 买卖股票的最佳时机 II123. 买卖股票的最佳时机 III 以上三题。 1. 121. 买卖股票的最佳时机 1.1. 暴力遍历&#xff0c;两次遍历 1.1.1. 算法代码 public class Solution {public int Ma…

【Redis】——RDB快照

Redis 是内存数据库&#xff0c;但是它为数据的持久化提供了两个技术&#xff0c;一个是AOF日志&#xff0c;另一个是RDB快照&#xff1a; AOF 文件的内容是操作命令&#xff1b;RDB 文件的内容是二进制数据。 RDB 快照就是记录某一个瞬间的内存数据&#xff0c;记录的是实际…

机器学习深度学习——卷积神经网络(LeNet)

&#x1f468;‍&#x1f393;作者简介&#xff1a;一位即将上大四&#xff0c;正专攻机器学习的保研er &#x1f30c;上期文章&#xff1a;机器学习&&深度学习——池化层 &#x1f4da;订阅专栏&#xff1a;机器学习&&深度学习 希望文章对你们有所帮助 卷积神…

Python Opencv实践 - 基本图像IO操作

import numpy as np import cv2 as cv import matplotlib.pyplot as plt#读取图像 #cv2.IMREAD_COLOR&#xff1a; 读取彩色图像&#xff0c;忽略alpha通道&#xff0c;也可以直接写1 #cv2.IMREAD_GRAYSCALE: 读取灰度图&#xff0c;也可以直接写0 #cv2.IMREAD_UNCHANGED: 读取…

C高级【day4】

思维导图&#xff1a; 写一个函数&#xff0c;获取用户的uid和gid并使用变量接收&#xff1a; #!/bin/bashfunction get_uid {my_uidid -umy_gidid -g }get_uid echo "当前用户的UID&#xff1a;$my_uid" echo "当前用户的GID&#xff1a;$my_gid"整理冒泡…

论文代码学习—HiFi-GAN(4)——模型训练函数train文件具体解析

文章目录 引言正文模型训练代码整体训练过程具体训练细节具体运行流程 多GPU编程main函数&#xff08;通用代码&#xff09;完整代码 总结引用 引言 这里翻译了HiFi-GAN这篇论文的具体内容&#xff0c;具体链接。这篇文章还是学到了很多东西&#xff0c;从整体上说&#xff0c…

FPGA学习——Altera IP核调用之PLL篇

文章目录 一、IP核1.1 IP核简介1.2 FPGA中IP核的分类1.3 IP核的缺陷 二、PLL简介2.1 什么是PLL2.2 PLL结构图2.3 C4开发板上PLL的位置 三、IP核调用步骤四、编写测试代码五、总结 一、IP核 1.1 IP核简介 IP核&#xff08;知识产权核&#xff09;&#xff0c;是在集成电路的可…

8-7 homework

1.思维导图 2.写一个函数&#xff0c;获取用户的uid和gid并使用变量接收 3.bubble_sort #include <stdio.h>//先排好的都是放在最后的&#xff0c;所以for的内层限制条件是不把后面的计算在内的&#xff0c;内层只循环前面的 int main(){int a [10]{11,42,3,24,65,16,73…

数据结构——红黑树基础(博文笔记)

数据结构在查找这一章里介绍过这些数据结构&#xff1a;BST&#xff0c;AVL&#xff0c;RBT&#xff0c;B和B。 除去RBT&#xff0c;其他的数据结构之前的学过&#xff0c;都是在BST的基础上进行微小的限制。 1.比如AVL是要求任意节点的左右子树深度之差绝对值不大于1,由此引出…

centos7 yum源安装出错及更新问题

如下 首先&#xff0c;在搜索jdk时报错如下&#xff1a; 解决办法 1、进入 yum的repo目录 cd /etc/yum.repos.d/2、修改所有的CentOS文件内容 sed -i s/mirrorlist/#mirrorlist/g /etc/yum.repos.d/CentOS-*sed -i s|#baseurlhttp://mirror.centos.org|baseurlhttp://vau…

Report Sharp-Shooter Lite Edition Crack

Report Sharp-Shooter Lite Edition Crack 报告Sharp Shooter™ 是为.NET Framework设计的&#xff0c;使用C#编写&#xff0c;并且只包含100%的托管代码。Report Sharp Shooter能够从多个数据源生成任何复杂的报告&#xff0c;并将生成的报告导出为大多数格式&#xff0c;包括…

机器学习笔记之优化算法(八)简单认识Wolfe Condition的收敛性证明

机器学习笔记之优化算法——简单认识Wolfe Condition收敛性证明 引言回顾&#xff1a; Wolfe \text{Wolfe} Wolfe准则准备工作推导条件介绍推导结论介绍 关于 Wolfe \text{Wolfe} Wolfe准则收敛性证明的推导过程 引言 上一节介绍了非精确搜索方法—— Wolfe \text{Wolfe} Wolf…

Wavefront .OBJ文件格式解读【3D】

OBJ&#xff08;或 .OBJ&#xff09;是一种几何定义文件格式&#xff0c;最初由 Wavefront Technologies 为其高级可视化器动画包开发。 该文件格式是开放的&#xff0c;已被其他 3D 图形应用程序供应商采用。 OBJ 文件格式是一种简单的数据格式&#xff0c;仅表示 3D 几何体&…

node.js安装

下载 https://nodejs.org/en 安装 D:\Program Files\nodejs 配置 D:\Program Files\nodejs 目录下新建 node_cache 和 node_global 在cmd管理员身份运行&#xff1a; npm config set prefix "D:\Program Files\nodejs\node_global" npm config set cache &qu…

算法通关村第五关——HashMap和队列问题分析

1.HashMap 1.1Hash的概念和基本特征 哈希(Hash)&#xff1a;也称为散列。就是把任意长度的输入&#xff0c;通过散列算法&#xff0c;变换成固定长度的输出&#xff0c;这个输出值就是散列值。 假设数组array存放的是1到15这些数&#xff0c;现在要存在一个大小是7的Hash表中…