当前位置: 首页 > news >正文

速查Linux常用指令

一、用户配置

1. 超级用户与普通用户

1)Ubuntu 更新 root 密码

sudo passwd root(执行 sudo 时输入的是当前用户的密码)

sudo 是权限提升,使用时,身份就会提升为 root 。

2)普通用户($)与超级用户(#)相互切换

  • 普通用户 → 超级用户:su or su root

  • 超级用户 → 普通用户:su [用户名]

  • 退回上一个用户:exit

su 切换用户是压栈效果;exit 退出就是弹栈。
超级用户:可以在 linux 系统下做任何事情,不受限制;普通用户:在 linux 下做有限的事情。
普通用户 → 超级用户需要密码;超级用户 → 普通用户不需要密码。

【注】:出现下面情况是因为:Ubuntu 默认 root 是禁用的,安装时没有给 root 配置密码,应该先给 root 配置密码,才能切换到 root 。解决方案是:先执行第 1)步更新 root 密码,再执行第 2)步切换成超级用户。

2. 添加与删除用户

主要是以下六步:

【添加用户】
sudo passwd root
sudo useradd -m [用户名] -s /bin/bash
sudo passwd [用户名]

【删除用户】
cat /etc/passwd
sudo userdel -r [用户名]
cat /etc/passwd

1)查看系统目前有哪些用户

cat /etc/passwd(cat 命令将文件内容显示到屏幕上)

查看组信息:cat /etc/group

【拓展】:

① 查看 Ubuntu 版本:cat /etc/issue

② 查看存储 Linux 系统中用户的密码信息:sudo cat /etc/shadow

文件中每行代表一个用户,使用 “:” 作为分隔符,每行用户信息被划分为 9 个字段。每个字段的含义为——用户名:加密密码:最后一次修改时间:最小修改时间间隔:密码有效期:密码需要变更前的警告天数:密码过期后的宽限时间:账号失效时间:保留字段。【Linux下 /etc/shadow内容详解】

2)添加一个普通用户

sudo useradd -m [用户名] -s /bin/bash

系统会在目录 “/home” 下建立一个名为 [用户名] 的目录。
加 -m 才会创建目录;-s 的作用是指定使用的脚本解析器(bash 是业界最流行的脚本解析器)

  • 如果出现 “useradd:无法锁定 /etc/passwd,请稍后再试” 的情况,说明指令里缺少 “sudo” ,当普通用户要以 root 的身份进行用户配置操作时,必须使用使用命令 “sudo” 。

  • 如果后面没有加 “-s /bin/bash” ,则会出现切换用户后只有一个 $ 符,而非 [用户名]@ubuntu:~$ 的情况。

3)给用户设置密码

sudo passwd [用户名]

添加一个新用户后,如果没有给它设置密码,则该用户无法用 Xshell 进行连接。
注:只有 root 用户才可以给新创建的用户配置密码。

4)删除用户

sudo userdel -r [用户名]

加上 -r 后将删除该用户的家目录 / 工作目录。
需要注意:要区分 “家目录 / 工作目录”(/home/kusunoki)和 “home 目录”(/home)的区别,即 “家目录” ≠ “home 目录” 。

  • 如果出现下述情况,说明用户正在使用,无法删除。解决方法是:先输入 “exit” ,再输入 “sudo userdel -r [用户名]” 即可。

  • 如果出现 “userdel:[用户名] mail spool(/var/mail/[用户名])not found” 是正常的,不用理会。

【注】:如果第一次删除没有加 -r 参数,第二次再用 userdel -r [用户名] ,也无法删除家目录。

二、目录及文件操作

1. 查看文件或目录

1)查看某路径下的内容

  • 查看 home 目录下的内容:ls /home

  • 查看绝对路径(从根目录 / 开始)下的内容:ls /

  • 查看相对路径(从当前路径开始)下的内容:ls . or ls

  • 查看上一级目录下的内容:ls . . or ls ./. .(注意两个点 . 之间不需要空格)

ls / :这个命令会列出根目录的内容,根目录是整个 Linux 文件系统的起点,通常包含子目录,如 bin、etc、lib、usr 等。
ls /home :这个命令仅列出 /home 目录下的内容,/home 目录通常包含各个用户的个人目录,例如,若系统中有用户 user1 和 user2 ,执行该命令后,可能会看到 user1 和 user2 这两个目录。

2)输出内容的颜色设定

ls 的输出内容是有颜色的,比如:目录是蓝色,压缩文件是红色。

如果不需要显示颜色,可以加上参数 –color=never(表示不输出彩色),同时 –color=auto 表示自动,–color=always 表示始终有颜色。

3)查看当前目录的绝对路径

显示当前工作目录:pwd

4)查看指定目录下所有目录及文件的详细信息

ls -l or ll or ls -l /home/kusunoki

每行列出的详细信息依次是:文件类型与权限、硬链接数、文件所有者、文件所属组、文件大小、最近修改时间、文件名字。

使用 ls –l 命令显示的信息中 ,开头是由 10 个字符构成的字符串,其中:

  • 第 1 个字符表示文件类型,它可以是下列类型之一:- → 普通文件、d → 目录、l → 符号链接、p → 命名管道、b → 块设备文件、c → 字符设备文件 、s → socket 文件。

  • 后面的 9 个字符表示文件的访问权限,分为 3 组,每组 3 位:第 1 组表示文件创建者的权限;第 2 组表示同组用户的权限;第 3 组表示其他用户的权限。每一组的 3 个字符分别表示对文件的 “读、写、执行” 权限。

各权限如下:r(读)、w(写)、x(执行)、-(没有设置权限)。
其中 r 的值是 4 ,w 的值是 2 ,x 的值是 1(用二进制的角度看)。
如果一个用户对目录没有写权限,那么它不能在这个目录新增或删除文件。

每一组可以用一个数字表示,例如 r-x 用 5 表示;rw- 用 6 表示;r-- 用 4 表示。那么这三组就可以用 3 个数字进行表示,例如:rwx r-x r-x 是 755 ,rw- r-- r-- 是 644 。

将文件大小变为更方便读取的形式

在获取指定目录下所有目录及文件的详细信息时,将文件大小变为更方便读取的形式:ls -lh

5)显示指定目录下所有子目录与文件

ls -a or ls -a /home/kusunoki(显示隐藏文件)

【注】:

  • 以 “点 .” 开头的文件是隐藏文件。

  • 一个空目录必须包含 “.” 和 “. .” 这两项隐藏文件。

  • 配置文件会设计为隐藏文件,即在执行 “ls -a” 时配置文件将以点开头出现。

6)获取 ls 的帮助

得到更加详细的参数描述:man ls

man [命令] :来查看对应命令的帮助,通过 “/” 来进行搜索。

2. 改变工作目录

将当前工作目录改变到指定的目录下:cd [目录名]

1)切换到父目录 / 上一级目录

cd . .(注意这两个点 . 之间不需要空格,且一个点 . 代表当前目录)

2)将当前工作目录改变到根目录下

cd /

3)将当前工作目录改变到用户主(家 / 工作)目录下

cd ~(与直接执行 cd 效果一样)

4)将当前工作目录改变到上一次目录下

cd -(来回切换两个路径)

3. 目录的基本操作

1)在当前目录下创建一个子目录

mkdir [目录名]

2)在当前工作目录下删除一个子目录

rmdir [目录名]

此时该子目录必须是个空目录,如果使用该命令删除一个非空的目录,则删除失败。

【注】:

  • 需要先完成 rmdir dir1/dir2 和 rm dir1/file 操作,才能完成 rmdir dir1 操作。

  • 利用 rm -r [目录名] 删除目录时,不要求目录为空。

3)复制文件或目录

把指定的源文件复制到目标文件或把多个源文件复制到目标目录中:cp [源文件名] [目标文件名]

  • 要拷贝的源文件是一个目录:cp -r [源目录名] [目标目录名](此时将同时拷贝该目录下的子目录和文件,且目标文件必须也是目录)

  • 若目标目录中存在与源文件同名的文件,则直接覆盖,系统不进行提示:cp -f [源文件名] [目标文件名]

  • 若目标文件中存在与源文件同名的文件,系统会提示是否进行覆盖:cp -i [源文件名] [目标文件名]

4)移动文件或目录

mv [源文件或目录名] [目标文件或目录名](类似于剪切)

  • 当第二个参数是文件名称时,mv 命令执行重命名功能,此时,源文件 / 源目录只能有一个,它将所给的源文件或源目录重命名为给定的目标文件名。

  • 当第二个参数是已存在的目录名称时,源文件 / 源目录参数可以有多个,mv 命令将各参数指定的源文件均移至目标目录中。

在跨文件系统移动文件时,mv 先拷贝,再将原有文件删除,而链至源文件的链接也将丢失。

  • 如果在移动的过程中存在重名的,则进行提示是否覆盖:mv -i [源文件或目录名] [目标文件或目录名]

  • 如果在移动的过程中存在重名的,则直接进行覆盖,不会给出提示:mv -f [源文件或目录名] [目标文件或目录名]

5)删除文件或目录

rm [文件或目录名]

删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是删除了链接,原有文件均保持不变。如果删除时没有 -r 选项则不会删出目录。

  • -f :删除过程中不会给出提示

  • -i :删除过程中会给出交互式提示

  • -r :如果删除的是一个目录,则将该目录下的目录及子目录均删除掉

① rm -rf / 是一个很危险的指令,不要轻易使用,它会删除根目录下的所有文件。解决办法只能是重装 Ubuntu 。
② 如果执行 rm -rf [文件名] 时,出现:“rm:无法删除 ‘xxx’:权限不够” 的情况,则利用 sudo rm -rf [文件名] 进行删除。
③ 如果 rm [文件名] 删除失败,可能是因为对该文件没有写权限。

4. 显示目录树形结构

在 Ubuntu 需要执行 sudo apt install tree 进行安装。

以树状图列出目录的内容:tree(执行 tree 指令,它会列出指定目录下的所有文件,包括子目录里的文件)

  • -a :显示所有文件和目录,包含隐藏文件,但不包含 “.” 和 “. .”

  • -h :额外显示每个文件的大小

  • -t :用文件和目录的更改时间排序

  • -u :列出文件或目录的拥有者名称,没有对应的名称时,则显示用户识别码

  • -C :在文件和目录清单上加上色彩,便于区分各种类型

  • -d :显示目录名称而非内容

  • -D :列出文件或目录的更改时间

  • -g :列出文件或目录的所属群组名称,没有对应的名称时,则显示群组识别码

  • -i :不以阶梯状列出文件或目录名称

5. 改变目录或文件的权限

能不能改变一个文件的权限,依赖于是不是文件的拥有者
能不能进去一个目录,依赖于对这个目录有没有 r(读)x(执行)权限
能不能在一个目录下新建文件或者删除文件,依赖于对这个目录有没有 w(写)权限
普通用户如果有 r 权限,就可以读,有 w 权限,就可以写

可以通过 chmod 来修改权限。

1)文字设定法

修改指定文件名中 who 的权限增加 / 去除 / 赋值为 mode :

chmod [who][+/-/=][mode] [文件名]

参数

① 操作对象 who 可是下述字母中的任一个或者它们的组合:

  • “u” 表示 “用户(user)” ,即文件或目录的所有者。
  • “g” 表示 “同组(group)用户” ,即与文件所有者有相同组 ID 的所有用户。
  • “o” 表示 “其他(others)用户” 。
  • “a” 表示 “所有(all)用户” ,它是系统默认值。

【注】:为所有用户(用户、组和所有其他用户)分配某文件的执行权限:chmod +x [文件名] ,等价于 chmod a+x [文件名] 。即在大多数情况下,使用 +x 等同于使用 a+x 。

② 操作符号可以是:

  • “+” 添加某个权限。
  • “-” 取消某个权限。
  • “=” 赋予给定权限并取消其他所有权限(如果有的话)。

③ 设置 mode 所表示的权限可用下述字母的任意组合:

  • “r” 可读
  • “w” 可写
  • “x” 可执行

④ 文件名:以空格分开的要改变权限的文件列表,支持通配符。

在一个命令行中可给出多个权限方式,其间用逗号隔开。例如:chmod g+r,o+r example(使同组和其他用户对文件 example 有读权限)。

2)数字设定法

我们必须首先了解用数字表示的属性的含义:0 表示没有权限,1 表示可执行权限,2 表示可写权限,4 表示可读权限,然后将其相加。所以数字属性的格式应为 3 个从 0 到 7 的八进制数,其顺序是(u)(g)(o)。

例如,如果想让某个文件的所有者有 “读 / 写” 二种权限,需要把 4(可读)+ 2(可写)= 6(读/写)。数字设定法的一般形式为:chmod [mode] [文件名] 。

举例:chmod 755 wch.txt ,其中 wch.txt 文件的权限为 rwx r-x r-x ,则文件主本人(u)有:可读 / 可写 / 可执行权;文件主同组人(g) 有:可读 / 可执行权;其他人(o) 有:可读 / 可执行权。

6. 文件查找

在指定目录结构中搜索文件,并执行指定的操作:find [起始目录] [查找条件] [操作对象]

find 的使用手册,查看该命令的帮助:man find ,它通过 “/” 来进行搜索。

1)起始目录

起始目录一般是:家目录 / 工作目录(“~”)或者当前目录(“.”)

2)查找条件

该命令的查找条件可以是一个逻辑运算符 not 、and 、or 组成的复合条件。

  • and :逻辑与,在命令中用 -a 表示,表示只有当所给的条件都满足时,查找条件才满足。

例如:在当前目录下查找名为 dir1 的目录和名为 hello 的文件。

  • or :逻辑或,在命令中用 -o 表示,表示只要所给的条有一个满足,查找条件就满足。

例如:在当前目录下查找名为 dir1 或 dir2 的文件。

  • not :逻辑非,在命令中用 ! 表示查找不满足所给条件的文件。

例如:在 dir1 目录下查找名字不是 dir2 的文件。

常用的查找条件有:

① 根据名称和文件属性查找:

  • -name ‘字串’ :查找文件名匹配所给字串的所有文件,字串内可用通配符 “✳” 、“?” 、“[ ]” ,其中 ✳ 表示零个或者任意多个字符,? 表示有且仅有一个字符,[ ] 表示某个连续的范围(ASCII 表)。

【ASCII 表 | 菜鸟教程】

  • -gid n :查找属于 ID 号为 n 的用户组的所有文件

  • -uid n :查找属于 ID 号为 n 的用户的所有文件

利用 cat /etc/passwd 查看用户标识号和组标识号。

因此,查找属于 kusunoki 的用户组 / 用户的所有文件的命令是:find . -gid 1000 / find . -uid 1000(以用户 ID 查看)。

  • -group ‘字串’ :查找属于用户组名为所给字串的所有的文件

  • -user ‘字串’ :查找属于用户名为所给字串的所有的文件

因此,查找属于 kusunoki 的用户组 / 用户的所有文件的命令是:find . -group kusunoki / find . -user kusunoki(以用户名查看)。

  • -empty :查找大小为 0 的文件或者是空目录

  • -perm :查找具有指定权限的文件和目录,权限的表示可以如 711,644 等

  • -size +/-n[bcwkMG] :查找指定文件大小的文件,n 后面的字符表示单位,缺省为 b ,代表 512 字节的块。(前面一般要带加号 [大于] 或减号 [小于])

  • -type x :查找类型为 x 的文件,x 为下列字符之一
    b → 块设备文件
    c → 字符设备文件
    d → 目录文件
    p → 命名管道(FIFO)
    f → 普通文件
    l → 符号链接文件(symbolic links)
    s → socket 文件

注:软链接与硬链接

输入 ln -s [文件名] [软链接文件名] 建立软链接,类似于快捷方式;输入 ln [文件名] [硬链接文件名] 建立硬链接。

ls -i 显示的第一列是文件的 inode 值。
从下图可以看出,硬链接文件的 inode 值与源文件的 inode 值一致,而软链接文件 / 复制文件的 inode 值与源文件的 inode 值则不一致。

I、file_sort 的文件大小为 4 是因为它存储了去往 file 文件的路径;file_hard 和 file 的大小完全一致。
II、如果删除 file 文件,则 file_soft 不可访问,而 file_hard 仍可访问,只是硬链接数从 2 变成 1(去往 inode 值为 797550 的 “入口” 减少一个)。
III、硬链接数:引用计数原理,当引用计数为 0 时资源释放(该 inode 值分配给别的资源),否则资源不被释放。
IV、拷贝文件时,需要开辟一块新的空间写文件,而删除文件只是将其硬链接移除(引用计数为 0),而文件的具体内容还在,这也就是为什么删除文件比复制文件要快的原因。

② 根据时间查找:

  • -amin n :查找 n 分钟以前文件内容被访问过的所有文件(其中 + 表示 n 分钟之前,- 表示 n 分钟之内,+ 号和 - 号都不能省略)。

  • -cmin n :查找 n 分钟以前文件状态被修改过的所有文件。

  • -mmin n :查找 n 分钟以前文件内容被修改过的所有文件(用加减号)。

  • -atime n :查找 n 天以前文件内容被访问过的所有文件。

  • -ctime n :查找 n 天以前文件状态被修改过的所有文件。

  • -mtime n :查找 n 天以前文件内容被修改过的所有文件。

3)操作对象

-exec [命令名称] {} :对符合条件的文件执行所给的 Linux 命令,而不询问用户是否需要执行该命令。其中 {} 表示命令的参数,即为所找到的文件,命令的末尾必须以 “ \ ; ” 结束。

例如,在当前目录下查找名为 file 的文件并显示这些文件的详细信息:

find . -name [文件名] -exec ls -l {} \ ;(注意 “\” 与 “;” 之间无空格)

工作时一般不采用 exec ,而是采用 xargs ,即将 “-exec” 换为 “|xargs” ,后面的 “\ ;” 删去。例如上面操作可以改为:

find . -name [文件名]|xargs ls -l 或 find . -name [文件名] | xargs ls -l(其中 “|” 表示管道)
注:如果要把名为 file 的文件全删除,则执行命令:find . -name file | xargs rm -rf

下面是 find 与具有两个操作对象的命令组合,将 sample_directory 目录下以 file 开头的文件复制到 dir_copy 目录下:

find sample_directory -name “file*” -exec cp {} dir_copy \ ;

或 find sample_directory -name “file*” | xargs -i cp {} dir_copy ,其中 -i 的作用是把结果放到 {} 里。

7. 列出文件系统的整体磁盘空间使用情况

df [选项] [文件名]

其中选项为 -h :以人们易读(human-readable)的 GB 、MB 、KB 等格式显示,可以直接 df -h 显示整个磁盘使用情况。

8. 显示每个文件和目录的磁盘使用空间

du [选项] [文件名]

其中选项为 -h :以人们易读(human-readable)的 GB 、MB 、KB 等格式显示,操作发现目录的每一级都显示,如果只想显示当前目录,则执行命令:du -h --max-depth=0 /home/kusunoki 。

三、文件查看及处理命令

1. 查看文件内容

命令: cat [选项] [文件] ;功能: 查看目标文件的内容。

参数:

  • -b :对非空输出行编号

  • -E :在每行结束处显示 $

  • -n :对输出的所有行编号

  • -s :不输出多行空行

如何使用 vim 编辑器对文件进行编辑:【Linux vi/vim】

标准的输入输出与重定向

文件描述符是一个整数,它代表一个打开的文件,标准的三个描述符号:

  • 标准输入:一般指键盘,描述符为 0 ;

  • 标准输出:一般指屏幕输出,描述符为 1 ;

  • 错误输出:也是屏幕,描述符为 2 。

重定向符号:

  • “<” 代表重定向输入;

  • “>” 代表重定向输出;

  • “>>” 代表添加输出;

  • “2>” 代表错误重定向;

  • “&>” 代表错误和信息重定向。

cat 常常与重定向一起使用,其中 “>” 表示创建,“>>” 表示追加,“<<” 表示以什么结束。

如果 cat 的命令行中没有参数,它就会从标准输入中读取数据,并将其送到标准输出。

Linux 中创建空文件的四种方式

方式 1:echo -n > a.txt(如果输入的命令是:echo > aa.txt ,则 aa.txt 会有一个空字节)

方式 2:touch b.txt

方式 3:cat > c.txt ,按 Ctrl+c 或 Ctrl+d 组合键退出

方式 4:vi d.txt ,进入之后输入 :wq 退出

2. 显示文件内容的前几行 / 后几行

1)显示文件内容的前几行

命令:head -n [行数值] [文件名] or head -[行数值] [文件名]

功能:显示目标文件的前几行。

例如:要显示 sample_directory/file 的前 5 行,则使用 head -n 5 sample_directory/file 或 head -5 sample_directory/file 。

2)显示文件内容的后几行

命令:tail -n [行数值] [文件名] or tail -[行数值] [文件名]

功能:显示目标文件的最后几行。

例如:要显示 sample_directory/file 的最后 3 行,则使用 tail -n 3 sample_directory/file 或 tail -3 sample_directory/file 。

也可以执行 history |tail -10 输出最后 10 行执行过的命令,执行 history |tail -10 > day3.txt 将最后 10 行执行过的命令输入到 day3.txt 文件里。

3. 统计指定文件中的字节数、字数、行数

wc [文件名]

  • -c :统计字节数;

  • -l :统计行数;

  • -m :统计字符数,这个标志不能与 -c 标志一起使用;

  • -w :统计字数,一个字被定义为由空白、跳格(tab)或换行字符分隔的字符串。

统计当前目录下的文件数目:ls|wc -l

4. 搜索文件内容 grep

命令:grep [选项] [查找模式] [文件名 1 , 文件名 2 , …]

功能:grep 过滤器查找指定字符模式的文件,并显示含有此模式的所有行。被寻找的模式称为正则表达式。

grep 的通配符:

  • “.*” 代表零个或任意多个字符

  • “.” 代表一个字符

  • “[]” 代表某个范围

常用的一些正则表达式:

  • “ ^ ” :以什么开头 ,例如 ls -l | grep ^d 显示当前目录下的所有子目录的详细信息。

  • “ $ ” :以什么结尾,例如 ls -l | grep c$ 显示当前目录下以 c 结尾的文件。

常用的参数:

  • “-F” :每个模式作为固定的字符串对待。

  • “-c” :只显示匹配行的数量。

  • “-n” :在输出前加上匹配串所在的行号。

  • “-i” :比较时不区分大小写。

如何找到所有 py 文件里是否调用了 print 函数?find . -name “*.py” | xargs grep print

5. 了解

1)单页浏览文件

more 或 less 命令

2)对文件内容进行排序

sort [文件名]

3)查看文件内容类型

file [文件名] :根据文件内容,判别文件类型。

4)报告或删除文件中重复的行

uniq [文件名]

  • -c :在输出行前面加上每行在输入文件中出现的次数;

  • -d :仅显示重复行;

  • -u :仅显示不重复的行。

5)汉字编码转换 iconv(不存在乱码)

输入 / 输出格式规范:

  • -f(from-code=名称):原始文本编码

  • -t(to-code=名称):输出编码

汉字编码 gbk 2 个字节 、utf8 3 个字节。举例:iconv -f utf-8 -t gb2312 hanzi>hanzi1

四、其他命令

1. 管道与命令替换

1)管道

管道:是重定向的一种,就像一个导管一样,将一个程序或命令的输出作为另一个程序或命令的输入。例如:ls|wc -l 。

2)命令替换

命令替换:和重定向有点相似,但区别在于命令替换是将一个命令的输出作为另一个命令的参数。常用的格式为:command1 $(command2)

举例:首先列出当前的所有信息,并重定向到 redirect 文件中:ls > redirect ;然后,通过命令替换,列出 redirect 文件中所有的文件信息:ls -l $(cat redirect) 。

2. 文件或目录的创建掩码

umask 指文件(0666)或目录(0777)创建时在全部权限中要去掉的一些权限,普通用户缺省时 umask 的值为 002 ,超级用户为 022 。

002 表示创建目录时所有者的权限不去掉, 所属组权限不去掉,其他组权限写属性去掉。

创建一文件以后,普通用户缺省的权限为 664 ,超级用户为 644 ;创建一目录以后,普通用户缺省的权限为 775 ,超级用户为 755 。

可以通过 umask 查看默认的缺省的掩码值,通过 umask [xxx] 修改掩码值。

3. 文档管理

命令:tar [主选项+辅选项] [目标文档] [源文件或目录]

简单说:打包压缩,也有解压功能,利用 tar 命令,可以把一大堆的文件和目录全部打包成一个文件,这对于备份文件或将几个文件组合成为一个文件以便于网络传输是非常有用的。

常用参数:

  • c :创建新的档案文件。

  • z :用 gzip 来压缩 / 解压缩文件,后缀名为 .gz ,加上该选项后可以将档案文件进行压缩。

  • x :从档案文件中释放文件。

  • v :在归档过程中显示处理的文件,即显示解压过程。

  • f :使用档案文件或设备。

  • r :要把存档的文件追加到档案文件的末尾,例如,把存档的 file 文件追加到 test 文件的末尾 :tar rf test.tar file

例如,把 “/home/kusunoki/sample_directory” 下的所有文件的打包到 source.tar ,则使用 :tar cvf source.tar /home/kusunoki/sample_directory/* 。

如果在打包的过程中还要进行压缩,则使用 :tar czvf source.tar.gz /home/kusunoki/sample_directory/* 。

可以使用以下命令检查 tar 文件的内容:tar -tf source.tar ,此命令将列出 tar 文件中的所有文件和目录。

如果要将归档的文件 source.tar / source.tar.gz 释放掉,则使用 :tar xvf source.tar / tar xzvf source.tar.gz 。

有时,文件解压后找不到,可能是因为没有正确指定目标路径。可以使用 -C 参数指定解压后的目标路径:tar -xvf source.tar -C /home/kusunoki/sample_directory

注:source.tar 是红色的,因为它不可执行,运行指令:chmod +x source.tar 后,source.tar 会变成绿色。

4. 文件压缩解压

命令:gzip/bzip2 [选项] [压缩或解压缩的文件名]

功能:gzip 用来将文件压缩成后缀为 .gz 的压缩文件,或者将后缀为 .gz 的文件进行解压;bzip2 用来将文件压缩成后缀名为 .bz2 的压缩文件,或者将后缀为 .bz2 的压缩文件解压。

常用参数:

  • -d : 将压缩文件进行解压。

  • -v : 在压缩或解压过程中显示解压或压缩的文件。

例如,将 file 进行压缩,则使用:gzip/bzip2 -v file ,会将 file 压缩成 file.gz 或者 file.bz2 ;如果将刚才的压缩文件解压,则使用:gzip -dv file.gz 或者 bzip2 -dv file.bz2 。

如果出现下述情况,则执行指令:gzip -fv file(使用选项 “-f” 强制解压缩)

5. scp 远程 copy 文件命令

scp [filename] [username]@ip:path ,其中 filename 是文件名称,username 是 copy 到的目标主机的用户名,ip 是目标主机 IP ,path 是目标主机路径。

举例:

  • 从本机 copy 到其他机器:scp file kusunoki@192.168.200.128:~/sample_directory

  • 从其他机器 copy 到本机:scp kusunoki@192.168.200.128:~/sample_directory file

如果 scp 的是文件夹,需要加 -r

Ubuntu 安装 scp的命令:sudo apt-get install openssh-client

6. 无秘钥登录

该文章详细介绍了 ssh 的登录过程:【ssh 连接过程分析】

当用 Windows 下的 cmd(命令提示符)连接 Ubuntu 服务器时,使用命令:ssh kusunoki@192.168.200.128 ,此时需要输入密码。

cmd 退出 ssh 远程登陆的命令:logout or exit 或者使用快捷键 Ctrl + D 。

当有多台服务器时,使用无秘钥登录可以提升工作效率,下面介绍如何设置无秘钥登录。

1)生成公钥和私钥

在 Windows(cmd)或 Linux(Ubuntu)下执行命令:ssh-keygen ,然后一直回车,生成公钥和私钥。

公钥和私钥在 Linux 下的路径为:~/.ssh ;在 Windows 下的路径为:C:\Users\Administrator.ssh 。

2)查看公钥和私钥

Linux :(Ubuntu)

ls ~/.ssh 命令来查看该目录下的内容,用 cd ~/.ssh 命令进入该目录,用 pwd 命令查看当前目录的绝对路径。

cat id_rsacat id_rsa.pub 命令查看你的公钥和私钥的内容。

Windows :(cmd)

cd .ssh 命令进入该目录,用 dir 命令来查看该目录下的内容,用 type 命令查看你的公钥和私钥的内容。

3)公钥复制到服务器的 authorized_keys

在 Git Bash 上执行命令:ssh-copy-id kusunoki@192.168.200.128 。一路 “yes” 下去,需要输入一次密码。

此时,Ubuntu 的 ~/.ssh 路径下就存在 authorized_keys 这个文件了。且 authorized_keys 文件的内容(利用 cat 命令查看)是 Windows 的公钥,即 id_ed25519.pub 的内容(利用 type 命令查看)。

此时,用 cmd 登录 Ubuntu 的 kusunoki 账户或者使用 scp 从 Windows 传输文件到 Ubuntu 的 kusunoki 账户上就不需要输入密码了。

7. 用来查看和配置网络设备

【第11章 Linux的网络管理】

当网络环境发生改变时可通过 ifconfig 命令对网络进行相应的配置,只有 root 权限才可以配置网络。

1)重启网络命令

service network-manager restart or sudo systemctl restart NetworkManager

以下两种重启网络的指令可能会有以下错误:

  • sudo /etc/init.d/networking restart

  • sudo service networking restart

2)重启网卡命令

sudo ifconfig ens33 up

8. 查看与设置路由

命令:route -n ,当网络不通时,通过执行 route 查看路由,查看网关配置是否正确。

五、补充

(I) 安装 vim 编辑器:sudo apt install vim

(II) 按 Tab 键可以联想代表 vim 编辑器安装成功:vim(Tab 键)

如果是 vim(回车键)就会进入 vim 编辑器中,输入 “:q” 退出。
如果仍无法退出,则先按 “Esc” ,再输入 “:q” 。

(III) 显示当下日期与时间:date

(IV) 看内核版本:uname -a

(V) 清屏:clear

(VI) 修改用户名颜色(一次性):

  • ① 输入 vim .bashrc(编辑 bashrc)

  • ② 找到下面语句并复制下来,输入 :q 并回车退出编辑器

PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$'
  • ③ 修改语句后,输入以下指令:
export PS1='${debian_chroot:+($debian_chroot)}\[\033[01;33m\]\u\[\033[01;34m\]@\h:\[\033[01;31m\]\w\[\033[00m\]\$ '

如何修改想要的参数见如下链接:
【Linux更改终端的用户名和主机名的颜色】
【Linux基本功——终端用户名颜色高亮】
值得注意的是:关闭 Xshell 后,等再次打开时,用户名将不再高亮,需要重复步骤 III 。

  • ④ 输入 source .bashrc(更新 bashrc),还原颜色

(VII) 查看之前终端中输入的所有命令记录:history

【Linux下history命令用法详解】

(VIII) 显示命令的快捷方式或别名:alias

(IX) 在环境变量 $PATH 设置的目录里查找符合条件的文件:which(即查找并显示命令的绝对路径)

(X) ping www.baidu.com 利用 Ctrl+C 终止。

(XI) man 手册中英文切换:

  • 安装中文帮助包:sudo apt-get install manpages-zh

  • 查看安装路径:dpkg -L manpages-zh | less

  • 执行 sudo vi /etc/manpath.config 命令,将里面所有的 /usr/share/man 替换成 /usr/share/man/zh_CN(输入 “i” 进入编辑状态,输入 “Esc” 退出状态,输入 “:wq” 保存并退出)(若是重新改成英文的,把配置文件的 /zh_CN 后缀去掉);

  • 添加新命令:alias cman=‘man -M /usr/share/man/zh_CN’

  • 输入 cman 可以查看中文帮助(作用不大,因为只有少部分有中文),man 查看英文帮助。


http://www.mrgr.cn/news/96734.html

相关文章:

  • 【Harmonyos】项目开发总结--摇杆拖动侧重实现(适用游戏摇杆)
  • [GESP202503 C++六级题解]:P11963:环线
  • 论文阅读笔记:Denoising Diffusion Implicit Models (3)
  • 利用Canvas在紫微斗数命盘上画出三方四正
  • 大数据(4.3)Hive基础查询完全指南:从SELECT到复杂查询的10大核心技巧
  • 1.2 基于卷积神经网络与SE注意力的轴承故障诊断
  • C++学习day4
  • 企业linux常用服务搭建
  • SSH服务
  • 增加等IO状态的唤醒堆栈打印及缺页异常导致iowait分析
  • 设计模式 三、结构型设计模式
  • CMD(命令提示符)、PowerShell 和 Windows Terminal
  • C++练习3
  • ZGC 参数优化与 GC 触发机制解析分享
  • cpu下安装MinerU进行数据清洗
  • Linux centos 7 常用服务器搭建
  • 解决 CMS Old GC 频繁触发线上问题技术方案
  • Spring Boot向Vue发送消息通过WebSocket实现通信
  • 初学STM32系统时钟设置
  • 【SpringBoot + MyBatis + MySQL + Thymeleaf 的使用】