第2章 Linux操作系统的使用

嵌入式操作系统Linux篇总目录

第1章 嵌入式Linux操作系统简介
第2章 Linux操作系统的使用
第3章 Linux软件管理
第4章 Linux用户管理
第5章 Linux文件系统
第6章 Linux网络配置管理
第7章 嵌入式Linux编程环境
第8章 Shell编程
第9章 中断及设备管理
第10章 正则表达式



前言

本文简要介绍了Linux中一些基本的命令,涉及文件夹的增、删、查、改;进程、存储的查看。


2.1 认识Shell

命令:是用户向系统内核发出控制请求,与之交互的文本流。

Shell :是一个命令行解释器,将用户命令解析为操作系统所能理解的指令,从而实现用户与操作系统的交互。同时,Shell 为操作系统提供了内核之上的功能,直接用来管理和运行系统。

Shell 脚本文件:若需要重复执行若干命令,可以将这些命令集合起来,加入一定的控制语句,编辑成为 Shell 脚本文件,交给 Shell 批量执行。

Linux 操作系统的体系结构
在这里插入图片描述
用户、Shell 和 Linux 操作系统三者关系图:
在这里插入图片描述
交互过程
首先,用户在命令行提示符下键入命令文本,开始与 Shell 进行交互;接着,Shell 将用户的命令或按键转化成内核所能够理解的指令,操作系统做出响应,直到控制相关硬件设备。最后,Shell 将结果提交给用户
常见的Shell:
Bourne Shell(简称 sh)、C Shell(简称 csh)、Korn Shell(简称 ksh)、Bourne Again Shell(简称 bash)。

2.2 Shell命令的格式

2.2.1命令提示符

格式:

username@hostname:direction$
   用户名    主机名  目录名

username:用户名,显示当前登录用户的账户名。
hostname:主机名,例如远程登录后,则显示登录的主机名。
direction:目录名,显示当前所处的路径,当在根目录下显示为「/」,当在用户主目录下显示为「~」。
eg:

在这里插入图片描述

2.2.2命令格式

$ Command [-Options] Argument1 Argument2…

指令    选项   参数 1    参数 2…

\$:是 Shell 提示符,如果当前用户为超级用户,提示符为#,其他用户的提示符均为$。

Command:命令名称,Shell 命令或程序,严格区分大小写,例如设置日期指令为 date 等。

Options:命令选项,用于改变命令所执行动作的类型,由「-」引导;一条命令可以同时带有多个选项。

Argument:命令参数,指出命令作用的对象或目标,有的命令允许带多个参数。

  • 一条命令的三要素之间用空格隔开;
  • 若将多个命令在一行书写,用分号(;)将各命令隔开;
  • 如果一条命令不能在一行写完,在行尾使用反斜杠(\)标明该条命令未结束。

2.2.3 linux基础操作

Ctrl+Alt+T:打开终端
Ctrl+Shift+W:关闭终端

2.3 Linux命令

2.3.1 用户系统相关命令

  1. 用户切换命令
    普通用户与超级用户之间的切换
    sudo su: 切换为管理员权限
    su - root:切换到root文件夹下面
    su 用户名:切换到普通用户模式
    格式
    su [选项] [使用者]
    选项中常见命令参数
    在这里插入图片描述

使用示例

zhaoyuanchun@zhaoyuanchun:/$ sudo su   #普通用户变更为root用户
[sudo] zhaoyuanchun 的密码: 
root@zhaoyuanchun:/# sudo su zhaoyuanchun # root用户变更为普通用户
zhaoyuanchun@zhaoyuanchun:/$ 

  1. 系统管理命令(ps和kill)

** Linux 常见系统管理命令**:

在这里插入图片描述
作用
ps:显示当前系统中由该用户运行的进程的列表。
kill:输出特定的信号给指定 PID(进程号)的进程,并根据该信号完成指定的行为。其中可能的信号有进程挂起、进程等待、进程终止等。
格式
ps:ps [选项]
kill:kill [选项]进程号(PID)
注:kill 命令中的进程号为信号输出的指定进程的进程号,当选项是默认时为输出终止信号给该进程。

常用参数

ps 命令常见参数列表

在这里插入图片描述

kill 命令常见参数列表

在这里插入图片描述

使用说明

  • ps 通常可以与其他一些命令结合起来使用,主要作用是提高效率。
  • ps 选项中的参数 w 可以写多次,通常最多写 3 次,它的含义表示加宽 3 次,这足以显示很长的命令行了,如 ps–auxwww。

使用实例

root@zhaoyuanchun:~# ps  #########################
PID TTY          TIME CMD
   3598 pts/0    00:00:00 sudo
   5689 pts/0    00:00:00 su
   .
   .
   .
   5702 pts/0    00:00:00 bash
   5714 pts/0    00:00:00 ps
root@zhaoyuanchun:~# ps  -w ##########################
 PID TTY          TIME CMD
   3598 pts/0    00:00:00 sudo
   .
   .
   .
   5599 pts/0    00:00:00 su
root@zhaoyuanchun:~# ps -ef  ####################
UID          PID    PPID  C STIME TTY          TIME CMD
root           1       0  0 07:52 ?        00:00:02 /sbin/init splash
root           2       0  0 07:52 ?        00:00:00 [kthreadd]
root           3       2  0 07:52 ?        00:00:00 [rcu_gp]
root           4       2  0 07:52 ?        00:00:00 [rcu_par_gp]
root           5       2  0 07:52 ?        00:00:00 [slub_flushwq]
.
.
.
root        5702  0.0  0.1  19268  4844 pts/0    S    09:10   0:00 -bash
root        5716  0.0  0.0  20144  3268 pts/0    R+   09:13   0:00 ps aux

3.磁盘相关命令(fdisk)

Linux 常见系统管理命令

在这里插入图片描述作用
fdisk 可以用于查看硬盘分区情况,并可对硬盘进行分区管理。fdisk 也是一个非常好的硬盘分区工具,可以使用 fdisk 进行硬盘分区。

格式
fdisk [-l]

使用说明
fdisk [-l]
① 使用 fdisk 必须拥有 root 权限。
② IDE 硬盘对应的设备名称分别为 hda、hdb、hdc 和 hdd,SCSI 硬盘对应的设备名称则为 sda、sdb……此外,hda1 代表 hda 的第一个硬盘分区,hda2 代表 hda 的第二个分区,依此类推。
③ 通过查看「/var/log/messages」文件,可以找到 Linux 系统已辨认出来的设备代号。
使用实例

root@zhaoyuanchun:~# free ###################
              总计         已用        空闲      共享    缓冲/缓存    可用
内存:     3983196     1463892      140684        5788     2378620     2260868
交换:     1918356        2060     1916296

root@zhaoyuanchun:~# df  #######
文件系统          1K-块     已用     可用 已用% 挂载点
udev            1952036        0  1952036    0% /dev
tmpfs            398320     1940   396380    1% /run
/dev/sda5      40454400 11544980 26822252   31% /
tmpfs           1991596        0  1991596    0% /dev/shm
tmpfs              5120        4     5116    1% /run/lock
tmpfs           1991596        0  1991596    0% /sys/fs/cgroup
/dev/loop0          128      128        0  100% /snap/bare/5
/dev/loop2        74880    74880        0  100% /snap/core22/634
/dev/loop1        63488    63488        0  100% /snap/core20/1611
/dev/loop3       354688   354688        0  100% /snap/gnome-3-38-2004/115
/dev/loop7        93952    93952        0  100% /snap/gtk-common-themes/1535
/dev/loop4       358144   358144        0  100% /snap/gnome-3-38-2004/140
/dev/loop5       471680   471680        0  100% /snap/gnome-42-2204/102
/dev/loop6        12672    12672        0  100% /snap/snap-store/959
/dev/loop8        55552    55552        0  100% /snap/snap-store/558
/dev/loop9        54528    54528        0  100% /snap/snapd/19122
/dev/sda1        523248        4   523244    1% /boot/efi
tmpfs            398316       44   398272    1% /run/user/1000
/dev/loop10       54656    54656        0  100% /snap/snapd/19457
/dev/loop11       75648    75648        0  100% /snap/core22/766
/dev/loop12       65024    65024        0  100% /snap/core20/1950
/dev/loop13      477824   477824        0  100% /snap/gnome-42-2204/111
root@zhaoyuanchun:~# du #############
4	./snap/snap-store/common
4	./snap/snap-store/959
4	./snap/snap-store/558
16	./snap/snap-store
20	./snap
4	./.cache
36	.

Disk /dev/loop0:4 KiB,4096 字节,8 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


Disk /dev/loop1:61.98 MiB,64966656 字节,126888 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

.
.
.

Disk /dev/loop7:91.7 MiB,96141312 字节,187776 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节




Disk /dev/sda:40 GiB,42949672960 字节,83886080 个扇区
Disk model: VMware Virtual S
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x10d28976

设备       启动    起点     末尾     扇区  大小 Id 类型
/dev/sda1  *       2048  1050623  1048576  512M  b W95 FAT32
/dev/sda2       1052670 83884031 82831362 39.5G  5 扩展
/dev/sda5       1052672 83884031 82831360 39.5G 83 Linux


Disk /dev/loop8:54.24 MiB,56872960 字节,111080 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


Disk /dev/loop9:53.24 MiB,55824384 字节,109032 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


.
.
.


Disk /dev/loop13:466.55 MiB,489201664 字节,955472 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


4.磁盘挂载命令(mount)

作用:挂载文件系统的使用权限是超级用户或/etc/fstab 中允许的使用者。挂载是指把分区和目录对应的过程,而挂载点是指文件树中的挂载目录。使用 mount 命令就可以把文件系统挂载到相应的目录下,并且由于 Linux 中把设备都当作文件一样使用,因此,mount 命令也可以挂载不同的设备。通常,Linux 下/mnt 是专门用于挂载不同文件系统的目录,可以在该目录下新建不同的子目录来挂载不同的设备文件系统。
格式:
mount [选项] [类型]设备文件名 挂载点目录
注:其中的类型是指设备文件的类型。
mount 常见参数如表
在这里插入图片描述
实例:U盘的挂载,跟着操作就行

2.3.2 文件、目录相关命令

1. cd

作用:改变工作目录。

格式cd [路径]

使用说明

  • 该命令表示将当前目录改变至指定路径的目录。若没有指定路径,则回到用户的主目录。为了改变到指定目录,用户必须拥有对指定目录的执行和读权限。
  • 该命令可以使用通配符。
  • 使用「cd–」可以回到前次工作目录。
  • 「./」代表当前目录,「…/」代表上级目录

使用示例:

root@zhaoyuanchun:/# 
bin    dev   lib    libx32      mnt   root  snap      sys  var
boot   etc   lib32  lost+found  opt   run   srv       tmp
cdrom  home  lib64  media       proc  sbin  swapfile  usr
root@zhaoyuanchun:/# cd /home/zhaoyuanchun ########################
root@zhaoyuanchun:/home/zhaoyuanchun# ls
公共的  模板  视频  图片  文档  下载  音乐  桌面  hello  snap
root@zhaoyuanchun:/home/zhaoyuanchun# pwd ###显示当前目录。
/home/zhaoyuanchun

2. ls

作用:列出目录的内容。

格式ls [选项] [文件]
「文件」:为指定要查看的相关内容,若未指定文件,默认查看当前目录下的所有文件。

常见参数:
在这里插入图片描述
使用说明:
① 在 ls 的常见参数中,「-l」(长文件名显示格式)选项是最为常见的,可以详细显示出各种信息。
② 若想显示出所有「.」开头的文件,可以使用-a,这在嵌入式的开发中很常用。
使用示例:

root@zhaoyuanchun:/home/zhaoyuanchun# ls                 #####################
公共的  模板  视频  图片  文档  下载  音乐  桌面  hello  snap
root@zhaoyuanchun:/home/zhaoyuanchun# ls -l                   #####################
总用量 40
drwxr-xr-x 2 zhaoyuanchun zhaoyuanchun 4096 5月  17 10:48 公共的
drwxr-xr-x 2 zhaoyuanchun zhaoyuanchun 4096 5月  17 10:48 模板
drwxr-xr-x 2 zhaoyuanchun zhaoyuanchun 4096 5月  17 10:48 视频
drwxr-xr-x 2 zhaoyuanchun zhaoyuanchun 4096 5月  17 10:48 图片
drwxr-xr-x 2 zhaoyuanchun zhaoyuanchun 4096 5月  17 10:48 文档
drwxr-xr-x 2 zhaoyuanchun zhaoyuanchun 4096 5月  17 10:48 下载
drwxr-xr-x 2 zhaoyuanchun zhaoyuanchun 4096 5月  17 10:48 音乐
drwxr-xr-x 2 zhaoyuanchun zhaoyuanchun 4096 5月  17 11:18 桌面
drwxr-xr-x 6 root         root         4096 6月  26 08:47 hello
drwx------ 3 zhaoyuanchun zhaoyuanchun 4096 5月  17 11:02 snap
root@zhaoyuanchun:/home/zhaoyuanchun# ls -a                  #####################
.       视频  音乐           .bashrc  hello     snap
..      图片  桌面           .cache   .local    .ssh
公共的  文档  .bash_history  .config  .mozilla  .sudo_as_admin_successful
模板    下载  .bash_logout   .gnupg   .profile  .thunderbird
root@zhaoyuanchun:/home/zhaoyuanchun# ls -f                  #####################
.local        .sudo_as_admin_successful  图片          .cache    公共的
.thunderbird  .config                    snap          .         .profile
.ssh          .bash_history              视频          .gnupg    模板
..            hello                      .bash_logout  .mozilla  音乐
文档          桌面                       下载          .bashrc

3. mkdir

作用:创建一个目录。

格式:mkdir [选项]路径。

常见参数
在这里插入图片描述使用说明:该命令要求创建目录的用户在创建路径的上级目录中具有写权限,并且路径名不能是当前目录中已有的目录或文件名称。
使用示例:

root@zhaoyuanchun:/home/zhaoyuanchun/hello# ls
root@zhaoyuanchun:/home/zhaoyuanchun/hello# mkdir -m 777 albely
root@zhaoyuanchun:/home/zhaoyuanchun/hello# mkdir -p adf/able
root@zhaoyuanchun:/home/zhaoyuanchun/hello# ls
adf  albely

4. cat

作用:连接并显示指定的一个或多个文件的有关信息。
格式cat[选项]文件 1、文件 2…
「文件 1」「文件 2」:其中的「文件 1」「文件 2」为要显示的多个文件。

常见参数
在这里插入图片描述使用示例:

root@zhaoyuanchun:/home/zhaoyuanchun/hello# cat -n adf albely
cat: adf: 是一个目录
cat: albely: 是一个目录
root@zhaoyuanchun:/home/zhaoyuanchun/hello# cat -b adf albely
cat: adf: 是一个目录
cat: albely: 是一个目录

5.cp、mv 和 rm

作用:
① cp:将给出的文件或目录复制到另一文件或目录中。
② mv:为文件或目录改名或将文件由一个目录移入另一个目录中。
③ rm:删除一个目录中的一个或多个文件或目录。
格式:
① cp:cp [选项]源文件或目录 目标文件或目录
② mv:mv [选项]源文件或目录 目标文件或目录
③ rm:rm [选项]文件或目录

常见参数:

cp 命令常见参数列表

在这里插入图片描述

mv 命令常见参数列表

在这里插入图片描述

rm 命令常见参数列表
在这里插入图片描述 使用说明

①cp:该命令可把指定的源文件复制到目标文件或把多个源文件复制到目标目录中。

② mv:

  • a.该命令根据第 2 个参数的类型(是目标文件还是目标目录)来判断是重命名还是移动文件。当第 2 个参数类型是文件时,mv 命令完成文件重命名,此时,它将所给的源文件或目录重命名为给定的目标文件名。
  • b.当第 2 个参数是已存在的目录名称时,mv 命令将各参数指定的源文件均移至目标目录中。
  • c.在跨文件系统移动文件时,mv 先复制,再将原有文件删除,而链至该文件的链接也将丢失。

③ rm:

  • a.如果没有使用「- r」选项,则 rm 不会删除目录。
  • b.使用该命令时一旦文件被删除,它是不能被恢复的,所以最好使用「-i」参数
    使用示例:
    cp
root@zhaoyuanchun:/home/zhaoyuanchun/hello/c# ls
root@zhaoyuanchun:/home/zhaoyuanchun/hello/c# cd ../
root@zhaoyuanchun:/home/zhaoyuanchun/hello# cp -a a/1 c       i#############
root@zhaoyuanchun:/home/zhaoyuanchun/hello# cd c
root@zhaoyuanchun:/home/zhaoyuanchun/hello/c# ls
1

mv

root@zhaoyuanchun:/home/zhaoyuanchun/hello# cd d
root@zhaoyuanchun:/home/zhaoyuanchun/hello/d# ls
root@zhaoyuanchun:/home/zhaoyuanchun/hello/d# cd ../
root@zhaoyuanchun:/home/zhaoyuanchun/hello# mv -i  a/1 d    ##################
root@zhaoyuanchun:/home/zhaoyuanchun/hello# cd a 
root@zhaoyuanchun:/home/zhaoyuanchun/hello/a# ls
root@zhaoyuanchun:/home/zhaoyuanchun/hello/a# cd ../d
root@zhaoyuanchun:/home/zhaoyuanchun/hello/d# ls
1

rm

root@zhaoyuanchun:/home/zhaoyuanchun/hello# ls
a  b  c  d  e
root@zhaoyuanchun:/home/zhaoyuanchun/hello# rm -r a b          ###############
root@zhaoyuanchun:/home/zhaoyuanchun/hello# ls
c  d  e 

6.chown 和 chgrp

作用
① chown:修改文件所有者和组别。
② chgrp:改变文件的组所有权。
格式
① chown:chown [选项]… 文件所有者[所有者组名]文件
文件所有者:为修改后的文件所有者。

② chgrp:chgrp [选项]… 文件所有组文件

文件所有组:改变后的文件组拥有者。

常见参数
在这里插入图片描述使用说明:使用 chown 和 chgrp 命令必须拥有 root 权限。
使用示例:
chown用来修改文件的所有者

root@zhaoyuanchun:/home/zhaoyuanchun/hello# ls -l
总用量 24
drwxr-xr-x 2 zhaoyuanchun root 4096 6月  26 11:10 f   #可以看出文件f可以读写,拥有者为zhaoyuanchun,所属用户组为root,
root@zhaoyuanchun:/home/zhaoyuanchun/hello# chown root f   ###############
root@zhaoyuanchun:/home/zhaoyuanchun/hello# ls -l
总用量 24
drwxr-xr-x 2 root root 4096 6月  26 11:10 f

chgrp用来修改文件用户组

root@zhaoyuanchun:/home/zhaoyuanchun/hello# ls -l
总用量 24
drwxr-xr-x 2 zhaoyuanchun root 4096 6月  26 11:10 f   #可以看出文件f可以读写,拥有者为zhaoyuanchun,所属用户组为root,
root@zhaoyuanchun:/home/zhaoyuanchun/hello# chown root f   ###############
root@zhaoyuanchun:/home/zhaoyuanchun/hello# ls -l
总用量 24
drwxr-xr-x 2 root root 4096 6月  26 11:10 f
oot@zhaoyuanchun:/home/zhaoyuanchun/hello# chgrp zhaoyuanchun f ################
root@zhaoyuanchun:/home/zhaoyuanchun/hello# ls -l
总用量 24
drwxr-xr-x 2 root zhaoyuanchun 4096 6月  26 11:10 f

7.chmod

作用:改变文件的访问权限。

格式:chmod 可使用符号标记和八进制数指定两种方式进行更改,因此它的格式也有两种不同的形式。

  • 符号标记:chmod [选项]… 符号权限[,符号权限]…文件
    :其中的符号权限可以指定为多个,也就是说,可以指定多个用户级别的权限,但它们中间要用逗号分开表示,若没有显示指出,则表示不作更改。
  • 八进制数:chmod [选项]…八进制权限 文件…
    :其中的八进制权限是指要更改后的文件权限。

选项参数

chmod 命令常见参数列表

在这里插入图片描述

转化后八进制数、二进制及对应权限的关系
在这里插入图片描述

使用实例:使用 chmod 必须具有 root 权限。
对文件的权限有r(读)、w(写)、x(运行);
具有3个不同的用户级别 u(文件拥有者)、g(所属的用户组)、o(系统中的其他用户)。a表示三个用户都具有的权限;
+/-用于增减权限,=用于设置权限。

使用说明:
符号标记

root@zhaoyuanchun:/home/zhaoyuanchun/hello# ls -l
总用量 4
drwxrwxrwx 3 zhaoyuanchun zhaoyuanchun 4096 6月  26 11:28 f
root@zhaoyuanchun:/home/zhaoyuanchun/hello# chmod u=rw,g=r,o=x f         ###################
root@zhaoyuanchun:/home/zhaoyuanchun/hello# ls -l
总用量 4
drw-r----x 3 zhaoyuanchun zhaoyuanchun 4096 6月  26 11:28 f
root@zhaoyuanchun:/home/zhaoyuanchun/hello# chmod a=x f         ###################
root@zhaoyuanchun:/home/zhaoyuanchun/hello# ls -l
总用量 4
d--x--x--x 3 zhaoyuanchun zhaoyuanchun 4096 6月  26 11:28 f
root@zhaoyuanchun:/home/zhaoyuanchun/hello# chmod a-x,u+rwx f         ###################
root@zhaoyuanchun:/home/zhaoyuanchun/hello# ls -l
总用量 4
drwx------ 3 zhaoyuanchun zhaoyuanchun 4096 6月  26 11:28 f
root@zhaoyuanchun:/home/zhaoyuanchun/hello# 

八进数

root@zhaoyuanchun:/home/zhaoyuanchun/hello# chmod 000 f         ##########################
root@zhaoyuanchun:/home/zhaoyuanchun/hello# ls -l
总用量 4
d--------- 3 zhaoyuanchun zhaoyuanchun 4096 6月  26 11:28 f
root@zhaoyuanchun:/home/zhaoyuanchun/hello# chmod 777 f        ##########################
root@zhaoyuanchun:/home/zhaoyuanchun/hello# ls -l
总用量 4
drwxrwxrwx 3 zhaoyuanchun zhaoyuanchun 4096 6月  26 11:28 f
root@zhaoyuanchun:/home/zhaoyuanchun/hello# chmod 235 f        ##########################
root@zhaoyuanchun:/home/zhaoyuanchun/hello# ls -l
总用量 4
d-w--wxr-x 3 zhaoyuanchun zhaoyuanchun 4096 6月  26 11:28 f
root@zhaoyuanchun:/home/zhaoyuanchun/hello# 

8.grep

作用:在指定文件中搜索特定的内容,并将含有这些内容的行标准输出。
格式grep [选项] 格式[文件及路径]
:其中的格式是指要搜索的内容格式,若缺省「文件及路径」则默认表示在当前目录下搜索。
常见参数
在这里插入图片描述使用说明
① 在默认情况下,grep 只搜索当前目录。如果此目录下有许多子目录,grep 会以如下形式列出:grep🔉Is a directory,这会使 grep 的输出难于阅读,但有两种解决的方法。

  • a.明确要求搜索子目录:grep–r(正如上例中所示)。
  • b.忽略子目录:grep -d skip。
    ② 当预料到有许多输出,可以通过管道将其转到 less(分页器)上阅读,如 grep 「h」./ -r |less。
    ③ grep 特殊用法。
    grep pattern1|pattern2 files:显示匹配 pattern1 或 pattern2 的行。
    grep pattern1 files|grep pattern2:显示匹配 pattern1,又匹配 pattern2 的行。

代码示例:

zhaoyuanchun@zhaoyuanchun:~$ cd baby
zhaoyuanchun@zhaoyuanchun:~/baby$ cat c.h      ###############
hello world


#include<stdio.h>
main()
{
printf("hello world)
}
zhaoyuanchun@zhaoyuanchun:~/baby$ grep "hello world" c.h b.text    #默认显示查找到的本文在所在文件的名,所在行的全部文本
c.h:hello world
c.h:printf("hello world)
b.text:hello world 
zhaoyuanchun@zhaoyuanchun:~/baby$ grep -c "hello world" c.h b.text  #  -c,只输出匹配行的数量
c.h:2
b.text:1
zhaoyuanchun@zhaoyuanchun:~/baby$ grep -l "hello world" c.h b.text  # -l, 认显示查找到的本文在所在文件的名
c.h
b.text
zhaoyuanchun@zhaoyuanchun:~/baby$ grep -h "hello world" c.h b.text  # -h  ,查询多文件时不显示文件名
hello world
printf("hello world)
hello world 
zhaoyuanchun@zhaoyuanchun:~/baby$ grep -n "hello world" c.h b.text     # -n, 显示匹配行与行号
c.h:1:hello world
c.h:7:printf("hello world)
b.text:1:hello world 
zhaoyuanchun@zhaoyuanchun:~/baby$ grep -s "printf" c.h b.text  # -s ,不显示不存在或无匹配文本的错误信息
c.h:printf("hello world)
zhaoyuanchun@zhaoyuanchun:~/baby$ grep -v "printf" c.h b.text # -v,显示不包括匹配文本的所有行
c.h:hello world
c.h:
c.h:
c.h:#include<stdio.h> 
c.h:main()
c.h:{
c.h:}
b.text:hello world 

9.find

作用:在指定目录中搜索**文件 **,它的使用权限是所有用户。
格式find [路径][选项][描述]

  • 其中的「路径」为文件搜索路径,系统开始沿着此目录树向下查找文件。它是一个路径列表,相互用空格分离。若缺省路径,那么默认为当前目录。
  • 「描述」部分是匹配表达式,即 find 命令接受的表达式。
    常见参数
find 选项常见参数列表

在这里插入图片描述

find 描述常见参数列表

在这里插入图片描述使用说明
①若使用的目录路径为「/」,通常需要查找较多的时间,可以指定更为确切的路径以减少查找时间。
② 在 find 命令中可以使用混合查找的方法,例如,想在/etc目录中查找大于 500 000B,并且在 24h 内修改了的某个文件,则可以使用-and(与)把两个查找参数链接起来组合成一个混合的查找方式,如find /etc-size +500000c -and -mtime +1
使用示例

root@zhaoyuanchun:/home/zhaoyuanchun/baby# find   #############
.
./1.docx
./q.h
./a
./c.h
./b.text
./e.txt
root@zhaoyuanchun:/home/zhaoyuanchun/baby# find -user zhaoyuanchun  ##############
.
./1.docx
./q.h
./a
./c.h
./b.text
root@zhaoyuanchun:/home/zhaoyuanchun/baby# cd ../
root@zhaoyuanchun:/home/zhaoyuanchun# find baby -name *.text       ###################
baby/b.text

10. ln

作用:ln命令用于在文件之间建立链接,链接文件就类似于微软 Windows 的快捷方式,Linux 中有软链接与硬链接两种类型。
硬链接:是利用 Linux 中为每个文件分配的物理编号——inode 建立链接。因此,硬链接不能跨越文件系统。

软链接(符号链接):是利用文件的路径名建立链接。通常建立软链接使用绝对路径而不是相对路径,以最大限度增加可移植性。

:如果是修改硬链接的目标文件名,链接依然有效;如果修改软链接的目标文件名,则链接将断开;对一个已存在的链接文件执行移动或删除操作,有可能导致链接的断开。假如删除目标文件后,重新创建一个同名文件,软链接将恢复,硬链接不再有效,因为文件的 inode 已经改变。
格式ln [选项] 源文件或目录、目标文件或目录
常见参数「 s」:建立符号链接(这也是通常唯一使用的参数)。

使用说明
① ln 命令会保持每一处链接文件的同步性,也就是说,不论改动了哪一处,其他的文件都会发生相同的变化。

② ln 的链接有软链接和硬链接两种。

软链接就是上面所说的 ln -s ** **,它只会在用户选定的位置上生成一个文件的镜像,不会重复占用磁盘空间,平时使用较多的都是软链接。
硬链接是不带参数的 ln ** **,它会在用户选定的位置上生成一个和源文件大小相同的文件。无论是软链接还是硬链接,文件都保持同步变化。
使用示例

root@zhaoyuanchun:/home/zhaoyuanchun/baby# ln -s  1.docx ../hello      ###### 在hello文件夹下建立1.docx的软链接(-s)
root@zhaoyuanchun:/home/zhaoyuanchun/baby# ln b.text ../hello             ###### 在hello文件夹下建立b.text的硬链接,必须使用管理员权限

2.3.3 压缩打包相关命令

Linux 常见系统管理命令

在这里插入图片描述

1.gzip

作用:对文件进行压缩和解压缩,而且 gzip 根据文件类型可自动识别压缩或解压。

格式:gzip [选项] 压缩(解压缩)的文件名
常见参数:

gzip 命令常见参数列表

在这里插入图片描述使用说明:使用 gzip 命令只能压缩单个文件,而不能压缩目录,其选项「-d」表示将该目录下的所有文件逐个进行,而不是将它们压缩成一个文件。
使用例子:

  • 单个文件的解压与压缩
root@zhaoyuanchun:/home/zhaoyuanchun/baby# ls
1.docx  a  b.text  c.h  e.txt  q.h
root@zhaoyuanchun:/home/zhaoyuanchun/baby# gzip 1.docx      		 ######		 压缩文件
root@zhaoyuanchun:/home/zhaoyuanchun/baby# gzip -l 1.docx  		  ##########   	显示压缩文件大小,未压缩文件大小,压缩比,未压缩文件的名字
         compressed        uncompressed  ratio uncompressed_name
               9614               10932  12.3% 1.docx

root@zhaoyuanchun:/home/zhaoyuanchun/baby# ls
1.docx.gz  a  b.text  c.h  e.txt  q.h
root@zhaoyuanchun:/home/zhaoyuanchun/baby# gzip -d 1.docx.gz 	 	###### 	解压文件
root@zhaoyuanchun:/home/zhaoyuanchun/baby# ls
1.docx  a  b.text  c.h  e.txt  q.h
  • 多个文件的解压与压缩
root@zhaoyuanchun:/home/zhaoyuanchun# gzip -r baby		##########	依次压缩(-r)baby文件夹下的每一个文件
gzip: baby/b.text has 1 other link  -- unchanged
root@zhaoyuanchun:/home/zhaoyuanchun# cd baby
root@zhaoyuanchun:/home/zhaoyuanchun/baby# ls
1.docx.gz  a  b.text  c.h.gz  e.txt.gz  q.h.gz
root@zhaoyuanchun:/home/zhaoyuanchun/baby# gzip -r baby
gzip: baby: No such file or directory
root@zhaoyuanchun:/home/zhaoyuanchun/baby# gzip -r ../baby
gzip: ../baby/b.text has 1 other link  -- unchanged
root@zhaoyuanchun:/home/zhaoyuanchun/baby# ls
1.docx.gz  a  b.text  c.h.gz  e.txt.gz  q.h.gz
root@zhaoyuanchun:/home/zhaoyuanchun/baby# gzip -d -r ../baby   ##########	依次解压(-d -r)baby文件夹下的每一个文件
gzip: ../baby/b.text has 1 other link  -- unchanged
root@zhaoyuanchun:/home/zhaoyuanchun/baby# ls
1.docx  a  b.text  c.h  e.txt  q.h

使用 gzip 命令只能压缩单个文件,而不能压缩目录,其选项「-d」表示将该目录下的所有文件逐个进行,而不是将它们压缩成一个文件。

2.tar

作用:对文件目录进行打包或解包。

在此需要对打包和压缩这两个概念进行区分。打包是指将一些文件或目录变成一个总的文件,而压缩则是将一个大的文件通过一些压缩算法变成一个小文件。为什么要区分这两个概念呢?这是由于在 Linux 中的很多压缩程序(如前面介绍的 gzip)只能针对一个文件进行压缩,这样当想要压缩较多文件时,就要借助它的工具将这些堆文件先打成一个包,然后再用原来的压缩程序进行压缩。

格式tar [选项] [打包后文件名] 文件目录列表

tar 可自动根据文件名识别打包或解包动作,其中,「打包后文件名」为用户自定义的文件名称;「文件目录列表」可以是要进行打包备份的文件目录列表,也可以是进行解包的文件目录列表。

主要参数
在这里插入图片描述使用说明:除了常规的打包之外,tar 命令更为频繁的使用方式是用选项「-z」「-j」调用 gzip 或 bzip2(Linux 中另一种解压工具)完成对各种不同文件的解压。
实例示例
打包文件

root@zhaoyuanchun:/home/zhaoyuanchun/baby# tar -cvf c.tar ../baby     ########建立(c)新的打包文件c.tar,处理过程中输出相关信息(v),处理的是普通文件(f)。
tar: 从成员名中删除开头的“../”
../baby/
../baby/1.docx
../baby/q.h
../baby/a/
../baby/c.h
../baby/b.text
tar: 从硬连接目标中删除开头的“../”
tar: ../baby/c.tar: 文件是归档文件;未输出
../baby/e.txt
root@zhaoyuanchun:/home/zhaoyuanchun/baby# ls
1.docx  a  b.text  c.h  c.tar  e.txt  q.h   #### 文件中多了c.tar文件
root@zhaoyuanchun:/home/zhaoyuanchun/baby# ls -l c.tar
-rw-r--r-- 1 root root 20480 6月  27 08:46 c.tar

打包压缩一体化

root@zhaoyuanchun:/home/zhaoyuanchun/baby# tar -czf babyone.tar.gz ../baby	######打包并压缩文件
tar: 从成员名中删除开头的“../”
tar: 从硬连接目标中删除开头的“../”
root@zhaoyuanchun:/home/zhaoyuanchun/baby# ls
1.docx  a  babyone.tar.gz  b.text  c.h  e.txt  q.h  # 文件中多了 babyone.tar.gz
root@zhaoyuanchun:/home/zhaoyuanchun/baby# tar -zxvf babyone.tar.gz 	######解包并解压缩文件
baby/
baby/1.docx
baby/q.h
baby/a/
baby/babyone.tar.gz
baby/c.h
baby/b.text
baby/e.txt
root@zhaoyuanchun:/home/zhaoyuanchun/baby# ls
1.docx  a  baby  babyone.tar.gz  b.text  c.h  e.txt  q.h   #  文件中多了baby
root@zhaoyuanchun:/home/zhaoyuanchun/baby# 
**Linux 中常见类型的文件解压命令**

在这里插入图片描述

2.3.4 文件比较命令diff

作用:比较两个不同的文件或不同目录下的两个同名文件功能,并生成补丁文件。
格式:diff [选项] 文件 1 文件 2
解释:diff 比较文件 1 和文件 2 的不同之处,并按照选项所指定的格式加以输出。diff 的格式分为命令格式和上下文格式,其中,上下文格式又包括了旧版上下文格式和新版上下文格式,命令格式分为标准命令格式、简单命令格式及混合命令格式,它们之间的区别会在使用示例中进行详细的讲解。当选项默认时,diff 默认使用混合命令格式。
主要参数

diff 主要选项参数

在这里插入图片描述
实例示例

root@zhaoyuanchun:/home/zhaoyuanchun/baby# diff -c calculation1.c calculation.c ####### 旧版比较
*** calculation1.c	2023-06-27 11:29:52.009496870 +0800
--- calculation.c	2023-06-27 11:29:36.933841978 +0800
***************
*** 1,5 ****
  # include <stdio.h>
  void main()
  {
! printf("Hello! This is your home !\n");
  }
--- 1,5 ----
  # include <stdio.h>
  void main()
  {
! printf("Hello! This is my home !\n");
  }
root@zhaoyuanchun:/home/zhaoyuanchun/baby# diff -u calculation1.c calculation.c ####### 新版比较
--- calculation1.c	2023-06-27 11:29:52.009496870 +0800
+++ calculation.c	2023-06-27 11:29:36.933841978 +0800
@@ -1,5 +1,5 @@
 # include <stdio.h>
 void main()
 {
-printf("Hello! This is your home !\n");
+printf("Hello! This is my home !\n");
 }
root@zhaoyuanchun:/home/zhaoyuanchun/baby# diff -e calculation1.c calculation.c  ######## 命令格式
4c
printf("Hello! This is my home !\n");
.
root@zhaoyuanchun:/home/zhaoyuanchun/baby# diff -f calculation1.c calculation.c ######## 命令简单格式
c4
printf("Hello! This is my home !\n");
.
root@zhaoyuanchun:/home/zhaoyuanchun/baby# diff  calculation1.c calculation.c  ############## 默认格式
4c4
< printf("Hello! This is your home !\n");
---
> printf("Hello! This is my home !\n");
root@zhaoyuanchun:/home/zhaoyuanchun/baby# 

2.4 Linux环境变量

含义:环境变量一般是指在操作系统中用来指定操作系统运行环境的一些参数,比如临时文件夹位置和系统文件夹位置等。
环境变量查看命令env
查看环境内容:echo $ 环境变量名
实例:查看环境变量 PATH 的内容, echo $PATH
Linux 系统中环境变量的格式环境变量名 = 内容 1:内容 2
添加格式export PATH=内容

1. 环境变量的临时添加

临时添加只对当前的终端有效,如果当前终端关闭,则添加的环境变量就不存在了。

2. 环境变量的永久添加

在 Linux 系统中,有些文件在系统启动起来的时候或用户登录的时候会自动执行。例如/etc/profile,这是一个 Shell 脚本文件,任何用户登录的时候都会执行。可以把环境变量添加到/etc/profile 中,这样在任何时候环境变量都有效。

3. 实验

查看所有环境变量

root@zhaoyuanchun:/home/zhaoyuanchun/baby# env
SHELL=/bin/bash
COLORTERM=truecolor
SUDO_GID=1000
LANGUAGE=zh_CN:zh
SUDO_COMMAND=/usr/bin/su root
SUDO_USER=zhaoyuanchun
PWD=/home/zhaoyuanchun/baby
LOGNAME=root
XAUTHORITY=/run/user/1000/gdm/Xauthority
HOME=/root
LANG=zh_CN.UTF-8
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=4033;01:or=40;...*.xspf=00;36:
.....

查看环境变量的内容

root@zhaoyuanchun:/home/zhaoyuanchun/baby# echo $PATH   ########################
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

环境变量的临时添加

root@zhaoyuanchun:/home/zhaoyuanchun/baby# gedit calculation.c   ######   用gedit打开文件进行编辑
root@zhaoyuanchun:/home/zhaoyuanchun/baby# gcc calculation.c -o calculation   ######   编译文件
root@zhaoyuanchun:/home/zhaoyuanchun/baby# pwd  ########  查看当前文件的路径
/home/zhaoyuanchun/baby
root@zhaoyuanchun:/home/zhaoyuanchun/baby# export PATH=/home/zhaoyuanchun/baby:$PATH  #########添加路径,$PATH表示保存之前环境变量中的参数
root@zhaoyuanchun:/home/zhaoyuanchun/baby# calculation   ##########  执行编译好的文件
Hello! This is my home !

环境变量的永久添加

root@zhaoyuanchun:/home/zhaoyuanchun# gedit /etc/profile   ######用gedit打开profile文件,在文件末端加入“export PATH=/home/zhaoyuanchun/baby:$PATH”并保存文件

(gedit:3163): Tepl-WARNING **: 12:12:55.230: GVfs metadata is not supported. Fallback to TeplMetadataManager. Either GVfs is not correctly installed or GVfs metadata are not supported on this platform. In the latter case, you should configure Tepl with --disable-gvfs-metadata.
root@zhaoyuanchun:/home/zhaoyuanchun# source /etc/profile  #######让环境变量生效
root@zhaoyuanchun:/home/zhaoyuanchun# calculation  #####执行文件
Hello! This is my home !
root@zhaoyuanchun:/home/zhaoyuanchun# 

------------------------结束,完美撒花----------------------


总结

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值