【Linux操作系统】简学深悟启示录:Linux基本指令

102、栅极驱动芯片选型与设计 文章摘要 本文分享了栅极驱动芯片选型与设计的实战经验。通过一次因驱动芯片选型不当导致的炸管事故,作者总结了栅极驱动芯片选型的五个关键参数:峰值驱动电流、驱动电压范围、传播延迟匹配、欠压锁定和隔离等级。文章详细分析了自举电路设计中的常见陷阱,以及栅极电阻对开关特性的影响,并强调了PCB布局布线的重要性。最后,作者提供了七条实用建议,包括避免通用型驱动芯片、关注CMTI参数、使用插件电阻等。核心观点是:栅极驱动设计需要综合考虑参数匹配、电路布局和实际调试,示波器实测波形是验证设计的唯一标准。 阅读详情
AI摘要

该博客开启Linux操作系统全面学习,介绍了Xshell使用方法,包括创建普通用户等。重点讲解了常用指令,如ls、pwd、cd等,还提及指令的选项和使用场景。此外,介绍了查看大文本的指令,以及常用快捷键,帮助读者提高操作效率。

本篇将开启 Linux 操作系统的全面学习,默认使用的是 CentOS 操作系统,使用 Xshell 进行远程登录服务器进行操作测试

1.什么是操作系统?

在这里插入图片描述

这是一个计算机系统层次结构的示意图,运行的过程是从上往下实现的,操作系统其实本质也是一种软件,是一种基础软件,对下提供软硬件资源的管理,对上提供稳定、快速、安全的操作环境,给予应用软件功能的支撑,因此所有的软件最终都会转化为硬件行为,都要经过操作系统的管理

2.Xshell的使用

在这里插入图片描述

目前更新的最新的是Xshell8,可以直接下载家庭学校的免费版本,能够满足基本的 Linux 学习,再就是需要自己购买一台轻量级云服务器进行登录使用

[C:\~]$ ssh root@公网IP地址

首先初始状态下只有一个主用户,即 root,输入 ssh root@公网IP地址,然后会弹出窗口让你输入密码,公网 IP 和密码都能在你购买服务器的地方找到

[C:\~]$ 

Connecting to 公网IP:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.

WARNING! The remote SSH server rejected X11 forwarding request.
Last failed login: Tue Jun 17 21:39:20 CST 2025 from 公网IP on ssh:notty
There was 1 failed login attempt since the last successful login.
Last login: Tue Jun 17 21:21:28 2025 from 公网IP
	
	Welcome to Huawei Cloud Service

显示这一段说明就连接成功了,这个警告不用管,我使用的是华为云,可能会出现些许不兼容的情况,但是这不影响后续的学习,但是我们一般不使用主用户,root 操作记录混杂,出问题时难以定位责任;普通账户操作留痕,便于排查。所以一般创建普通用户来使用

[root@hcss-ecs-6aa4 ~]# adduser 用户名

adduser 用户名 用于增加普通用户

[root@hcss-ecs-6aa4 ~]# passwd 用户名
Changing password for user 用户名.
New password: 
Retype new password: 
passwd: all authentication tokens updated successfully.

passwd 用户名 设置刚创立的普通用户的密码,一般输入的时候密码不回显

然后可以输入 exit 退出 root 账户(其实也能用命令直接切换,后面会讲),切换用户名即可登录普通用户账号

🔥值得注意的是:

[root@hcss-ecs-6aa4 ~]# userdel -r 用户名

由于 root 用户权限比普通用户高,所以只有在 root 用户下才能通过 userdel -r 用户名 来删除普通用户

3.常用指令

Linux 通常都在后端运行,纯命令行能降低消耗,提高效率,因此一般不需要图形化界面,指令一般都会搭配选项使用

3.1 ls指令

在这里插入图片描述

ls 的作用是列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息

在 Linux 中,目录指的就是我们平常创建的文件夹,蓝色的是目录,白色的是文件

  • -a 列出目录下的所有文件,包括以 . 开头的隐含文件
  • -d 将目录象文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录
  • -i 输出文件的 i 节点的索引信息。 如 ls –ai 指定文件
  • -k 以 k 字节的形式表示文件的大小。ls –alk 指定文件
  • -l 列出文件的详细信息
  • -n 用数字的 UID、GID 代替名称(介绍 UID、GID)
  • -F 在每个文件名后附上一个字符以说明该文件的类型,* 表示可执行的普通文件;/ 表示目录;@ 表示符号链接;| 表示 FIFOs;= 表示套接字( sockets )(目录类型识别)
  • -r 对目录反向排序
  • -t 以时间排序
  • -s 在 l 文件名后输出该文件的大小(大小排序,如何找到目录下最大的文件)
  • -R 列出所有子目录下的文件(递归)
  • -1 一行只输出一个文件

🔥值得注意的是:

常用的是 -a、-l、-F、-d,其他一般不怎么用

[zzh_test@hcss-ecs-6aa4 ~]$ ll
total 4
drwxrwxr-x 3 zzh_test zzh_test 4096 Jun 18 19:14 dir1
-rw-rw-r-- 1 zzh_test zzh_test    0 Jun 17 23:23 text1

ls -l 可以缩写成 ll

第三行: 以 d 开头的表示目录
第四行: 以 - 开头的表示普通文件

3.2 pwd指令

[zzh_test@hcss-ecs-6aa4 ~]$ pwd
/home/zzh_test

pwd 的作用是显示当前所在的路径,没有搭配的选项

3.3 cd指令

Linux 任何一个目录下都有两个隐藏文件

  • .:表示当前路径
  • ..:表示上一级路径

这两个文件都是为了帮助定位文件位置,即相对路径,平常见到的路径一般是绝对路径

在这里插入图片描述

所有的文件都是从根目录 / 开始的

[zzh_test@hcss-ecs-6aa4 ~]$ ls
dir1  text1
[zzh_test@hcss-ecs-6aa4 ~]$ cd dir1
[zzh_test@hcss-ecs-6aa4 dir1]$ pwd
/home/zzh_test/dir1

改变工作目录,将当前工作目录改变到指定的目录下

  • cd ..:返回上级目录
  • cd /home/litao/linux/:绝对路径
  • cd ../day02/ :相对路径
  • cd ~ :进入用户家目录
  • cd - :返回最近访问目录

3.4 touch指令

[zzh_test@hcss-ecs-6aa4 ~]$ touch text2
[zzh_test@hcss-ecs-6aa4 ~]$ ls
dir1  text1  text2

touch 指令可更改文档或目录的相关属性,或者新建一个不存在的文件

  • -a 或 --time=atime 或 --time=access 或 --time=use 只更改存取时间
  • -c 或 --no-create 不建立任何文档
  • -d 使用指定的日期时间,而非现在的时间
  • -f 此参数将忽略不予处理,仅负责解决 BSD 版本 touch 指令的兼容性问题
  • -m 或 --time=mtime 或 --time=modify 只更改变动时间
  • -r 把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同
  • -t 使用指定的日期时间,而非现在的时间

3.5 mkdir指令

[zzh_test@hcss-ecs-6aa4 ~]$ mkdir -p dir1/dir2/dir3
[zzh_test@hcss-ecs-6aa4 ~]$ tree
.
├── dir1
│   └── dir2
│       └── dir3
├── text1
└── text2

3 directories, 2 files

mkdir 用于创建目录(文件夹)

🔥值得注意的是:

  • -p 一般用于递归式创建目录,普通创建就需要进入该级目录才能创建下一级目录,所以 -p 就方便了很多
  • tree 指令用于展示树形结构的目录文件的层级关系,使用 yum install -y tree 指令下载即可使用

3.6 rmdir指令 && rm指令

rmdir 只能用来删除空目录

  • -p 当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除
[zzh_test@hcss-ecs-6aa4 ~]$ tree
.
├── dir1
│   └── dir2
│       └── dir3
├── text1
└── text2

3 directories, 2 files
[zzh_test@hcss-ecs-6aa4 ~]$ rm -rfi dir1
rm: descend into directory ‘dir1’? y
rm: descend into directory ‘dir1/dir2’? y
rm: remove directory ‘dir1/dir2/dir3’? y
rm: remove directory ‘dir1/dir2’? y
rm: remove directory ‘dir1’? y
[zzh_test@hcss-ecs-6aa4 ~]$ tree
.
├── text1
└── text2

0 directories, 2 files

rmdir 还是太鸡肋了,所以更多使用 rm,能够删除文件或目录

  • -f 即使文件属性为只读(即写保护),亦直接强制删除
  • -i 删除前逐一询问确认
  • -r 删除目录及其下所有文件(递归删除)

3.7 man指令

[zzh_test@hcss-ecs-6aa4 ~]$ man man

man 指令用于查看指令手册,毕竟不可能记住所有的指令,man man 是查询 man 这条指令的意思

  • -k:根据关键字搜索联机帮助
  • num:man num printf 只在第 num 章节找,比如 printf 在第一章是一个命令,但是在第三章是一个函数,有可能你的系统没有安装相应手册文件,可执行 yum install man-pages,就能查找函数了
  • -a:将所有章节的都显示出来,比如 man printf 它缺省从第一章开始搜索,知道就停止,用 a 选项,当按下 q 退出,他会继续往后面搜索,直到所有章节都搜索完毕

在这里插入图片描述

3.8 cp指令

[zzh_test@hcss-ecs-6aa4 ~]$ ls
text1  text2
[zzh_test@hcss-ecs-6aa4 ~]$ cp text1 new_test
[zzh_test@hcss-ecs-6aa4 ~]$ ls
new_test  text1  text2

cp 指令的作用是将已存在的文件或目录,复制到新文件(若文件不存在会自行创建)或目录中

cp 源文件1 源文件2 源文件3... 目标目录/

同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息

  • -f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在
  • -i 或 --interactive 覆盖文件之前先询问用户
  • -r 递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理
  • -R 或 --recursive 递归处理,将指定目录下的文件及子目录一并处理

🔥值得注意的是: 同一目录下,不能出现同名文件

3.9 mv指令

[zzh_test@hcss-ecs-6aa4 dir1]$ mv a1 ../
[zzh_test@hcss-ecs-6aa4 dir1]$ mv a1 text1
[zzh_test@hcss-ecs-6aa4 dir1]$ mv a1 dir1
[zzh_test@hcss-ecs-6aa4 dir1]$ mv a1 ../text1
[zzh_test@hcss-ecs-6aa4 dir1]$ mv a1 ../dir1

mv 命令是 move 的缩写,可以用来 移动文件 或者 将文件改名

第一行: 表示将文件 a1 剪切到上级目录下
第二行: 表示将文件 a1 剪切到当前路径的文件 text1,即重命名
第三行: 表示将文件 a1 剪切到当前路径的目录 dir1
第四行: 表示将文件 a1 剪切到上级路径的文件 text1,即重命名
第五行: 表示将文件 a1 剪切到上级路径的目录 dir1

  • -f:force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
  • -i:若目标文件已经存在时,就会询问是否覆盖

3.10 cat指令

[zzh_test@hcss-ecs-6aa4 ~]$ tree
.
├── dir1
│   ├── dir2
│   │   └── dir3
│   └── new_test
├── my_dir
│   ├── a1
│   └── dir2
│       └── dir3
├── text1
└── text2

6 directories, 4 files
[zzh_test@hcss-ecs-6aa4 ~]$ cat dir1/new_test
hello world!

cat 的作用是查看文件内容

  • -b 对非空行输出行编号
  • -n 对输出的所有行编号
  • -s 不输出多行空行,即将多行空行压缩成一行空行输出

3.11 echo指令(重定向)

[zzh_test@hcss-ecs-6aa4 ~]$ ll
total 12
drwxrwxr-x 3 zzh_test zzh_test 4096 Jun 26 00:12 dir1
drwxrwxr-x 3 zzh_test zzh_test 4096 Jun 22 15:21 my_dir
-rw-rw-r-- 1 zzh_test zzh_test   44 Jun 29 20:41 text1
-rw-rw-r-- 1 zzh_test zzh_test    0 Jun 18 22:06 text2
[zzh_test@hcss-ecs-6aa4 ~]$ echo "Hello Linux" > text2
[zzh_test@hcss-ecs-6aa4 ~]$ cat text2
Hello Linux

在 Linux 中,一切的指令本质皆是可执行文件,指令也是在系统特定路径下存在的,本来正常情况下 echo 是向显示器打印出来给我们看的,但是加了 > 表示 输出重定向,即将本来打印到显示器的文本重定向到具体文件中(若文件不存在会自动创建)

默认情况下,echo 会在输出末尾自动加换行符;若要取消,在 Linux 中可用 echo -n "文本",例如 echo -n "Hi" 输出后不会换行

但是 > 在写入的时候是覆盖式写入,即先清空文件再写入,如果想要追加可以使用 >>,同样的,像 cat > text1 这样的,叫做 输入重定向,其实作用和 cat text1 没啥区别,他的区别在深入学习后会讲

通常能够打印信息到显示器的指令都能使用输出重定向,输入重定向同理

3.12 more指令

[zzh_test@hcss-ecs-6aa4 ~]$ more Text
hello Linux 1
hello Linux 2
hello Linux 3
hello Linux 4
hello Linux 5
hello Linux 6
hello Linux 7
hello Linux 8
hello Linux 9
......

当遇上大文本时,cat 的查看就不适合了,因为需要自行翻找内容特别麻烦,因此 cat 只适合查看小文本,这个时候就要使用 more 指令,查看的时候可以按 ENTER 键向下滚动翻找

  • /字符串:查找特定内容
  • q:退出 more

3.13 less指令

less 与 more 类似,但使用 less 可以使用⬆️⬇️随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件,只会加载你需要看的部分,加快了文件打开速度

  • -i:忽略搜索时的大小写
  • -N:查看的时候,输入再按 ENTER 会显示每行的行号
  • -n:隐藏输出的所有行编号
  • /字符串:向下搜索“字符串”的功能
  • ?字符串:向上搜索“字符串”的功能
  • q:退出 less
  • n:重复前一个搜索(与 / 或 ? 有关)
  • N:反向重复前一个搜索(与 / 或 ? 有关)

用 /hello 搜关键词 hello ,找到第 3 行的 hello
按 n → 继续往下(正向)找下一个 hello
按 N → 往回(反向)找之前的 hello

3.14 head指令

[zzh_test@hcss-ecs-6aa4 ~]$ head -5 Text
hello Linux 1
hello Linux 2
hello Linux 3
hello Linux 4
hello Linux 5

head 用于捕捉大文本的前面的内容,若没有指定行数,head 默认查看前十行

  • -n:显示的行数

3.15 tail指令

[zzh_test@hcss-ecs-6aa4 ~]$ tail -5 Text
hello Linux 996
hello Linux 997
hello Linux 998
hello Linux 999
hello Linux 1000

tail 用于捕捉大文本的结尾的内容,若没有指定行数,tail 默认查看后十行

  • -f:循环读取,执行后不会退出,而是持续监听文件变化,一旦文件有新内容添加(比如日志文件被写入新记录),会立即显示在屏幕上,直到手动按 Ctrl + C 终止
  • -n:显示行数

🔥值得注意的是:

有一个文件共有 1000 行内容,请取出第 500-510 行内容

  • 方法一
  1. head -510 Text 生成 1 到 510 的序列装入临时文件 tmp
  2. tail -11 tmp 取出结尾 500-510 行的内容
  • 方法二
[zzh_test@hcss-ecs-6aa4 ~]$ head -510 Text | tail -11
hello Linux 500
hello Linux 501
hello Linux 502
hello Linux 503
hello Linux 504
hello Linux 505
hello Linux 506
hello Linux 507
hello Linux 508
hello Linux 509
hello Linux 510

利用管道文件的方法,像流水线一样快速处理多个指令,| 作用是将前一个命令 head 的输出作为后一个命令 tail 的输入

3.16 date指令

[zzh_test@hcss-ecs-6aa4 ~]$ date +%Y-%m-%d_%H:%M:%S
2025-07-04_16:40:39

data 用于显示时间

  1. 在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中常用的标记列表如下
  • %H:小时(00..23)
  • %M:分钟(00..59)
  • %S:秒(00..61)
  • %X:相当于 %H:%M:%S
  • %d:日 (01..31)
  • %m:月份 (01..12)
  • %Y:完整年份 (0000..9999)
  • %F:相当于 %Y-%m-%d
  1. 在设定时间方面
  • date -s //设置当前时间,只有 root 权限才能设置,其他只能查看。
  • date -s 20080523 //设置成 20080523,这样会把具体时间设置成空 00:00:00
  • date -s 01:01:01 //设置具体时间,不会对日期做更改
  • date -s “01:01:01 2008-05-23″ //这样可以设置全部时间
  • date -s “01:01:01 20080523″ //这样可以设置全部时间
  • date -s “2008-05-23 01:01:01″ //这样可以设置全部时间
  • date -s “20080523 01:01:01″ //这样可以设置全部时间
  1. 时间戳

时间戳: 从 1970 年 1 月 1 日开始算的秒数,比如 2025 年 7 月 4 日对应的秒数是 1751500800

  • 时间->时间戳:date +%s
  • 时间戳->时间:date -d@1508749502
  • Unix 时间戳(英文为Unix epoch, Unix time, POSIX time 或 Unix timestamp)是从 1970 年1 月 1 日(UTC / GMT的午夜)开始所经过的秒数,不考虑闰秒

3.17 cal指令

[zzh_test@hcss-ecs-6aa4 ~]$ cal
      July 2025     
Su Mo Tu We Th Fr Sa
       1  2  3  4  5
 6  7  8  9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31

cal 命令可以用来显示公历(阳历)日历

  • -3:显示系统前一个月,当前月,下一个月的月历
  • -j:显示在当年中的第几天(一年日期按天算,从 1 月 1 号算起,默认显示当前月在一年中的天数)
  • -y:显示当前年份的日历,cal –y 2018

3.18 find指令

[zzh_test@hcss-ecs-6aa4 ~]$ tree
.
├── dir1
│   ├── dir2
│   │   └── dir3
│   └── new_test
├── my_dir
│   ├── a1
│   └── dir2
│       └── dir3
├── Text
├── text1
└── text2

6 directories, 5 files
[zzh_test@hcss-ecs-6aa4 ~]$ find dir1
dir1
dir1/new_test
dir1/dir2
dir1/dir2/dir3

find 可以在磁盘中进行指定文件的搜索,在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间(这里是指 30G 字节以上的文件系统)

🔥值得注意的是: 还有一些和find功能类似的指令

[zzh_test@hcss-ecs-6aa4 ~]$ which ls
alias ls='ls --color=auto'
	/usr/bin/ls

which通常用于搜索指令的路径

[zzh_test@hcss-ecs-6aa4 ~]$ whereis ls
ls: /usr/bin/ls /usr/share/man/man1p/ls.1p.gz /usr/share/man/man1/ls.1.gz

whereis 用于查找命令、源文件和手册页的位置

  • which 仅查找 $PATH 中的可执行文件;whereis 搜索范围更广,包括系统默认的多个目录,且能找到手册页、源码等
  • which 更侧重 “命令在哪里可以执行”,whereis 更侧重 “与目标相关的所有系统文件在哪里”

3.19 grep指令

[zzh_test@hcss-ecs-6aa4 ~]$ grep 99 Text
hello Linux 99
hello Linux 199
hello Linux 299
hello Linux 399
hello Linux 499
hello Linux 599
hello Linux 699
hello Linux 799
hello Linux 899
hello Linux 990
hello Linux 991
hello Linux 992
hello Linux 993
hello Linux 994
hello Linux 995
hello Linux 996
hello Linux 997
hello Linux 998
hello Linux 999

grep 指令是个行文本过滤工具,查找文件包含特定文本行的内容,并显示出来

  • -i:忽略大小写的不同,所以大小写视为相同
  • -n:顺便输出行号
  • -v:反向选择,亦即显示出没有 ‘搜寻字符串’ 内容的那一行

3.20 zip/unzip指令

[zzh_test@hcss-ecs-6aa4 ~]# zip Text.zip Text
  adding: Text (deflated 86%)
[zzh_test@hcss-ecs-6aa4 ~]# tree
.
├── dir1
│   ├── dir2
│   │   └── dir3
│   └── new_test
├── my_dir
│   ├── a1
│   └── dir2
│       └── dir3
├── Text
├── text1
├── text2
└── Text.zip

zip 命令用于压缩文件,若想要解压文件,可以输入 unzip Text.zip。由于服务器之间的差异,可能没有这两个指令,可以使用 yum install -y zip unzip 进行下载

  • -r 递归处理,将指定目录下的所有文件和子目录一并处理

3.21 tar指令

[zzh_test@hcss-ecs-6aa4 ~]# tar -czf code.tgz text2
[zzh_test@hcss-ecs-6aa4 ~]# ll
total 36
-rw-r--r-- 1 root     root       137 Jul  5 16:53 code.tgz
drwxrwxr-x 3 zzh_test zzh_test  4096 Jul  5 16:43 dir1
drwxrwxr-x 3 zzh_test zzh_test  4096 Jun 22 15:21 my_dir
-rw-rw-r-- 1 root     root     15893 Jun 29 22:16 Text
-rw-rw-r-- 1 zzh_test zzh_test    44 Jun 29 20:41 text1
-rw-rw-r-- 1 zzh_test zzh_test     7 Jul  4 18:07 text2
[zzh_test@hcss-ecs-6aa4 ~]# rm -rf text2
[zzh_test@hcss-ecs-6aa4 ~]# ll
total 32
-rw-r--r-- 1 root     root       137 Jul  5 16:53 code.tgz
drwxrwxr-x 3 zzh_test zzh_test  4096 Jul  5 16:43 dir1
drwxrwxr-x 3 zzh_test zzh_test  4096 Jun 22 15:21 my_dir
-rw-rw-r-- 1 root     root     15893 Jun 29 22:16 Text
-rw-rw-r-- 1 zzh_test zzh_test    44 Jun 29 20:41 text1
[zzh_test@hcss-ecs-6aa4 ~]# tar -tzf code.tgz
text2
[zzh_test@hcss-ecs-6aa4 ~]# tar -xzf code.tgz
[zzh_test@hcss-ecs-6aa4 ~]# ll
total 36
-rw-r--r-- 1 root     root       137 Jul  5 16:53 code.tgz
drwxrwxr-x 3 zzh_test zzh_test  4096 Jul  5 16:43 dir1
drwxrwxr-x 3 zzh_test zzh_test  4096 Jun 22 15:21 my_dir
-rw-rw-r-- 1 root     root     15893 Jun 29 22:16 Text
-rw-rw-r-- 1 zzh_test zzh_test    44 Jun 29 20:41 text1
-rw-rw-r-- 1 zzh_test zzh_test     7 Jul  4 18:07 text2

tar 是 Linux 环境里常用的压缩指令,比 zip 更实用,通常压缩为 tar.gz 格式(简写为 tgz ),tar 不能压缩为 zip,常用选项为 -czf(creat zip file 创建压缩文件),-tzf(查看压缩文件),-xzf(解压压缩文件)

  • -c:建立一个压缩文件的参数指令
  • -x:解开一个压缩文件的参数指令
  • -t:查看 tarfile 里面的文件
  • -z:是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?
  • -j:是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?
  • -v:压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!
  • -f:使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!
  • -C: 解压到指定目录

3.22 bc指令

[zzh_test@hcss-ecs-6aa4 ~]$ bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'. 
5 + 3 * 2
11
scale=3    # 设置小数位数为3
10 / 3 
3.333
quit       # 退出交互模式

直接使用bc指令进入交互模式进行计算

echo "sqrt(25)" | bc -l  # 计算平方根,输出 5.0000000000
echo "sin(3.14159/2)" | bc -l  # 计算正弦值(弧度),约等于 1.000000

也可以用 echo 传递表达式给 bc 在非交互模式下进行计算,-l 表示调用数学库进行计算

3.23 uname指令

[zzh_test@hcss-ecs-6aa4 ~]$ uname -r
3.10.0-1160.119.1.el7.x86_64
[zzh_test@hcss-ecs-6aa4 ~]$ uname -a
Linux hcss-ecs-6aa4 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux

uname -r 用来获取电脑和操作系统的相关信息,-a 或 –all 详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称

3.24 shutdown指令

关机指令

  • -h:将系统的服务停掉后,立即关机
  • -r:在将系统的服务停掉之后就重新启动
  • -t sec:-t 后面加秒数,即过几秒后关机的意思

4.常用快捷键

  • [Tab] 按键:具有命令补全和档案补齐的功能
  • [Ctrl]-c 按键:让当前的程序停掉
  • [Ctrl]-d 按键:通常代表着键盘输入结束(End Of File, EOF 戒 End OfInput)的意思;另外,他也可以用来取代 exit
  • [Ctrl]-r 按键:搜索历史命令,也可以用 history 指令查看,通常只保存最新的 1000 条指令

希望读者们多多三连支持

小编会继续更新

你们的鼓励就是我前进的动力!

在这里插入图片描述

科研问答:医药类本科生(临床、中医、中药与护理)本科阶段是否需要开展科研学习? 医药类本科生(临床、中医、中药与护理)本科阶段是否需要开展科研学习? 阅读详情

相关推荐

winget安装提示:执行此命令时发生意外错误: InternetOpenUrl() failed. 0x80072efd

当我们使用Winget包管理器安装应用,提示错误:执行此命令时发生意外错误: InternetOpenUrl() failed. 0x80072efd 该怎么处理呢?请听我娓娓道来。

Linux I Tell U 8138

【Linux操作系统】简学深悟启示录:进程控制

本文主要介绍了Linux进程管理的三个关键方面:进程终止、进程等待及相关系统调用。首先补充了进程创建时的写时拷贝机制,当子进程修改共享数据时系统会触发只读保护并分配新空间。其次详细讲解了进程退出的三种情况及查看方法,对比了exit和_exit函数的区别。重点阐述了进程等待的必要性,通过wait和waitpid函数回收子进程资源并获取退出状态,其中waitpid可解析子进程退出码和信号信息。文章通过代码示例展示了如何正确使用这些系统调用来处理进程终止和等待,避免僵尸进程的产生。

Zero_VPN的博客 2432

Petalinux实战:3种方法调试AXI UART Lite设备(含minicom/screen/直接寄存器操作对比)

本文详细介绍了在Zynq平台上使用Petalinux调试AXI UART Lite设备的三种实用方法:用户空间工具(minicom/screen)、应用层程序(termios配置)和底层寄存器直接操作。文章对比了各方法的优缺点与适用场景,并重点解析了设备树配置、驱动加载等关键环节,帮助开发者快速定位并解决串口通信中的常见问题。

weixin_29190169的博客 433

【Linux操作系统】简学深悟启示录:进程初步

在操作系统中,进程(Process) 是程序的一次动态执行过程,是系统进行资源分配和调度的基本单位。简单来说,当你运行一个程序(如打开浏览器、启动一个 Python 脚本),操作系统就会创建一个进程,并为其分配内存、CPU 时间等资源,使其能够执行

Zero_VPN的博客 1994

ElasticSearch集群搭建

docker安装es集群

weixin_46562226的博客 2026

【Milvus】实战指南:利用milvus-backup实现高效数据备份与恢复

本文详细介绍了如何利用官方工具milvus-backup为Milvus向量数据库实施高效的数据备份与恢复。文章从备份的必要性出发,逐步讲解了环境准备、配置要点、全量与按需备份操作,以及恢复数据的关键步骤和验证方法,旨在帮助用户构建可靠的数据安全防线,应对误操作或系统故障风险。

weixin_29217235的博客 131

【Linux操作系统】简学深悟启示录:文件fd

本文回顾了文件系统的基本概念和C语言文件操作接口。首先解释了文件的组成(内容+属性)和两种状态(打开/未打开),重点分析了打开文件与进程的关系。接着通过代码示例演示了fopen、fwrite等C文件函数的使用,以及如何修改默认文件路径。文章还介绍了标准输入输出流(stdin/stdout/stderr)及其文件描述符(0/1/2)。随后详细讲解了系统调用open和write函数的使用方法,包括flags参数的各种选项组合原理。最后深入探讨了文件描述符的本质,指出它是进程文件描述符表中的索引,并解释了FILE

Zero_VPN的博客 3808

WPS访问权限不足怎么解决??具体怎么操作?

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值。

**My Coding Family** 4171

【Linux操作系统】简学深悟启示录:Linux权限

Linux 权限是系统通过对文件 / 目录设置读(r)、写(w)、执行(x)权限,分别管控文件所有者、所属组及其他用户对其的访问操作,以保障系统安全

Zero_VPN的博客 2440

SAR图像降噪:基于小波变换和双边滤波器的Matlab实现

小波变换和双边滤波器是常用的图像降噪技术,它们可以在保持图像细节的同时有效抑制噪声。本文介绍了基于小波变换和双边滤波器的SAR图像降噪方法,并提供了相应的Matlab源代码。通过对比原始图像和降噪后的图像,可以观察到噪声得到一定程度的抑制,同时保留了图像的细节信息。本文将介绍一种基于小波变换和双边滤波器的方法,用于SAR图像的降噪,并提供相应的Matlab源代码。希望这篇文章能够帮助您理解基于小波变换和双边滤波器的SAR图像降噪方法,并为您提供实现该方法的Matlab源代码。对图像的高频部分进行降噪处理。

ScriptCharm的博客 840

「UG/NX」BlockUI 控件集合目录大纲

Block UI Styler 模块设计对话框是官方推荐使用的对话框制作方法,它能够与NX自身风格相统一,在实际开发中经常使用。文字内容包含:NX所有控件介绍的链接、内部控件调用的基础介绍、官方案例查看路径、控件的特殊用法篇链接、番外篇链接。

何曾参静谧的博客 2676

【Linux操作系统】简学深悟启示录:进程状态&&优先级

本文介绍了Linux系统中进程的主要状态及其转换机制,重点分析了7种进程状态:运行态(R)、阻塞态(S/D)、挂起态(T/t)、终止态(X)和僵尸态(Z)。其中深度睡眠态(D)是系统崩溃的预警信号,而僵尸进程(Z)会导致内存泄漏问题。文章还阐述了进程优先级(PRI/NI)的查看和修改方法,揭示了基于位图哈希表的调度机制,以及进程竞争性、独立性等特性。最后解释了并行与并发的区别,并强调了进程上下文数据在切换时的重要性。

Zero_VPN的博客 2537

ABAP Open SQL 数据拷贝导致 SAPSQL_DATA_LOSS:从报错机理到稳妥修复

数据类型与长度不合规。一旦在Open SQL的无损赋值检查里被发现,系统宁可中止也不会偷偷替你截断。把变量声明对齐到字典、在需要时明确表达转换/截断意图、写法上避免落入高危的操作数位置,再配合ATC的预防性检查,既能解决你这次的ST22Dump,也能把同类问题消灭在萌芽状态。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 429

【Linux操作系统】简学深悟启示录:信号

本文介绍了Linux系统中信号处理的基本概念和工作原理。 首先通过快递的比喻解释了信号处理的三个关键步骤:信号产生、信号保存和信号处理。进程能够识别和处理信号,可以选择默认处理、自定义处理或忽略信号。 文章详细区分了前台进程和后台进程,指出前台进程能接收用户输入而后台进程默默运行。介绍了通过signal函数自定义信号处理的方法。 讨论了信号的多种产生方式:键盘组合键、kill命令、系统调用(kill/raise/abort)、硬件异常和软件条件。其中重点分析了除零异常和管道读端关闭时触发的信号机制。 最后讲

Zero_VPN的博客 1332

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

【Linux操作系统】简学深悟启示录:重定向&&缓冲区

本文主要探讨了Linux系统中的文件重定向和缓冲区机制。在重定向部分,通过代码示例演示了文件描述符分配规则及dup/dup2函数实现原理,解释了输出重定向的本质。同时介绍了多文件重定向的操作方法,包括分离输出和合并输出到同一文件。 缓冲区部分通过三组实验对比分析:1)仅含换行符时缓冲区正常刷新;2)无换行符且关闭文件描述符时,C接口函数内容无法刷新;3)存在换行符且调用fork时,父子进程共享缓冲区导致重复输出。最后总结了三种缓冲区类型:无缓冲、行缓冲和全缓冲的特性及其应用场景。文章还从VFS层面对&quo

Zero_VPN的博客 4066

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

【Linux操作系统】简学深悟启示录:线程概念与控制

本文介绍了线程的基本概念和控制方法。线程作为轻量级进程,共享进程资源但拥有独立执行流,是操作系统的调度基本单位。文章详细讲解了线程与进程的区别,线程的创建、终止和等待操作,包括使用pthread_create创建线程、pthread_exit终止线程以及pthread_join等待线程回收资源。同时介绍了线程特有的ID、栈和寄存器等私有数据,以及共享的文件描述符等资源。通过对比用户态TID和内核态LWP,阐明了线程在用户态和内核态的不同表现形式。最后指出线程退出时返回值的内存管理注意事项,强调线程控制的关键

Zero_VPN的博客 2万+

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

【Linux操作系统】简学深悟启示录:进程间通信

本文主要介绍了进程地址空间和进程间通信的相关知识。第一部分补充了进程地址空间的内容,解释了程序加载到内存前的逻辑地址分布、动态库的加载机制以及CPU执行指令的流程。第二部分重点讲解了匿名管道的原理和应用,包括管道的创建、单向通信特性、实现代码以及管道的5种属性,最后展示了管道在进程池中的应用实例。文章通过示意图和代码示例,系统性地阐述了操作系统如何管理进程地址空间以及进程间通过管道通信的具体实现方式。

Zero_VPN的博客 1670

【Linux操作系统】简学深悟启示录:Linux环境基础开发工具使用

本文介绍了Linux系统下的三大核心工具:软件包管理器yum、编辑器vim和编译器gcc/g++。yum作为常用的软件包管理工具,能自动解决依赖关系,简化安装过程,文章详细说明了yum的安装、删除等基本操作。vim编辑器部分重点讲解了其三种主要模式(命令模式、插入模式和底行模式)的切换及常用操作命令,包括移动光标、复制粘贴、查找替换等技巧。gcc/g++编译器部分则系统阐述了程序的四个编译阶段:预处理、编译、汇编和链接,并给出了每个阶段的具体命令示例。这些工具是Linux系统下进行软件开发的基础

Zero_VPN的博客 2578

【Linux操作系统】简学深悟启示录:线程同步与互斥

本文展示了一个多线程抢票系统的实现,通过模拟5个线程并发访问共享变量tickets=1000,揭示了多线程环境下数据竞争的问题。文章详细分析了线程互斥的概念,包括临界资源、临界区和互斥锁的使用方法。通过引入pthread_mutex_t互斥锁机制,解决了数据混乱问题,保证了线程安全。同时探讨了互斥锁的原理,解释了CPU通过swap/exchange指令实现原子操作的过程,以及单核CPU环境下线程通过上下文切换实现逻辑隔离的机制。最后指出互斥锁虽然解决了数据竞争,但可能引发线程饥饿问题,需要合理设计锁的使用策

Zero_VPN的博客 1万+

【Linux操作系统】简学深悟启示录:动静态库

本文首先补充了文件系统的相关知识,包括内存与硬盘以4KB为单位交互数据的设计原理、系统通过页框数组管理内存的机制,以及文件读写过程中涉及的inode、dentry和address_space等关键数据结构。然后重点讲解了动静态库的创建和使用方法:通过具体示例演示了如何制作静态库(libmymath.a)和动态库(libmymethod.so),详细说明了编译命令中的-I、-L、-l等参数含义,并针对动态库使用时常见的加载问题提供了四种解决方案。文章通过代码示例和流程图相结合的方式,清晰地展现了文件系统管理和

Zero_VPN的博客 1663

【Linux操作系统】简学深悟启示录:Ext系列文件系统

本文深入探讨了文件系统的基本概念和磁盘存储结构。首先介绍了文件=内容+属性的核心思想,并详细解析了磁盘的物理结构(磁头、磁道、扇区)和逻辑结构(LBA寻址)。重点分析了ext2文件系统的组织方式,包括inode Table(存储文件属性)、Data blocks(存储文件内容)以及它们之间的映射关系。同时解释了目录文件的本质是文件名与inode的映射,以及文件增删查改的具体过程。文章还涉及Super Block、Group Descriptor Table等关键数据结构的作用,全面展示了操作系统

Zero_VPN的博客 2184

【Linux操作系统】简学深悟启示录:环境变量&&进程地址

本文主要介绍了Linux环境变量和进程地址空间的概念。环境变量包括PATH、HOME等系统预定义变量,可通过env命令查看或getenv()函数获取,具有全局性,子进程会继承父进程的环境变量。进程地址空间是虚拟地址而非物理地址,通过页表映射到物理内存,实现进程隔离和保护。地址空间包含代码区、数据区等划分,由mm_struct结构体管理。进程地址空间和页表的存在使进程管理和内存管理解耦,确保安全访问和资源隔离。

Zero_VPN的博客 2937

理解 Linux 动态库加载:LD_LIBRARY_PATH

flyfish

二分掌柜的 376

USB 技术系列 11 · USB Linux 驱动框架

本文系统解析Linux USB驱动框架,涵盖USB Core、HCD(xhci-hcd/dwc3)、类驱动(CDC/HID/Mass Storage)分层架构,详解usb_device_id匹配、probe/disconnect生命周期及Device Tree配置。结合RISC-V N300实战,揭示Host/Device双模式驱动开发核心逻辑,助力嵌入式BSP开发者掌握USB子系统全栈能力。

peter_pan_study的博客 257

Linux-iostat命令详解

Linux命令学习记录

m0xin的博客 126

Linux 服务器性能排查手册(2026):CPU、内存、磁盘IO、网络四大瓶颈定位

iptables 四表五链模型、firewalld zone 信任级别、云安全组与主机防火墙的关系与优先级,避坑改了防火墙把自己挡在服务器外面的翻车事故。

2502_91473995的博客 328
上一篇: 【前端基础】层叠宇宙的代码旅人:css(下)
下一篇: 【Linux操作系统】简学深悟启示录:Linux权限
澪贰
澪贰 优质创作者: C/C++技术领域 优质创作者: C/C++技术领域
博客等级 码龄2年 1万+粉丝 222原创
评论 54
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值