Linux 开关机命令

一般Linux不会经常进行关机操作,正确的关机流程是:

①sync

②关机或者重启

关机:shutdown -h now 或者 poweroff

重启:shutdown -r now 或者 reboot

  • 基本语法

    • sync将内存中的数据同步到硬盘中

    • poweroff 关闭系统,等同于shutdown -h now

    • reboot 重启系统,等同于shutdown -r now

    • shutdown [选项] 时间

  • 选项

    选项 功能
    -h halt关机
    -r reboot重启
  • 参数

    参数 功能
    now 立刻关机
    时间 等待多久之后关机,单位为分钟
  • 注意事项

    Linux系统中为了提高磁盘读写效率,对磁盘采用了“预读迟写”操作方式。当用户保存文件时,Linux核心并不一定对保存的数据立刻写入物理磁盘,而是将数据保存在缓存区中等缓存区写满时再写入磁盘,这种方式可以极大的提高磁盘写入数据的效率,同时也带来了安全隐患,如果数据还未写入磁盘时,系统掉电或者出现其他严重的问题造成宕机,可能造成数据的丢失,使用sync指令可以立即将缓存区的数据写入磁盘。

 其他相关命令

命令 说明
init 0 切换到运行级别 0(关机)
init 6 切换到运行级别 6(重启)
systemctl poweroff Systemd 方式关机
systemctl reboot Systemd 方式重启

注意事项

  1. 权限要求:普通用户需加 sudo(如 sudo reboot)。

  2. 远程服务器慎用:避免误操作导致服务中断。

  3. 强制关机(不推荐):

    • 长按电源键(物理方式,可能导致数据丢失)。

Linux 服务管理类命令

什么是服务类

临时开关服务命令

  • 语法

    • centos6

      • service 服务名 start         开启服务

      • service 服务名 stop         关闭服务

      • service 服务名 restart      重启服务

      • service 服务名 status       查看服务状态

    • centos7

      • systemctl start 服务名         开启服务

      • systemctl stop 服务名         关闭服务

      • systemctl restart 服务名      重启服务

      • systemctl status 服务名      查看服务

      • systemctl --type service      看正在运行的服务

  • 实操

    • 1查看网络服务状态

      systemctl status network.service
    • 2关闭服务

      systemctl stop network.service
    • 3启动服务

      systemctl start network.service
    • 4重启服务

      systemctl restart network.service
    • 5查看所有服务

      systemctl --type service
  • 注意事项

    .service 后缀可以省略不写

    开启和关闭不是永久的,一旦重启电脑,会恢复默认设置可以

    vim /etc/sysconfig/network- scripts/ifconfg- ens33

    里面有一个ONBOOT = "yes"表示网络是默认开机启动

    永久开关服务命令

    • 语法

      • centos6

        • chkconfig                         查看所有服务自启配置

        • chkconfig 服务名 off        关闭服务自启

        • chkconfig 服务名 on        开启服务自启

        • chkconfig 服务名 --list     查看服务开启启动状态

      • centos7

        • systemctl enable 服务名        打开自启

        • systemctl disable 服务名       关闭自启

        • systemctl is-enable 服务名    查看服务是否自启

        • systemctl list-unit-files            查看所有服务自启配置

    • 实操

      • 1 关闭防火墙自动启动

      systemctl status firewalld  查看防火墙
      systemctl disable firewalld 关闭防火墙自启
      • 2 开启防火墙自启

      systemctl enable firewalld 
      • 3 查看防火墙是否自启

      systemctl is-enable firewalld
      • 4 关闭网络管理器服务

      查看服务    systemctl status NetworkManager.service
      停止服务    systemctl stop NetworkManager
      查看自启动   systemctl is-enable NetworkManager
      关闭自动动   systemctl disable NetworkManager

      为什么关闭网络管理器服务?

      答:如果挂起客户机,相当于将linux内存磁盘等等给固定住了,但是网络时间需要慢慢变化,所以就容易将网络给锁住然后启动不起来,所以直接就关闭网络管理器服务。

    Linux系统又其中运行级别(runlevel):

  • 常用的是级别3和5(Centos7中只有两个级别:3和5)

  • 运行级别0:系统停机状态,系统默认运行级别不能设置为0,否则不能正常启动

  • 运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登录

  • 运行级别2:多用户工作状态(没有NFS),不支持网络

  • 运行级别3:完全的多用户状态(有NFS),登录后进入控制台命令行模式

  • 运行级别4:系统未使用,保留

  • 运行级别5:X11控制台,保留

  • 运行级别6:系统正常关闭并重启,默认运行级别不能设置为6,否则不能正常启动。

Linux 帮助类命令

1.man获取帮助信息

一个梗:有问题找那个男人(man)

  • 语法:

    • man[命令或配置文件] (功能描述:获取帮助信息)

  • 显示说明:

信息 功能
NAME 命令的名称何单行描述
SYNOPSIS 怎么样使用命令
DESCPIPTION 命令功能的深入探讨
EXAMPLES 怎么样使用命令的例子
SEE ALSO 相关主题(通常是手册页)
  • 实操案例

    • 查看ls命令的帮助信息

      [root*hadop101 ~]# man ls

常用操作

  • 空格键:向下翻页

  • Enter:逐行滚动

  • /关键词:搜索(如 /pattern 查找 "pattern")

  • q:退出手册


2.help获取shell内置命令的帮助信息

  • 基础语法:(比较老)

    • help 命令(功能描述:获取shell内置命令的帮助信息)

    • 案例实操

# 查看 help 自身的帮助
[root workflow_56270228 /root] Mon Oct 27 10:26:35 
$help help
help: help [-dms] [pattern ...]
    Display information about builtin commands.
    
    Displays brief summaries of builtin commands.  If PATTERN is
    specified, gives detailed help on all commands matching PATTERN,
    otherwise the list of help topics is printed.
    
    Options:
      -d        output short description for each topic
      -m        display usage in pseudo-manpage format
      -s        output only a short usage synopsis for each topic matching
        PATTERN
    
    Arguments:
      PATTERN   Pattern specifiying a help topic
    
    Exit Status:
    Returns success unless PATTERN is not found or an invalid option is given.

安装uTools也可以解决陌生命令的解释(傻瓜式安装)

alt + space -> 搜索Linux -> 在插件市场上搜索 -> 选择Linux 命令文档 -> Ctrl + D 分离为独立窗口 -> 可以查询想要的命令eg:搜索目录,会将所有与目录相关的命令显示出来


3.info - 查看更详细的文档(Info Pages)

作用:比 man 更结构化的文档(适用于 GNU 命令)。
语法

info [命令名]

示例

info tar     # 查看 tar 的详细文档
info gcc     # 查看 gcc 的详细文档

常用操作

  • 方向键:导航

  • Tab:跳转到链接

  • q:退出


4.whatis - 显示命令的简短描述

作用:快速查看命令的简要说明(从 man 数据库中提取)。
语法

whatis [命令名]

示例

whatis cp     # 显示 "cp - copy files and directories"
whatis chmod  # 显示 "chmod - change file mode bits"

5. apropos - 搜索相关命令

作用:根据关键词搜索相关命令(适用于记不清完整命令名时)。
语法

apropos [关键词]

示例

apropos "copy"      # 查找与 "copy" 相关的命令
apropos "network"   # 查找与 "network" 相关的命令

6. which - 查看命令的安装路径

作用:显示命令的可执行文件位置。
语法

which [命令名]

示例

which python   # 显示 Python 的路径(如 /usr/bin/python)
which ls       # 显示 ls 的路径(如 /bin/ls)

7. whereis - 查找命令的二进制、源码和手册位置

作用:比 which 更全面,显示命令的二进制、源码和手册位置。
语法

whereis [命令名]

示例

whereis ls
# 输出示例:
# ls: /bin/ls /usr/share/man/man1/ls.1.gz

8. type - 查看命令类型(内置/外部命令)

作用:判断命令是 内置命令(Shell Builtin) 还是 外部命令
语法

type [命令名]

示例

type cd     # 输出 "cd is a shell builtin"(内置命令)
type ls     # 输出 "ls is /bin/ls"(外部命令)

9. tldr - 简化的命令示例手册

作用:提供命令的常用示例(比 man 更简洁,需安装)。
安装

sudo apt install tldr    # Debian/Ubuntu
sudo yum install tldr    # CentOS/RHEL

使用

tldr [命令名]

示例

tldr tar     # 显示 tar 的常用用法示例
tldr ssh     # 显示 ssh 的常用用法示例

总结

命令 作用
man [命令] 查看完整手册(最详细)
[命令] --help 查看快速帮助
info [命令] 查看结构化文档(GNU 命令)
whatis [命令] 显示命令的简短描述
apropos [关键词] 搜索相关命令
which [命令] 查看命令的路径
whereis [命令] 查找命令的二进制、源码和手册
type [命令] 判断是内置还是外部命令
tldr [命令] 查看简化版示例(需安装)

推荐使用场景

  • 快速查询 → --help 或 tldr

  • 详细学习 → man 或 info

  • 忘记命令名 → apropos

Linux 进程、线程类命令

进程是正在执行的一个程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源。---windows中的任务管理器。

ps 查看当前系统进程状态

ps: 进程状态(process status)

基本语法

ps -aux  (功能描述:查看系统中所有进程)

ps -ef  (功能描述:可以查看子父进程之间的关系)排序是从启动顺序排的

选项说明

选项

功能

-a

选择所有进程

-u

显示所有用户的所有进程

-x

显示没有终端的进程

功能说明

ps -aux显示信息说明---显示信息更多

  • USER:该进程是由哪个用户产生的
  • PID:进程的ID号
  • %CPU:该进程占用CPU资源的百分比,占用越高,进程越耗费资源;占的是CPU一个核的百分比
  • %MEM:该进程占用物理内存的百分比,占用越高,进程越耗费资源;
  • VSZ:该进程占用虚拟内存的大小,单位KB;---使用过的量
  • RSS:该进程占用实际物理内存的大小,单位KB;---当前使用量
  • TTY:该进程是在哪个终端中运行的。其中tty1-tty6代表系统的虚拟控制台。pts/0-255代表伪终端,通常用于 SSH 会话、telnet 会话以及其他远程登录会话。
  • STAT:进程状态。常见的状态有:R:运行、S:睡眠、T:停止状态、s:包含子进程、+:位于后台、I<:几乎没有使用CPU时间
  • START:该进程的启动时间
  • TIME:该进程占用CPU的运算时间,注意不是系统时间
  • COMMAND:产生此进程的命令名

 ps -ef显示信息说明---常用

进程是树状结构,1号ID是鼻祖ID

  • UID:用户名
  •  PID:进程ID---唯一的
  • PPID:父进程ID---上一级的ID
  • C:CPU用于计算执行优先级的因子。数值越大,表明进程是CPU密集型运算,执行优先级会降低;数值越小,表明进程是I/O密集型运算,执行优先级会提高
  • STIME:进程启动的时间
  • TTY:该进程是在哪个终端中运行的。
  • TIME:CPU时间
  • CMD:启动进程所用的命令和参数
  • []里面的叫内核线程,每一个内核线程都有一个独立的进程ID

经验技巧

如果想查看进程的CPU占用率和内存占用率,可以使用 -aux;

如果想查看进程的父进程ID可以使用 -ef;

案例实操

查看进程的CPU占用率和内存占用率

feng@ubuntu:~/桌面$ ps -aux

查看进程的父进程ID

feng@ubuntu:~/桌面$ ps -ef

拓展:监察进程+缓冲缓存的区分

1、监察进程

top

top是按CPU占比进行动态查看

2、

缓冲:写,将程序写到缓冲区中,然后缓冲区慢慢地往磁盘上写

缓存:读,将读的内容先移动到缓存区(内存)中,这样的话下次读会非常快

kill 终止进程

基本语法

kill  [选项] 进程号  (功能描述:通过进程号杀死进程,容易造成临时资源未回收谨慎使用)

keil 进程号(自己杀死自己,相当于正常关闭 )

killall 进程名称   (功能描述:通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用)

选项说明

选项

功能

-9

表示强迫进程立即停止

案例实操

1、开启多个终端

在XShell中双击开启的标签,即可打开新的终端。

准备两个终端。

2、监控houge.txt

在其中一个终端中执行以下命令。

feng@ubuntu:~/桌面$ tail -F houge.txt

3、查看tail进程号

在另一个终端中查看进程号。

feng@ubuntu:~/桌面$ ps -ef | grep tail
zxf         3976    3660  0 00:56 pts/2    00:00:00 tail -F houge.txt

4、杀死tail进程

feng@ubuntu:~/桌面$ kill -9 3976

 此时,另一个终端可以看到提示,进程已被杀死,如下图所示。

5、通过名称杀死进程

killall命令可以根据名称杀死进程,此处的进程名称是精确匹配。通常进程名称为启动命令中可执行文件的名称。对于tail -F houge.txt启动的进程,其进程名称为tail。

再开启一个终端,在其中两个终端中执行以下命令。

feng@ubuntu:~/桌面$ tail -F houge.txt

在最后一个终端中执行以下命令。

atguigu@ubuntu:~/桌面$ killall tail

可以看到另外两个终端的tail进程均被杀死。

free查看服务器总体内存

基本语法

free -m (功能描述:查看服务器总体内存)

案例实操

feng@ubuntu:~/桌面$ free -m
total        used        free      shared  buff/cache   available
Mem: 3934         543        2879          12         511        3093
Swap:4095           0        4095

 top查看系统健康状态

基本命令

top [选项]

选项说明

选项

功能

-d 秒数

指定top命令每隔几秒更新。

-i

使top不显示任何闲置或者僵死进程。

-p

通过指定监控进程ID来仅仅监控某个进程的状态。

操作说明

操作

功能

P

以CPU使用率排序,默认就是此项

M

以内存的使用率排序

N

以PID排序

q

退出top

查询结果字段解释

第一行信息为任务队列信息

内容

说明

12:26:46

系统当前时间

up 1 day, 13:32

系统的运行时间,本机已经运行1天

13小时32分钟

2 users

当前登录了两个用户

load  average:  0.00, 0.00, 0.00

系统在之前1分钟,5分钟,15分钟的平均负载。一般认为小于1时,负载较小。如果大于1,系统已经超出负荷。

 第二行为进程信息

Tasks:  95 total

系统中的进程总数

1 running

正在运行的进程数

94 sleeping

睡眠的进程

0 stopped

正在停止的进程

0 zombie

僵尸进程。如果不是0,需要手工检查僵尸进程

 第三行为CPU信息

Cpu(s):  0.1%us

用户模式占用的CPU百分比

0.1%sy

系统模式占用的CPU百分比

0.0%ni

改变过优先级的用户进程占用的CPU百分比

99.7%id

空闲CPU的CPU百分比

0.1%wa

等待输入/输出的进程的占用CPU百分比

0.0%hi

硬中断请求服务占用的CPU百分比

0.1%si

软中断请求服务占用的CPU百分比

0.0%st

st(Steal  time)虚拟时间百分比。就是当有虚拟机时,虚拟CPU等待实际CPU的时间百分比。

第四行为物理内存信息

Mem:    625344k total

物理内存的总量,单位KB

571504k used

已经使用的物理内存数量

53840k free

空闲的物理内存数量,我们使用的是虚拟机,总共只分配了628MB内存,所以只有53MB的空闲内存了

65800k buffers

作为缓冲的内存数量

第五行为交换分区(swap)信息

Swap:   524280k total

交换分区(虚拟内存)的总大小

0k used

已经使用的交互分区的大小

524280k free

空闲交换分区的大小

409280k cached

作为缓存的交互分区的大小

案例实操

feng@ubuntu:~/桌面$ top -d 1
feng@ubuntu:~/桌面$ top -p 3933

Linux 压缩解压缩命令

tar 打包

windows中是.zip .rar .7z LinuX中是 .tar.gz

在Linux中打包和压缩是分开的。.tar是打包.gz是压缩

解压 .zip 压缩包:unzip glass_iris_ant_0818-0822-processed.zip

基本语法

tar  [选项]  XXX.tar.gz  将要打包进去的内容(功能描述:打包目录,压缩后的文件格式.tar.gz)

选项说明

选项

功能

-c

产生.tar打包文件

-v

显示详细信息

-f

指定压缩后的文件名

-z

打包同时压缩

-x

解包.tar文件

案例实操

压缩多个文件

将 tt2.txt 和 tt.txt 打包压缩成 tt.tar.gz 。

feng@ubuntu:~/桌面$ touch tt2.txt
feng@ubuntu:~/桌面$ tar -zcvf tt.tar.gz tt.txt tt2.txt
feng@ubuntu:~/桌面$ ll
...
-rw-rw-r--  1 zxf  zxf  164  8月 13 00:10 tt.tar.gz

压缩目录

将 test 这个目录,打包压缩成 b.tar.gz 。

feng@ubuntu:~/桌面$ tar -zcvf b.tar.gz test/
test/
test/a/
test/a/note.txt
test/b/
test/b/bb/
test/b/bb/note2.txt
atguigu@ubuntu:~/桌面$ ll
...
-rw-rw-r--  1 zxf  zxf  231  8月 13 00:23 test.tar.gz
...

解压到当前目录

解压 test.tar.gz 到当前目录。

feng@ubuntu:~/桌面$ rm -r test
feng@ubuntu:~/桌面$ tar -zxvf test.tar.gz
test/
test/a/
test/a/note.txt
test/b/
test/b/bb/
test/b/bb/note2.txt
feng@ubuntu:~/桌面$ ll
...
drwxrwxr-x  4 zxf  zxf 4096  8月 12 21:25 test/
...

解压到指定目录

-C

将 test.tar.gz 解压到 当前目录的上级目录下的 work 文件夹中。

feng@ubuntu:~/桌面$ mkdir work
feng@ubuntu:~/桌面$ tar -zxvf test.tar.gz -C ./work
feng@ubuntu:~/桌面$ ls work/
test

LinuX---搜索查找类命令

find查找文件或者目录---相当于windows中的查找文件

find指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件显示在终端。

基本语法

find [搜索范围] [选项]

选项说明

选项

功能

-name <文件名>

按照指定的文件名查找模式查找文件(模式必须用引号包含)

-user <用户名>

查找属于指定用户名所有文件

-size <文件大小>

按照指定的文件大小查找文件,单位为: 

b —— 块(512字节)

c —— 字节

w —— 字(2字节)

k —— 千字节

M —— 兆字节

G —— 吉字节

案例实操

按文件名:根据名称查找当前目录下所有以.txt结尾的文件。

./        当前目录

/        全局目录

*        表示模糊搜索

feng@ubuntu:~/桌面$ find ./ -name "*.txt"

按拥有者:查找当前目录下,用户名称的文件

feng@ubuntu:~/桌面$ find ./ -user "zxf"

按文件大小:在当前目录下查找大于200字节的文件(+n 大于  -n小于   n等于)

feng@ubuntu:~/桌面$ find ./ -size "+200c"

grep与“|”管道符的过滤查找

管道符,“|”,表示将前一个命令的处理结果输出传递给后面的命令处理。

就是前一个命令的结果再进行二次筛选,筛选条件是|后面的命令

Grep(Global Regular Expression Print),用于对指定文本根据正则表达式(特定规则)搜索匹配并输出到终端。一般与管道符进行配合使用。

基本语法

grep 选项 查找内容 源文件

选项说明

选项

功能

-n

显示匹配行及行号。

案例实操

查找某文件在第几行

feng@ubuntu:~/桌面$ find ./ -size "-200c" |grep a
feng@ubuntu:~/桌面$ ll |grep -n zx
feng@ubuntu:~/桌面$ cat passwd |grep -n wu

就是在当前目录下找小于200字节的文件并且包含字母a的文件显示出来

显示带zx字母的文件并且显示其行和行号。

Linux 路径类

 basename

基本语法

basename [string / pathname] [suffix]   (功能描述:basename命令会删掉所有的前缀包括最后一个(‘/’)字符,然后将字符串显示出来。

basename可以理解为取路径里的文件名称。

选项说明

suffix为后缀,如果suffix被指定了,basename会将pathname或string中的suffix去掉。

案例实操

截取该/home/zxf/banzhang.txt路径的文件名称。

feng@ubuntu:~$ basename /home/zxf/note.txt 
note.txt
feng@ubuntu:~$ basename /home/zxf/tt.txt .txt
tt

dirname

基本语法

dirname 文件绝对路径  (功能描述:从给定的包含绝对路径的文件名中去除文件名(非目录的部分),然后返回剩下的路径(目录的部分)。)

dirname 可以理解为取文件路径的绝对路径名称。

案例实操

获取banzhang.txt文件的路径。

feng@ubuntu:~$ dirname /home/zxf/banzhang.txt 
/home/zxf

Linux 文件权限类

 文件属性

能力越大,责任越大。权限越小,责任越小。

Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。在Linux中我们可以使用ll或者ls -l命令来显示一个文件的属性以及文件所属的用户和组。

从左到右的10个字符表示

如果没有权限,就会出现减号[ - ]而已。从左至右用0-9这些数字来表示:

0首位表示类型

在Linux中第一个字符代表这个文件是目录、文件或链接文件等等

-         代表文件

d        代表目录

l         链接文档(link file);

第1-3位确定属主(该文件的所有者)拥有该文件的权限。---User

第4-6位确定属组(所有者的同组用户)拥有该文件的权限,---Group

第7-9位确定其他用户拥有该文件的权限 ---Other

rwx作用文件和目录的不同解释

作用到文件:

  • [ r ]代表可读(read): 可以读取,查看
  • [ w ]代表可写(write): 可以修改,但是不代表可以删除该文件,
  • 删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件.
  • [ x ]代表可执行(execute):可以被系统执行

作用到目录:

  • [ r ]代表可读(read): 可以读取,ls查看目录内容
  • [ w ]代表可写(write): 可以修改,目录内创建+删除+重命名目录
  • [ x ]代表可执行(execute):可以进入该目录

图标:

案例实操 

feng@ubuntu:~/桌面$ ll
总计 16
drwxr-xr-x  3 zxf zxf 4096  7月 24 14:58 ./
drwxr-x--- 16 zxf zxf 4096  7月 24 14:47 ../
-rw-r--r--  1 zxf zxf 3007  7月 24 14:58 passwd
drwxrwxr-x  3 zxf zxf 4096  7月 24 14:41 test/

 文件基本属性介绍

chmod 改变权限

基本语法

第一种方式变更权限

chmod  [{ugoa}{+-=}{rwx}] 文件或目录

第二种方式变更权限

chmod  [mode=421 ]  [文件或目录]

经验技巧

u:所有者          g:所有组           o:其他人          a:所有人(u、g、o的总和)

r=4 w=2 x=1        rwx=4+2+1=7

案例实操

修改文件使其所属主用户具有执行权限

feng@ubuntu:~/桌面$ chmod u+x passwd

修改文件使其所属组用户具有执行权限

feng@ubuntu:~/桌面$ chmod g+x passwd

修改文件所属主用户执行权限,并使其他用户具有执行权限

feng@ubuntu:~/桌面$ chmod u-x,o+x passwd

采用数字的方式,设置文件所有者、所属组、其他用户都具有可读可写可执行权限。

feng@ubuntu:~/桌面$ chmod 765 passwd

修改整个文件夹里面的所有文件的所有者、所属组、其他用户都具有可读可写可执行权限。

feng@ubuntu:~/桌面$ chmod -R 777 test

拓展:可以通过一个命令查看用户列表

vim /etc/password

chown改变所有者

chown: 改变所有者(change owner)

基本语法

chown [选项] [最终用户] [文件或目录]  (功能描述:改变文件或者目录的所有者)

选项说明

选项

功能

-R

递归操作

案例实操

修改文件所有者

feng@ubuntu:~/桌面$ sudo chown root note.txt
feng@ubuntu:~/桌面$  ll
…
-rwxrwxrwx  1 root zxf  367  3月  6 15:44 note.txt
…

递归改变文件所有者和所有组

feng@ubuntu:~/桌面$ ll -R test/
test:
总计 16
drwxrwxr-x 4 zxf zxf 4096  8月 12 21:25 ./
drwxr-xr-x 4 zxf zxf 4096  8月 12 23:00 ../
drwxrwxr-x 2 zxf zxf 4096  8月 12 21:34 a/
drwxrwxr-x 3 zxf zxf 4096  8月 12 21:29 b/

test/a:
总计 12
drwxrwxr-x 2 zxf zxf 4096  8月 12 21:34 ./
drwxrwxr-x 4 zxf zxf 4096  8月 12 21:25 ../
-rw-rw-r-- 1 zxf zxf   12  8月 12 21:34 note.txt

test/b:
总计 12
drwxrwxr-x 3 zxf zxf 4096  8月 12 21:29 ./
drwxrwxr-x 4 zxf zxf 4096  8月 12 21:25 ../
drwxrwxr-x 2 zxf zxf 4096  8月 12 21:29 bb/

test/b/bb:
总计 8
drwxrwxr-x 2 zxf zxf 4096  8月 12 21:29 ./
drwxrwxr-x 3 zxf zxf 4096  8月 12 21:29 ../
-rw-rw-r-- 1 zxf zxf    0  8月 12 21:26 note2.txt


feng@ubuntu:~/桌面$ sudo chown -R root:root test/
feng@ubuntu:~/桌面$ ll -R test/
test:
总计 16
drwxrwxr-x 4 root root 4096  8月 12 21:25 ./
drwxr-xr-x 4 zxf  zxf  4096  8月 12 23:00 ../
drwxrwxr-x 2 root root 4096  8月 12 21:34 a/
drwxrwxr-x 3 root root 4096  8月 12 21:29 b/

test/a:
总计 12
drwxrwxr-x 2 root root 4096  8月 12 21:34 ./
drwxrwxr-x 4 root root 4096  8月 12 21:25 ../
-rw-rw-r-- 1 root root   12  8月 12 21:34 note.txt

test/b:
总计 12
drwxrwxr-x 3 root root 4096  8月 12 21:29 ./
drwxrwxr-x 4 root root 4096  8月 12 21:25 ../
drwxrwxr-x 2 root root 4096  8月 12 21:29 bb/

test/b/bb:
总计 8
drwxrwxr-x 2 root root 4096  8月 12 21:29 ./
drwxrwxr-x 3 root root 4096  8月 12 21:29 ../
-rw-rw-r-- 1 root root    0  8月 12 21:26 note2.txt

chgrp 改变所属组

chgrp: 改变所属组(change group)

基本语法

chgrp [最终用户组] [文件或目录] (功能描述:改变文件或者目录的所属组)

案例实操

修改文件的所属组

feng@ubuntu:~/桌面$ ll
...
-rwxrwxrwx  1 root root    0  8月 12 22:53 tt.txt
...
feng@ubuntu:~/桌面$ sudo chgrp zxf tt.txt
feng@ubuntu:~/桌面$ ll
...
-rwxrwxrwx  1 root zxf    0  8月 12 22:53 tt.txt

Linux VI/VIM编辑器

 vi/vim是什么

VI是Unix操作系统和类Unix操作系统中最通用的文本编辑器。

VIM编辑器是从VI发展出来的一个性能更强大的文本编辑器。可以主动的以字体颜色辨别语法的正确性,方便程序设计。VIM与VI编辑器完全兼容。

安装

在终端中执行以下命令安装vim

feng@ubuntu:~/桌面$ sudo apt install vim

测试数据准备

拷贝/etc/profile 数据到当前目录下

feng@ubuntu:~/桌面$ cp /etc/profile ./

一般模式

以vim打开一个档案就直接进入一般模式了(这是默认的模式)。在这个模式中, 你可以使用『上下左右』按键来移动光标,你可以使用『删除字符』或『删除整行』来处理档案内容, 也可以使用『复制、贴上』来处理你的文件数据。

常用语法

语法

功能描述

yy

复制光标当前一行

y数字y

复制一段(从光标当前行到后n行)

p

箭头移动到目的行粘贴

u

撤销上一步

dd

删除光标当前行

d数字d

删除光标(含)后多少行

x

剪切一个字母(当前光标),相当于del

X   

剪切一个字母(当前光标的前一个),相当于Backspace

yw

复制一个词

dw

删除一个词

shift+6(^)

移动到行头

shift+4($)

移动到行尾

1 再按shift+g

移动到页头,数字

shift+g

移动到页尾

数字N+shift+g

移动到目标行

 键盘图

编辑模式

在一般模式中可以进行删除、复制、粘贴等的动作,但是却无法编辑文件内容的!要等到你按下『i, I, o, O, a, A』等任何一个字母之后才会进入编辑模式。

注意了!通常在Linux中,按下这些按键时,在画面的左下方会出现『INSERT或 REPLACE』的字样,此时才可以进行编辑。而如果要回到一般模式时, 则必须要按下『Esc』这个按键即可退出编辑模式。

进入编辑模式

常用语法

按键

功能

i

当前光标前

a

当前光标后

o

当前光标行的下一行

I

光标所在行最前

A

光标所在行最后

O

当前光标行的上一行

 退出编辑模式

按『Esc』键

命令模式

在一般模式当中,输入『 : / ?』3个中的任何一个按钮,就可以将光标移动到最底下那一行。

在这个模式当中, 可以提供你『搜寻资料』的动作,而读取、存盘、大量取代字符、离开 vi 、显示行号等动作是在此模式中达成的!

基本语法

命令

功能

:w

保存

:q

退出

:!

强制执行

/要查找的词

n 查找下一个,N 往上查找

:noh

取消高亮显示

:set nu

显示行号

:set nonu

关闭行号

:%s/old/new/g

替换内容   /g global替换匹配到的所有内容

案例实操

保存退出

对于有写权限的文件,修改后,保存并退出。

:wq

直接退出

没有修改文件内容,

:q

强制退出

修改了文件内容,但是不想保存,此时需要强制退出。

:q!

强制保存退出

对于没有写权限的文件,修改后,必须强制保存退出方可保留更改。

:wq!

模式转换图解

LinuX-APT软件包管理器+常用基本命令

 APT(Advanced Packaging Tools)

是Debian及其派生Linux的软件包管理器,可以自动下载,配置,安装二进制或者源代码格式的软件包,因此简化了Unix系统上管理软件的过程。

一、常用命令

  list - 根据名称列出软件包

  search - 搜索软件包描述

  show - 显示软件包细节

  install - 安装软件包

  reinstall - 重新安装软件包

  remove - 移除软件包

  autoremove - 卸载所有自动安装且不再使用的软件包

  update - 更新可用软件包列表

  upgrade - 通过 安装/升级 软件来更新系统

  full-upgrade - 通过 卸载/安装/升级 来更新系统

  edit-sources - 编辑软件源信息文件

  satisfy - 使系统满足依赖关系字符串

示例

sudo apt serch ssh

1、也可以通过ai搜索软件名字

sudo apt update

2、安装完程序之后---记得要更新安装列表(一定要更新)

二、帮助命令man(推荐问AI)

查看手册页说明文档的方式

man man

列出当下列表list

ls

可以通过man 查 ls 下有哪些参数

man ls

三、help获取shell内建命令的帮助信息(help 获取更加内核的命令---还是推荐AI)

1、也可以直接用help查看所有的内建命令

help

2、help + 命令:查询其用法

help cd

 常用快捷键

常用快捷键

功能

Ctrl + L

清屏;彻底清屏是:clear

Ctrl + C 或 Q

停止进程 / 退出

TAB键(一次或二次)

提示(更重要的是可以防止敲错)

上下键

查找执行过的命令

Ctrl + U

清除当前敲的命令

四、pwd 显示当前工作目录的绝对路径

就是忘记当前所在位置,可以用pwd进行查询

五、ls 列出目录的内容

ls: 列出目录内容(list)

基本语法

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

ls -al

一个“-”加英文,这个英文必须是多个缩写的组合

ls --help

两个“-”加英文,这个英文必须是完成单词

选项说明

选项

功能

-a

全部的文件,连同隐藏档(开头为 . 的文件) 一起列出来(常用)

-l

长数据串列出,包含文件的属性与权限等等数据;(常用)

-R

递归(recursion)列出目录下所有子目录及文件

显示说明

每行列出的信息依次是:

1        对象类型    - 文件    d 目录    l  软链接    c 设备  b 数据块  

2         9位权限              

3        对象是文件  硬连接(指向的数据块 还有哪些关联的文件名 )

        对象是目录   其下的子目录数 --- “.”表示当前目录 “..”表示上级目录

4        对象的所有者  (它的权限是9位权限的前三位)

5        对象的所属组  (它的权限是9位权限的中间三位)---剩下的三位是其他角色的权限

6        大小   文件的大小   目录默认4096    

7        创建时间  月日 时间    

8        文件名        ->   链接的源文件      * 可执行程序

案例

查看当前目录的所有内容信息

feng@ubuntu:~/桌面$ ls -al
总用量 44
drwx------. 5 zxf zxf 4096 5月  27 15:15 .
drwxr-xr-x. 3 root    root    4096 5月  27 14:03 ..
drwxrwxrwx. 2 root    root    4096 5月  27 14:14 hello
-rwxrw-r--. 1 zxf zxf   34 5月  27 14:20 test.txt

ubuntu中ll是ls -al的别名,我们可以使用ll查看目录下的所有文件

feng@ubuntu:~/桌面$ ll
总用量 44
drwx------. 5 zxf zxf 4096 5月  27 15:15 .
drwxr-xr-x. 3 root    root    4096 5月  27 14:03 ..
drwxrwxrwx. 2 root    root    4096 5月  27 14:14 hello
-rwxrw-r--. 1 zxf zxf   34 5月  27 14:20 test.txt

拓展

显示文件的大小
ls -ll		// 显示成字节大小 
ls -lh		// 以KB、MB等为单位进行显示

五、拓展1:显示块大小:lsblk

全称为 "list block devices"(列出块设备)。它用于显示系统中所有可用的块设备(如硬盘、SSD、U盘、分区等)及其挂载状态和层次结构。

语法

lsblk [选项]

选项

选项 说明

-a

显示所有设备(包括未挂载的)

-f

显示文件系统类型和挂载点(推荐常用)

-l

以列表形式输出(不树形)

-n

不显示标题头

-o

自定义输出列(如NAME,SIZE,TYPE,MOUNTPOINT,FSTYPE

-p

显示完整设备路径(如/dev/vda1而不是vda1

-d

只显示磁盘本身,不显示分区

五、拓展2:du 显示目录大小

显示目录文件的大小

查看当前目录下各文件、文件夹的大小

du -h --max-depth=1 *

查看指定目录文件夹大小

du -sh 目录名称/文件夹名称

五、拓展3:查找当前文件下有多少个文件

ls -l | wc -l

word count 的缩写(全拼就是 word count

-l 代表 line(行数)

会将当前目录下的每个文件/目录名单独一行列出,然后通过管道 | 传给 wc -l。

选项

含义 示例

-l

统计行数(lines)

wc -l file.txt

-w

统计单词数(words)

wc -w file.txt

-c

统计字节数(bytes)

wc -c file.txt

-m

统计字符数(chars)

wc -m file.txt

六、cd 切换目录

cd: 切换路径(Change Directory)

基本语法

cd  [参数]

参数说明

参数

功能

cd 绝对路径

切换路径

cd 相对路径

切换路径

cd ~或者cd

回到自己的家目录

cd -

回到上一次所在目录

cd ..

回到当前目录的上一级目录

cd -P

跳转到实际物理路径,而非快捷方式路径

案例

使用绝对路径切换到根目录下的bin目录

feng@ubuntu:~$  cd /bin/
feng@ubuntu:/bin$

使用相对路径切换到“公共的”目录

feng@ubuntu:~$  cd 公共的/
feng@ubuntu:~/公共的$

表示回到自己的家目录,亦即是/home/zxf这个目录

feng@ubuntu:~/公共的$ cd
feng@ubuntu:~$

cd- 回到上一次所在目录

feng@ubuntu:~$ cd -
/home/zxf/公共的
feng@ubuntu:~/公共的$

表示回到当前目录的上一级目录,亦即是 “/root/公共的”的上一级目录的意思;

feng@ubuntu:~/公共的$ cd ..
feng@ubuntu:~$

七、mkdir 创建一个新的目录

mkdir: 创建目录(Make directory)

基本语法

mkdir [选项] 要创建的目录

选项说明

选项

功能

-p

创建多层目录 (目标目录及其父目录)

案例

创建一个目录

feng@ubuntu:~/桌面$ mkdir test
feng@ubuntu:~/桌面$ mkdir test/a

创建一个多级目录

feng@ubuntu:~/桌面$ mkdir -p test/b/bb/bbb

八、touch 创建空文件

基本语法

touch 文件名称

案例

feng@ubuntu:~/桌面$ touch test/a/note.txt

九、cp复制文件或目录

cp: 复制文件或目录(copy

基本语法

cp [选项] source dest     (功能描述:复制source文件到dest)

选项说明

选项

功能

-r

递归复制整个文件夹

参数说明

参数

功能

source

源文件

dest

目标文件

案例

复制文件

feng@ubuntu:~/桌面$ cp test/a/note.txt test/b/

递归复制整个文件夹 

feng@ubuntu:~/桌面$ cp -r test/b/ ./

十、rm 删除文件或目录

rm: 删除文件或目录(remove

基本语法

rm [选项] deleteFile   (功能描述:删除指定目录或文件)

选项说明

选项

功能

-r

递归删除目录及其中所有内容   (默认只能删除文件)

-f

强制执行删除操作,而不提示用于进行提示确认。force

-v

显示指令的详细执行过程

 案例

删除目录中的内容

feng@ubuntu:~/桌面$ rm b/note.txt

递归删除目录中所有内容

feng@ubuntu:~/桌面$ rm -r b/

十一、mv 移动文件与目录或重命名

mv: 移动文件或目录(move

基本语法

mv oldNameFile newNameFile (功能描述:重命名)

mv /xxx/movefile /targetFolder (功能描述:移动文件)

案例

重命名

feng@ubuntu:~/桌面$  mv test/a/note.txt test/a/note2.txt

移动文件到上一层

feng@ubuntu:~/桌面$  mv test/a/note2.txt ../

十二、cat查看文件内容

cat: 查看文件内容(catenate 连接)

基本语法

cat  [选项] 要查看的文件

选项说明

选项

功能描述

-n

显示所有行的行号,包括空行。

经验技巧

一般查看比较小的文件,一屏幕能显示全的。

案例

查看文件内容并显示行号

feng@ubuntu:~/桌面$ cat -n /etc/password

十三、tail 输出文件尾部内容

适合看大日志结尾部分,-30f可以实时跟踪30行结尾

tail用于输出文件中尾部的内容,默认情况下tail指令显示文件的后10行内容。

基本语法

  1. tail  文件    (功能描述:查看文件尾部10行内容)
  2. tail  -n  5 文件  (功能描述:查看文件尾部5行内容,5可以是任意行数)
  3. tail  -F  文件  (功能描述:实时追踪该文档的所有更新)

选项说明

选项

功能

-n<行数>

输出文件尾部n行内容

-F

显示文件最新追加的内容,监视文件变化

案例

查看文件尾2行内容(默认10)

feng@ubuntu:~/桌面$  tail -n 2 /etc/password

实时追踪该档的所有更新

feng@ubuntu:~/桌面$  touch note.txt
feng@ubuntu:~/桌面$  tail -F note.txt     // 修改note.txt实时显示

拓展: less(可以搜索)/more

查看大文本

基本语法

less [文件]

按空格往下翻页,↑往上翻,/加搜索内容可以高亮

q退出

案例

more xiyouji
/唐僧            //可以搜索

十四、echo 输出内容---类似于printf

基本语法

echo:输出内容到控制台(回声、再现)

echo [选项] [输出内容]

选项说明

控制字符  

作用

\\  

输出\本身

\n  

换行符

\t  

制表符,也就是Tab键

-e

支持反斜线控制的字符转换

案例

feng@ubuntu:~/桌面$ echo helloworld
helloworld
feng@ubuntu:~/桌面$ echo "hello world"
hello world
feng@ubuntu:~/桌面$ echo "hello\nworld"
hello\nworld
feng@ubuntu:~/桌面$ echo -e  "hello\nworld"
hello		
world

十五、>和>> 输出重定向

基本语法

  1. ls -a  > 文件  (功能描述:列表的内容覆盖写入文件a.txt中)
  2. ls -al  >> 文件  (功能描述:列表的内容追加到文件aa.txt的末尾)
  3. cat 文件1 > 文件2 (功能描述:将文件1的内容覆盖到文件2)
  4. echo “内容” >> 文件

案例

将ls查看信息覆盖写入到文件中

feng@ubuntu:~/桌面$  ls -l>note.txt

将ls查看信息追加到文件中

feng@ubuntu:~/桌面$  ls -l>>note.txt

采用echo将hello单词追加到文件中

feng@ubuntu:~/桌面$  echo hello>>note.txt

十六、ln 软链接

软链接也成为符号链接,类似于windows里的快捷方式,有自己的数据块,主要存放了链接其他文件的路径。

ln: 创建软链接(Link

基本语法

ln -s [原文件或目录] [软链接名]  (功能描述:给原文件创建一个软链接)

经验技巧

删除软链接: rm 软链接名,或者:unlink 软链接名

查询:通过ll就可以查看,列表属性第1位是l,尾部会有位置指向。

案例

创建软连接

feng@ubuntu:~/桌面$  mv note.txt test/a/
feng@ubuntu:~/桌面$  ln -s test/a/note.txt ./
feng@ubuntu:~/桌面$  ln -s test/a ./
feng@ubuntu:~/桌面$  ll
lrwxrwxrwx  1 zxf zxf    6  7月 19 09:27 b -> test/b/
lrwxrwxrwx  1 zxf zxf   15  7月 19 09:14 note.txt -> test/a/note.txt

删除软连接

feng@ubuntu:~/桌面$  rm note.txt
feng@ubuntu:~/桌面$  rm a

注意:rm -rf a/  这样删是删不掉的 不能在软连接后面加 /

进入文件夹软连接的实际物理路径

feng@ubuntu:~/桌面$  ln -s test/a ./
feng@ubuntu:~/桌面$  cd -P a
feng@ubuntu:~/桌面/test/a$

十七、history 查看已经执行过历史命令

基本语法

history (功能描述:查看已经执行过历史命令)

案例

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

feng@ubuntu:~/桌面$ history

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐