Linux操作系统
Linux操作系统

Linux操作系统

1 linux文件与目录结构

1.1 linux 文件

linux 系统中一切皆文件

1.2 linux 目录结构image-20250807160140664

2 系统管理操作

2.1 systemctl

  • linux很多内置、第三方软件均支持 systemctl命令控制:启动、停止、开机自启
  • 能够被 systemctl 管理的软件,一般也称之为 服务
语法:
    systemctl start | stop | status | enable | disable 服务名

start   :启动
stop    :关闭
status  :查看状态
enable  :开启开机自启
disable :关闭开机自启


        系统内置的服务很多,例如:

          NetworkManager   主网络服务
          network   副网络服务
          firewalld   防火墙服务(ufw)
          sshd   ssh服务(FinalShell远程登录 Linux 使用这个服务)

2.2 修改主机命令

sudo hostnamectl --static set-hostname 新名称

3.常用命令

3.1 帮助命令

  1. man

当我们想要了解某个命令如何使用,及选项的含义是什么以及配置文件的帮助信息时,可以使用 man [命令或配置文件],这样便可以获得到帮助提示信息了。

语法格式:man [命令或者配置文件]

比如,常用的ls命令,我们想要查看其选项参数有哪些,可以使用man ls来查看帮助信息。

image-20250807195452010

在这里插入图片描述

通过键盘上的上下键来进行帮助信息滚动,然后使用q来进行退出
2. help

help 指令,用于获得shell内置命令的帮助信息。

语法格式:help 命令

Shell 内置命令,就是由 Bash 自身提供的命令,而不是文件系统中的某个可执行文件,比如我们常常使用的切换目录 cd命令(tip:可以通过type 命令来确定一个命令是否为Shell内置命令)。

type cd # 查看命令是否为Shell内建命令
help cd # 查看cd命令的帮助信息

shell

image-20250807195546799

3.2 linux 的快捷键

强制停止 ctrl + c

某些程序一直在运行,无法返回命令输入模式,就可以 ctrl + c 强制停止
命令输入错误,想重新写,可以 ctrl + c 停止换下一行输入

退出或登出 ctrl + d

如果你在linux里登入 mysql、python等等的软件用户,可以通过 ctrl + d 登出

linux查找历史命令 history

    如果想查看在linux里面输入的历史命令,可以直接输入:history
    也可以通过  !命令前缀,自动执行上一次匹配前缀的命令
    可以通过快捷键:ctrl + r,输入内容去匹配历史命令(如果搜索到内容是你需要的,那么可回车键可以直接执行,键盘左右键可以得到此命令但不执行)

光标移动快捷键

    ctrl + a    跳到命令开头
    ctrl  + e   跳到命令结尾
    ctrl  + 键盘左键,向左跳一个单词
    ctrl  + 键盘右键,向右跳一个单词

清屏

    通过快捷键  ctrl + l 清屏
    可以输入 clear 进行清屏

3.3 文件目录的切换和查看

1.pwd 指令

pwd指令,用于显示当前工作目录的绝对路径。

语法格式:pwd

比如,我们切换到home目录下,然后查看当前目录的绝对路径

cd /home # 切换目录到home目录下
ls # 查看信息
pwd #查看当前工作目录的绝对路径

2.ls 指令

ls指令,用于查看当前工作目录下的文件和目录名信息。

语法格式:ls [选项] [目录名或者文件名]

常用选项:

-a : 显示当前目录的所有文件和目录,包括隐藏的目录和文件。
-l : 以列表的方式显示信息。

cd /home #切换工作目录
ls # 查看当前目录下的子文件和目录信息
ls -a # 查看所有当前目录下的子文件和目录信息
ls -l # 以列表的方式显示信息cd 指令

3.cd 指令

就是切换工作目录和路径的指令,它可以是绝对路径和相对路径名的切换。

语法格式:cd [参数]

  1. cd ~ : 回到自己的家目录
  2. cd : : 回到自己的家目录
  3. cd.. : 回到当前目录的上一级目录
  4. cd 绝对路径
  5. cd 相对路径
  6. cd – 回到上一次目录

image-20250807202925042

3.4 创建目录和文件

1.mkdir

指令用于创建目录。

语法格式:mkdir [选项] 要创建的目录名。

常用选项 -p ,创建多级目录。

例如:在home目录下创建一个目录test1为单级目录,然后再创建一个car目录,里面包括一个parts子目录。

cd /home
ls
mkdir test1 # 创建test1单级目录
ls
mkdir -p car/parts # 创建一个多级目录
ls
cd car/ # 进入到car目录中查看子目录parts是否创建成功
ls

2.cp 指令

cp 指令拷贝文件到指定目录。

语法格式:cp [选项] source dest,(source即为源文件名,dest为目的文件名)。

常用选项:-r ,递归复制整个文件夹。

注意,使用递归复制某个文件夹时,如果在复制的过程中,出现重名的文件,想跳过重名文件不覆盖,且不进行信息提示的话,使用\cp -r XXXX。

cd /home
ls
mkdir car #新建car目录
ls
cd car/ 切换到car目录中
mkdir test # 新建test子目录
touch test.txt # 新建test.txt文件
ls
cd /home 
mkdir demo #新建demo目录
cp -r car demo #将car中的所有内容拷贝到demo目录中去(选项参数-r,递归拷贝)
cd demo/ #切换到demo目录中进行查看
ls
cd car/
ls

3.touch 创建空文件

touch 指令用于创建空文件。

语法格式:touch 文件名称

3.5 删除移动目录文件

1.mv

将源文件移动到目标文件夹中,格式如下:

mv [源文件] [目标文件夹]
mv test.txt /home/workdir/**重命名文件**

重命名文件

mv test.txt new_test.txt

2.rm 指令

rm 指令移除文件或者移除目录。

语法格式:rm [选项] 要删除的文件或者目录名

常用选项:

  1. -r : 递归删除整个文件夹
  2. -f : 强制删除不提示
cd /home
ls 
rm -rf demo
rm -rf car
ls

3.6 查看文件

cat 指令

cat 查看文件内容

语法格式:cat [选项] 要查看的文件

常用选项:-n ,显示行号

参数说明:

-n 或 --number:由 1 开始对所有输出的行数编号。
-b 或 --number-nonblank:和 -n 相似,只不过对于空白行不编号。
-s 或 --squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行。
-v 或 --show-nonprinting:使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外。
-E 或 --show-ends : 在每行结束处显示 $。
-T 或 --show-tabs: 将 TAB 字符显示为 ^I。
-A, --show-all:等价于 -vET。
**-e:**等价于"-vE"选项;
**-t:**等价于"-vT"选项;

cat 只能浏览文件,而不能修改文件,为了浏览方便一般结合 |more指令。

more指令

more指令时一个基于vi编辑器的文本过滤器,它以全屏的方式按页显示文本文件的内容。more指令中内置了若干快捷键。

more与cat类似,但是more指令是以一页一页的形式显示,更方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能(与 vi 相似),使用中的说明文件,按 h 。常用操作命令:

  • Enter 向下n行,需要定义。默认为1行
  • Ctrl+F 向下滚动一屏
  • 空格键 向下滚动一屏
  • Ctrl+B 返回上一屏
  • = 输出当前行的行号
  • :f 输出文件名和当前行的行号
  • V 调用vi编辑器
  • !命令 调用Shell,并执行命令
  • q 退出more

less 指令

less是用来分屏查看文件内容,它的功能与more指令类似,但是比more指令更加强大,支持显示各种终端。less指令在显示原始文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于大型文件具有较高的效率。

less 与 more 类似,less 可以随意浏览文件,支持翻页和搜索,支持向上翻页和向下翻页。

语法格式:less [选项参数] 文件

tail 指令

tail 用于输出文件中尾部的内容,默认情况下,tail指令显示文件的末尾10行内容。(与head指令恰好相反)

tail 文件 # 查看文件末尾10行内容
tail -n X 文件 # 查看文件末尾X行内容,x可以是任意行数
tail -f 文件 # 追踪文档更新

输出重定向 和 >> 追加指令

语法格式:

ls -l>文件,将列表的内容写入到文件中(覆盖写模式)。
ls -al>>文件,将列表的内容追加到文件中(末尾追加模式)。
cat 文件1>文件2,将文件1的内容覆盖到文件2中去。
echo "内容">>文件,将“内容”追加到文件末尾中去。

例如:在home目录下创建一个demo目录,然后里面分别创建a.txt文件(空文件)和b.txt文件(有一段字符‘test01’),然后分别进行上面语法格式的练习。

cd /home
mkdir demo
cd demo/
touch a.txt # 创建一个空的文件a.txt
vim b.txt   # 使用vim编辑器,创建b.txt并且编辑其中的文本内容
ls 
ls -l>a.txt # 将列表中的内容写入到文件a.txt中
vim a.txt   # 使用vim编辑器查看a.txt中的内容
ls -al>>a.txt # 将列表中的内容追加到a.txt中
vim a.txt
cat a.txt>b.txt # 将a.txt的内容覆盖到b.txt中
vim b.txt
echo helloworld >> b.txt #对b.txt文件末尾追加hellowold
vim b.txt
、

3.7 软链接

ln -s ~/桌面/2.txt ./无敌

删除

rm -rf 软链接名
通过ll查看

3.8 history 查看已经执行过的历史命令

4 VI/VIM编辑器

既能打印基本的英文中文,还能编译特点符号,将Ascll码识别

语法

语法:

vi 文件路径  
vim 文件路径

vi/vim 编辑器的三种工作模式

命令模式:

          命令模式下,所敲的按键编辑器都理解为命令,以命令驱动不同的功能

          此模型下不能自由进行文本编辑。

输入模式:

           输入模式即为编辑模式,在该模式下可以对文件内容进行自由编辑

底线命令模式:
         以 : 开始,通常用于文件的保存、退出。

image-20250808195014673

模式 命令 描述
命令模式 i 在当前光标位置进入 输入模式
命令模式 a 在当前光标位置 之后 进入输入模式
命令模式 I 在当前行的开头,进入输入模式
命令模式 A 在当前行的结尾,进入输入模式
命令模式 o 在当前光标下一行进入输入模式
命令模式 O 在当前光标上一行进入输入模式

输入模式
esc

任何情况下输入 esc 都能回到命令模式
命令模式 上键、键盘 k 向上移动光标
命令模式 下键、键盘 j 向下移动光标

命令模式
左键、键盘h 向左移动光标
命令模式 右键、键盘 l 向右移动光标
命令模式 0 移动光标到当前行的开头
命令模式 $ 移动光标到当前行的结尾
命令模式 pageup(PGUP)

向上翻页
命令模式 pageudown(PGDN) 向下翻页
命令模式 / 进入搜索模式
命令模式 n 向下继续搜索
命令模式 N 向上继续搜索
命令模式 dd 删除光标所在的行内容
命令模式 ndd n是数字,表示删除当前光标向下的n行
命令模式 yy 复制当前行
命令模式 nyy n是数字,复制当前行和下面的n行
命令模式 p 粘贴复制的内容
命令模式 u 撤销修改
命令模式 ctrl + r 反向撤销修改
命令模式 gg 跳到首行
命令模式 G 跳到末尾
命令模式 dG 从当前行开始,向下全部删除
命令模式 dgg 从当前行开始,向上全部删除
命令模式 d$ 从当前光标开始,删除到本行的结尾
命令模式 d0 从当前光标开始,删除到本行的开头
底线命令模式 :wq 保存并退出
底线命令模式 :q 仅退出
底线命令模式 :q! 强制退出
底线命令模式 :w 仅保存
底线命令模式 :set nu 显示行号
底线命令模式 :set paste

设置粘贴模式

从外部复制进来,格式不会变

5.用户和用户组

用户组的管理

以下命令需 root 用户执行

  • 创建用户组:groupadd 用户组名
  • 删除用户组:groupdel 用户组名

用户的管理

useradd命令:创建用户

语法:useradd [-g -d] 用户名

选项:-g 指定用户的组,不指定-g ,会自动创建同名组并自动加入,指定-g需要组已经存在,如已存在同名组,必须使用 -g
选项:-d 指定用户HOME 路径,不指定,HOME目录默认: /home/用户名

举例: 创建一个 username 用户,并加入 usergroup 组,其HOME路径为:/home/file
       useradd username -g usergroup -d /home/file               
userdel 命令:删除用户

语法:userdel [-r] 用户名

选项:-r,删除用户的 HOME 目录,不使用 -r ,删除用户,HOME目录保留
参数:用户名,需要删除的用户
id 命令:查看用户所属组

语法:id [用户名]

参数:用户名,被查看的用户名,如果不写,就查看本身用户
usermod 命令:修改用户所属组

语法:usermod -aG 用户组 用户名

将指定用户加入指定用户组

sudo设置普通用户具有root权限

将对应命令给到root用户去执行

6.文件权限

认识权限信息

image-20250809161416899

上图中:

  1. 图中 1 表示文件、文件夹的权限控制信息
  2. 图中 2 表示文件、文件夹所属用户
  3. 图中 3 表示文件、文件夹所属用户组

解读上图中 1 的权限信息:

  • r:读权限 可以查看文件和文件夹,如使用 ls、cat、more等查看的命令
  • w:写权限 可以修改文件,并且对文件夹可以进行创建、删除、改名、增加等命令
  • x:执行权限 可以将文件作为执行程序来执行,对文件夹可以cd到文件夹

image-20250809161519074



    举例:drwxr-xrw-  

        第 1 位:d表示是文件夹
        第 2~4位:rwx   表示文件夹所属用户拥有 读、写、执行 的权限
        第 5~7位:r-x     表示该文件夹所属的用户组拥有对文件夹的 读、执行的权限
        第 8~10位:rw-   表示其他用户对该文件夹拥有 读写权限

chomd 改变权限

chmod :修改文件、文件夹的权限信息
只有文件、文件夹的所属用户或root用户可以修改

语法:chmod [-R] 权限 文件或文件夹

选项 -R:对文件夹内的全部内容应用同样的操作
权限:可以使用 u g o 来表示

例如:chmod u=rwx,g=rx,o=x test.txt
其中:u代表user所属用户权限,g代表group组权限,o代表other其他用户权限

chown 命令

  • chown:修改文件、文件夹的所属用户和用户组
  • 普通用户无法修改所属为其他用户或组,所以此命令只适合root用户执行
语法:chown [-R]  [用户] [:] [用户组]  文件或文件夹

选项:-R,对文件夹内全部内容应用相同规则
选项:用户,修改所属用户
选项:用户组,修改所属用户组
: 用于分隔用户和用户组
参数:文件或文件夹,需要修改的文件或文件夹
chown root test.txt              将 test.txt 所属用户修改为 root
chown :root test.txt             将 test.txt 所属用户组修改为 root
chown root:groupname test.txt    将 test.txt 所属用户修改为root,用户组修改为groupname 
chown -R root test               将 test 文件夹及文件夹下所有内容所属用户修改为 root

7.搜索查找类

7.1find查找文件或目录

按文件名查找:

find 命令:按文件名查找文件

语法:find 起始路径 -name/user "被查找文件名/所有者"

例子:find /home -name/user "test"
      在 /home 路径下找到 test 文件

按文件大小查找

find命令:按文件大小查找文件

语法:find 起始路径 -size +|-n[KMG]

+-:表示大于小于
n:表示大小数字
KMG:表示大小单位,k表示kb,M表示MB,G表示GB
例子:

查找小于20KB的文件:find / -size -20k
查找大于200MB的文件:find / -size +200M
查找大于20G的文件:find / -size +20G

7.2 grep 过滤查找以及|管道符

  • 管道符 | 左边的命令的结果,作为右边命令的输入
  • 管道符 | 一般配合 grep 使用,左边的输入,右边进行筛选
例子:
   1、左边输出test.txt,右边 grep在test.txt文件中查找“test_word”
   cat test.txt | grep "test_word"     

   2、在 ls -l 输出的内容中找到 test 
   ls -l | grep "test" 

8.压缩和解压类

tar

解压

tar -xvf file.tar //解压 tar包
tar -xzvf file.tar.gz //解压tar.gz
tar -xjvf file.tar.bz2   //解压 tar.bz2
tar -xZvf file.tar.Z   //解压tar.Z
unrar e file.rar //解压rar
unzip file.zip //解压zip
tar -zcvf file.tar.gz//压缩tar.gz

9.磁盘类

①df 命令:

检查磁盘分区的空间使用情况,用于显示磁盘空间使用情况和文件系统的统计信息。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。

-h:以人类可读的方式显示磁盘空间大小(例如GB、MB)。

②du 命令:

用于估算文件或目录的磁盘空间使用量。

-h:以人类可读的方式显示磁盘使用量(例如GB、MB)。

-s:仅显示总体使用量,而不显示子目录的细节。

-c:显示所有目录和文件的总体使用量。

-a:显示每个文件的详细使用量,包括隐藏文件。

10 进程线程类

1、查看所有进程(连带命令行)

ps -ef
  • UID:用户ID,即进程的拥有者
  • PID:进程ID
  • PPID:父进程ID
  • C:进程占用的CPU百分比
  • STIME:进程开始启动时间
  • TTY:登入者的终端机位置
  • TIME:进程使用的CPU(运算)时间
  • CMD:调用进程的命令

2、显示所有包含其他使用者的进程

ps -aux

  • USER:创建进程的用户
  • PID:进程ID
  • %CPU:进程占用CPU的百分比
  • %MEM:进程占用物理内存的百分比
  • VSZ:进程占用虚拟内存的大小(单位KB)
  • RSS:进程占用实际物理内存的大小(单位KB)
  • TTY:进程在哪个终端运行。
  • STAT:进程状态
  • START:进程开始启动的时间
  • TIME:进程使用的CPU(运算)时间
  • COMMAND:调用进程的命令

3.kill杀死进程

kill 进程号
kill -9  进程号 完全杀死

4.查看服务器总体进程

查看端口号

netstart

查看占用情况


语法:netstat -anp | grep 端口号 查看进程网络信息
语法:netstat -nlp | grep 查看网络端口占用情况

11 .定时任务

查看cron服务开启

systemctl status cron

以下是一些常用的crontab命令:

crontab -e:编辑当前用户的定时任务列表。该命令会在默认编辑器中打开定时任务文件,你可以添加、修改和删除定时任务。
crontab -l:列出当前用户的定时任务列表。该命令会将定时任务以文本形式输出到终端。
crontab -r:删除当前用户的所有定时任务。该命令会删除当前用户的定时任务文件,并且无法恢复,请谨慎使用。
        • *命令名
          │ │ │ │ └星期(0-7)(0和7都代表星期天)
          │ │ │ └──月(1-12)
          │ │ └────日(1-31)
          │ └──────小时(0-23)
          └────────分钟(0-59)

相关条目

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注