@


本文以 CentOS7.6 为例

1:运行级别

运行级别(Running Level),也可以称之为运行模式。

Linux系统有7个运行级别,用数字0~6表示:

运行级别 说明
0 系统停机状态。其实就是关机
1 单用户工作状态。为 root 权限,用于系统维护
2 多用户状态,没有 NFS(Network File Syetem)。即没有网络服务的多用户状态
3 完全的多用户状态,有 NFS。即有网络服务的多用户状态
4 被保留的模式。没有被使用的模式
5 X11控制台,完整的图形化界面模式。就是图形界面模式
6 系统正常关闭并重启状态。其实就是重启

切换运行级别

init 运行级别

init 指令需要超级管理员的权限,普通用户无法执行。

系统运行级别配置文件,存放在 /etc/inittab。

包括 centos7 在内的一些 Linux 发行版对配置文件进行了简化:

multi-user.target: analogous to runlevel 3

graphical.target: analogous to runlevel 5

To view current default target, run:
systemctl get-default To set a default target, run:
systemctl set-default TARGET.target

通过以上说明可以看出,multi-user.target 即运行级别3。graphical.target 即运行级别5。

查看当前运行级别

systemctl get-default

设置默认运行级别为3

systemctl set-default multi-user.target

设置默认运行级别为5

systemctl set-default graphical.target

注意:

不要将默认的运行级别设置成 1 和 6。

问题:

假设 root 密码忘记了,如何找回密码?

大致方法:

启动系统,进入开机界面,然后进入编辑界面,再进入单用户模式来找回密码。

具体操作之后再演示

2:帮助指令

Linux 有两个常用帮助指令:man(获得帮助信息)、help(获得 shell 内置命令的帮助信息)。

2.1:man

功能描述:获得帮助信息。(manual)

基本语法

man 命令或配置文件

示例:

# 查看 ls 命令的帮助信息
man ls

2.2:help

功能描述:获得 shell 内置命令的帮助信息。

基本语法

help 命令

示例:

# 查看 cd 命令的帮助信息
help cd

3:文件目录指令

在 linux 下,命令选项可以组合使用,且以 “ . ” 开头的文件是隐藏文件。

3.1:pwd

功能描述:显示当前工作目录的绝对路径。(print work directory)

基本语法

pwd

3.2:ls

功能描述:显示指定工作目录下的内容。(list directory contents)

基本语法

ls [选项] [dirName]

“ dirName ” 可为绝对路径或相对路径。

常用选项

参数 说明
-a 显示所有文件及目录,包括隐藏文件。
-l 以列表的方式显示信息。
-t 按照修改时间排序,最新的文件在最前面。
-lh 以便于阅读的方式显示当前目录中的文件和目录大小。(如果不使用此选项,大小显示为字节)

示例:

# 查看当前目录的所有文件并以列表形式列出
ls -al # 查看 root 目录的所有文件并以列表形式列出
ls -al /root

3.3:cd

功能描述:切换到指定目录。(change directory)

基本语法

cd [dirName]

“ dirName ” 可为绝对路径或相对路径。

示例:

# 回到自己的家目录
方式一、
cd
方式二、
cd ~ # 回到当前目录的上一级目录
cd ..

3.4:mkdir

功能描述:创建目录。(make directory)

基本语法

mkdir [选项] dirName

“ dirName ” 可为多级目录,可使用绝对路径或相对路径。

常用选项

参数 说明
-p 确保多级目录名称存在,不存在的就建一个。(创建多级目录必须使用)

示例:

# 在 /home/tom/ 目录下创建 test 目录
mkdir /home/tom/test # 在 /home/ 目录下创建 bob 目录,并在 bob 目录下创建 test 目录
mkdir -p /home/bob/test

3.5:rmdir

功能描述:删除空的目录。(remove directory)

基本语法

rmdir [选项] dirName

“ dirName ” 可为多级目录,可使用绝对路径或相对路径。

rmdir 删除的是空目录,如果目录下有内容则无法删除。

如果需要删除非空目录,需要使用 rm -rf dirName (谨慎使用)。

3.6:touch

功能描述:创建新文件,也可用于修改文件或者目录的时间属性。

基本语法

touch [选项] name

“ name ” 可为绝对路径或相对路径。

示例:

# 在当前目录创建 test.txt 文件
touch test.txt # 在 /home/ 目录下创建 test.txt 文件
touch /home/test.txt

3.7:cp

功能描述:主要用于复制文件或目录。(copy file)

基本语法

cp [选项] source dest

常用选项

“ source ” 为目录或文件,可使用绝对路径或相对路径。

“ dest ” 为目录,可使用绝对路径或相对路径。

参数 说明
-r 若 source 是一个目录文件,将复制该目录下所有的子目录和文件。(复制目录时必须使用)
-f 覆盖已经存在的目标文件而不给出提示。
-i 在覆盖目标文件之前给出提示,要求用户确认是否覆盖。

示例:

# 将 /home/bob/ 整个目录,拷贝到 /opt/
cp -r /home/bob /opt # 将当前目录 hello.txt 拷贝到 /home/bob/ 目录下
cp hello.txt /home/bob

3.8:rm

功能描述:用于删除一个文件或者目录。(remove)

基本语法

rm [选项] name

“ name ” 为目录或文件,可使用绝对路径或相对路径。

常用选项

参数 说明
-i 删除前逐一询问确认。
-f 强制删除不提示。
-r 将所有文件与目录递归删除。(删除目录时必须使用)

示例:

# 将 /home/ 目录下的 hello.txt 文件删除
rm -f /home/hello.txt # 删除 /home/ 目录下的 bob/ 目录
rm -rf /home/bob

3.9:mv

功能描述:将文件或目录移入其它位置,也可用于重命名文件或目录。(move file)

基本语法

mv [选项] source dest

“ source ”、“ dest ” 为文件或目录,可使用绝对路径或相对路径。

当 “ dest ” 为目录,且 “ source ”、“ dest ” 路径不同时,为移动到 “ dest ” 目录。

“ source ”、“ dest ” 均为文件,且路径相同,则为重命名。

“ source ”、“ dest ” 均为目录,且路径相同,则为重命名。

“ source ”、“ dest ” 均为文件,但路径不同,则为移动并重命名。

“ source ”、“ dest ” 均为目录,但路径不同,则为移动并重命名。

常用选项

参数 说明
-b 当 dest 存在时,在执行覆盖前,会为其创建一个备份。
-i 如果 source 与 dest 同名,会先询问是否覆盖 dest。
-f 如果 source 与 dest 同名,不会询问,直接覆盖 dest。

示例:

# 将 /home/ 目录下 cat.txt 文件重新命名为 pig.txt
mv /home/cat.txt /home/pig.txt # 将当前目录下 info 目录改名为 logs。注意,如果 logs 目录在当前目录下存在,则该条命令会将 info 目录放入 logs 目录中
mv info/ logs/ # 将 /home/ 目录下 cat.txt 文件移动到 /home/test/ 目录下并重新命名为 pig.txt
mv /home/cat.txt /home/test/pig.txt

3.10:ln

功能描述:为某一个文件或目录在另外一个位置建立一个同步的链接。(link files)

链接可分为两种:硬链接(hard link)与软链接(符号链接,symbolic link)。

无论硬链接还是软连接,都可以看成是一个文件。

硬链接的意思是一个文件可以有多个名称,存在于同一个目录。

以文件副本的形式存在,但不占用实际空间。

不允许给目录创建硬链接。

软链接的方式则是产生一个特殊的文件指向另一个文件或目录的位置。可以跨目录。

以路径的形式存在,类似于 windows 里的快捷方式。

可以对目录进行链接。

基本语法

ln [选项] source dest

“ source ” 为目录或文件,可使用绝对路径或相对路径。

“ dest ” 为链接名(可视为文件),可使用绝对路径或相对路径。

常用选项

参数 说明
-s 创建的是软链接

示例:

# 在 /home/ 目录下创建一个软连接 myroot,连接到 /root/ 目录
ln -s /root /home/myroot # 删除软连接 myroot
rm /home/myroot

4:查看指令

4.1:cat

功能描述:用于连接文件并打印到标准输出设备上。即查看文件内容。(concatenate)

基本语法

cat [选项] fileName

“ fileName ” 可为绝对路径或相对路径。

常用选项

参数 说明
-n 或 --number 由 1 开始对所有输出的行数编号。即显示行号。

cat 只能浏览文件,而不能修改文件。

为了浏览方便,一般会带上 “ | more ”。其中 “ | ” 为管道符号,“ more ” 命令与管道符号之后介绍。

示例:

# 查看 /etc/ 目录下的 profile 文件内容,并显示行号
cat -n /etc/profile # 为了浏览方便,也可以:
cat -n /etc/profile | more

4.2:more

功能描述:是一个基于 vi 编辑器的文本过滤器。类似于 cat,不过会以全屏幕按页的形式显示文件内容,更方便使用者逐页阅读。

基本语法

more [选项] fileName

“ fileName ” 可为绝对路径或相对路径。

操作说明

操作 说明
【space】(空格键) 向下滚动一页
【enter】(回车键) 向下滚动n行,需要定义。默认为1行
【q】 退出 more,不再显示文件内容
【ctrl】+【f】 向下滚动一页
【ctrl】+【b】 向上滚动一页
【=】 输出当前行的行号
【:】+【f】 输出文件名和当前行的行号

4.3:less

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

基本语法

less [选项] fileName

“ fileName ” 可为绝对路径或相对路径。

常用选项

参数 说明
-e 当文件显示结束后,自动离开 less。
-N 显示每行的行号

操作说明

操作 说明
【space】(空格键) 向下滚动一页
【pagedown】 向下滚动一页
【pageup】 向上滚动一页
/关键字 向下查找 “ 关键字 ”,按【n】向下查找,按【shift】+【n】向上查找
?关键字 向上查找 “ 关键字 ”,按【n】向上查找,按【shift】+【n】向下查找
【q】 退出 less,不再显示文件内容

4.4:head

功能描述:用于显示文件的开头部分内容,默认情况下显示文件的前 10 行内容。

基本语法

head [选项] fileName

“ fileName ” 可为绝对路径或相对路径。

常用选项

参数 说明
-n 数字 指定显示文件开头的前几行内容

4.5:tail

功能描述:用于显示文件的末尾部分内容,默认情况下显示文件的末 10 行内容。

基本语法

tail [选项] fileName

“ fileName ” 可为绝对路径或相对路径。

常用选项

参数 说明
-n 数字 指定显示文件最后的几行内容
-f 把文件最尾部的内容显示在屏幕上并不断刷新,只要文件更新就可以看到最新内容。

4.6:history、!

功能描述:查看已经执行过的历史命令,配合 “ ! ” 使用可以执行历史指令。默认显示所有历史命令。

基本语法

history [选项]

常用选项

参数 说明
数字 指定显示最近使用过几个指令。
-c 清空当前历史记录(只是清空缓存中的历史记录,伪删除)

history 查询的每条历史命令前带有编号,因此可用以下命令来执行历史命令。

执行指定历史编号的命令

!编号

示例:

# 显示最近使用过的 10 个指令。
history 10 # 执行历史编号为 23 的指令
!5 # 执行最后一次命令
!!

5:>、>>、管道符【|】

5.1:>

功能描述:将一条命令的输出结果重定向。重定向到文件时,覆盖文件原有内容。

基本语法

命令 > fileName

“ fileName ” 为绝对路径或相对路径。

如果文件不存在则会创建。

示例:

# 将 /home/ 目录下的文件列表覆盖写入到 /home/info.txt 中
ls -la /home > /home/info.txt

5.2:>>

功能描述:将一条命令的输出结果重定向。重定向到文件时,追加到文件末尾。

基本语法

命令 >> fileName

“ fileName ” 为绝对路径或相对路径。

如果文件不存在则会创建。

5.3:管道符【|】

功能描述:主要用于多重命令处理,前面命令的处理结果输出作为后面命令的输入。

一些命令可从标准输入中读取要处理的文本,即从标准输入中读取参数。(如 cat)

对于部分命令则不支持从标准输入中读取参数,只支持从命令行中读取参数。(如 rm)

一般情况下,处理文本的命令(如 cat、more 等)均支持管道符。

基本语法

命令 | 命令

示例:

# 查看 /etc/ 目录下的 profile 文件内容,并显示行号,按分页显示
cat -n /etc/profile | more # 对 hello.sh 文件进行排序、去重
cat hello.sh | sort | uniq

6:时间日期指令

6.1:date

功能描述:可以用来显示或设定系统的日期与时间。默认情况显示当前时间。

基本语法

date [选项]

常用选项

参数 说明
+'%Y' 显示当前年份
+'%m' 显示当前月份
+'%d' 显示当前号数
+'%Y-%m-%d %H:%M:%S' 显示年月日时分秒(-、:、空格 为自定义分割符,便于查看)
-s 字符串时间 根据字符串设置系统时间。

在显示方面,使用字符串表示,配合 “ %Y ” 等占位符可以设定显示的格式。

只显示一个参数时,可不加引号。

示例:

# 显示当前年份
date +%Y # 显示年月日时分秒
date +'%Y-%m-%d %H:%M:%S' # 设置系统当前时间为 2021-11-03 20:02:10
date -s '2021-11-03 20:02:10'

6.2:cal

功能描述:查看日历。默认显示当月日历。(calendar)

基本语法

cal [选项]

常用选项

参数 说明
年份 显示某一年的日历

示例:

# 显示当前日历
cal # 显示 2023 年日历
cal 2023

7:搜索查找指令

7.1:find

功能描述:用于在指定目录下查找文件和目录。从指定目录向下递归地遍历查找。

基本语法

find [dirName] [选项]

“ dirName ” 可为绝对路径或相对路径。

常用选项

参数 说明
-name 关键字 查找文件名称等于关键字的文件。(如果要使用通配符模糊匹配,要加引号)
-iname 关键字 与 -name 类似,但会忽略大小写。
-user 用户名 查找属于指定用户的所有文件。
-atime 数字 查找指定几天被读取过的文件。(数字前可带 +、- 号,“+” 代表几天前,“-” 代表几天内)
-amin 数字 查找指定几分钟被读取过的文件。(数字前可带 +、- 号,“+” 代表几分钟前,“-” 代表几分钟内)
-mtime 数字 查找指定几天被修改过的文件。(数字前可带 +、- 号,“+” 代表几天前,“-” 代表几天内)
-mmin 数字 查找指定几分钟被修改过的文件。(数字前可带 +、- 号,“+” 代表几分钟前,“-” 代表几分钟内)
-size 大小 查找指定大小的文件。(可带 +、- 号,“+” 代表大于,“-” 代表小于。需要带单位)

linux 下常用通配符:【*】

示例:

# 查找 /home/ 目录下的 hello.txt 文件
find /home -name hello.txt # 查找当前目录下的所有 txt 文件
find . -name '*.txt' # 查找10分钟内被修改过的文件
find . -mmin -10 # 查找一天前被读取过的文件
find . -atime +1 # 查找整个 linux 系统下大于 200M 的文件
find / -size +200M

7.2:locate

功能描述:用于查找符合条件的文档,可以快速定位文件路径。

locate 指令利用事先建立的 locate 数据库(包含系统中所有文件名称及路径),实现快速定位指定文件。

手动更新数据库:updatedb

Locate 指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,对于 locate 数据库,一般是系统自己维护,管理员也可以手动更新

基本语法

locate [选项] 关键字

“ 关键字 ” 可为绝对路径或相对路径。

常用选项

参数 说明
-i 或 --ignore-case 忽略大小写

示例:

# 快速定位 hello.txt 文件所在目录
locate hello.txt # 搜索 etc 目录下所有以 sh 开头的文件
locate /etc/sh

7.3:which

功能描述:会在环境变量$PATH设置的目录里查找符合条件的文件。可以查看某个指令在哪个目录下。

基本语法

which 关键字

示例:

# 查看 ls 指令在哪个目录
which ls

7.4:grep

功能描述:过滤查找,用于查找文件里符合条件的字符串或正则表达式。

基本语法

grep [选项] 关键字 name

“ 关键字 ” 使用通配符模糊匹配时要加引号

“ name ” 为目录或文件,可使用绝对路径或相对路径。使用通配符模糊匹配不需要加引号

常用选项

参数 说明
-n 显示匹配行及行号。
-i 忽略大小写进行匹配。
-r 递归查找子目录中的文件。
-v 反向查找。显示不包含关键字的信息。

可配合管道符【|】使用

示例:

# 在 /home/ 目录下的 hello.txt 文件中查找 "good" 所在行,并且显示行号
方式一、
grep -n 'good' /home/hello.txt
方式二、
cat /home/hello.txt | grep 'good' # 在当前目录下所有 txt 文件查找 "good" 所在行
grep -n good *.txt # 在 /home/ 目录下所有 txt 文件查找以 "good" 开头的内容所在行
grep -n 'good*' /home/*.txt # 对 hello.sh 文件进行排序去重以后找出包含 better 的行
cat hello.sh | sort | uniq | grep 'better'

8:打包压缩指令

8.1:gzip

功能描述:用于压缩文件,也可用于解压文件。默认为压缩文件。压缩后的文件后缀名为 “ .gz ”。

基本语法

gzip [选项] fileName

“ fileName ” 为绝对路径或相对路径。

常用选项

参数 说明
-d 或 --decompress 解开压缩文件。
-v 或 --verbose 显示指令执行过程(显示进度)。
-l 或 --list 列出压缩文件的相关信息。

示例:

# 将 /home/ 下的 hello.txt 文件进行压缩,并显示进度
gzip -v /home/hello.txt # 将 /home/ 下的 hello.txt.gz 文件进行解压缩,并显示进度
gzip -dv /home/hello.txt.gz

8.2:gunzip

功能描述:用于解压 “ .gz ” 文件。

事实上 gunzip 就是 gzip 的硬连接,因此不论是压缩或解压缩,都可通过 gzip 指令单独完成。

基本语法

gunzip [选项] fileName

“ fileName ” 为绝对路径或相对路径。

常用选项

参数 说明
-v 或 --verbose 显示指令执行过程(显示进度)。

示例:

# 将 /home/ 下的 hello.txt.gz 文件进行解压缩
gunzip /home/hello.txt.gz

8.3:zip

功能描述:用于压缩文件与目录。压缩后的文件后缀名为 “ .zip ”。

基本语法

zip [选项] zipName name

“ zipName ” 为 zip 文件,可使用绝对路径或相对路径。

“ name ” 可使用绝对路径或相对路径。

常用选项

参数 说明
-r 递归压缩,将指定目录下的所有文件和子目录一并压缩,即压缩目录。
-v 显示指令执行过程或版本信息。

示例:

# 将 /home/test/ 目录压缩成 my.zip 且存放在 /bob/Desktop/ 目录下
zip -r /bob/Desktop/my.zip /home/test

8.4:unzip

功能描述:用于解压 zip 文件。为 “ .zip ” 压缩文件的解压缩程序。

基本语法

unzip [选项] fileName

“ fileName ” 为绝对路径或相对路径。

常用选项

参数 说明
-d dirName 指定文件解压后所要存储的目录。“ dirName ” 可为绝对路径或相对路径

示例:

# 将 myhome.zip 解压到 /opt/tmp/ 目录下
unzip -d /opt/tmp /home/myhome.zip

8.5:tar

功能描述:用于备份文件,也可用于打包、压缩文件。打包后的文件后缀名为 “ .tar ”,打包并压缩后的文件后缀名为 “ .tar.gz ”。(tape archive)

基本语法

tar [选项1] source [选项2]

“ source ” 为目录或文件,可使用绝对路径或相对路径。

常用选项1

参数 说明
-c 打包(生成 tar 文件)。
-x 还原文件(解压缩与解包)。
-z 通过 gzip 指令处理打包文件。
-v 显示指令执行过程详细信息。
-f [tName] 指定备份文件,用来压缩文件命名或指定解压文件。(tName可为绝对路径或相对路径。)

常用选项2

参数 说明
-C dirName 解压到指定的目录下。(dirName可为绝对路径或相对路径。)

示例:

# 将 /home/ 目录下的 pig.txt 和 cat.txt 压缩成 test.tar.gz,保存在 /root/Desktop/ 目录下
tar -czvf /root/Desktop/test.tar.gz /home/pig.txt /home/cat.txt # 将 /home/ 文件夹压缩成 myhome.tar.gz
tar -czvf myhome.tar.gz /home/ # 将 myhome.tar.gz 解压到当前目录
tar -xzvf myhome.tar.gz # 将 /root/Desktop/ 目录下的 test.tar.gz 文件解压到 /home/tom/ 目录下
tar -xzvf /root/Desktop/test.tar.gz -C /home/tom/ # 将 pig.txt 和 cat.txt 打包为 PC.tar (不压缩)
tar -cvf PC.tar pig.txt cat.txt # 将 PC.tar 文件解包
tar -xvf PC.tar

白日登山望烽火,黄昏饮马傍交河。

——《古从军行》(唐)李颀

《Linux基础》03. 运行级别 · 实用指令的更多相关文章

  1. Linux入门:运行级别解析

    Linux入门:运行级别解析   一.查看当前运行级别 Ubuntu中,runlevel命令 可以查看当前运行级别: CentOS中,who -r 命令查看当前运行级别:   www.2cto.com ...

  2. Linux:检查当前运行级别的五种方法

    运行级就是Linux操作系统当前正在运行的功能级别.存在七个运行级别,编号从0到6.系统可以引导到任何给定的运行级别.运行级别由数字标识. 每个运行级别指定不同的系统配置,并允许访问不同的进程组合.默 ...

  3. 【基础】Linux系统的运行级别

    1.系统运行级别的配置文件 什么是运行级呢?简单的说,运行级就是操作系统当前正在运行的功能级别. 它让一些程序在一个级别启动,而另外一个级别的时候不启动. Linux系统的有效登录模式有0~9共十种, ...

  4. Linux服务和运行级别科普

    在Linux中,列出所有的系统服务 chkconfig --list 输入以上命令可以看到类似以下的结果 sysstat :关闭 :关闭 :启用 :启用 :关闭 :启用 :关闭 tcsd :关闭 :关 ...

  5. 查看linux系统的运行级别

    查看当前系统的运行级别[root@apenglinux ~]# runlevel3 5查看系统的默认级别[root@apenglinux ~]# systemctl get-defaultgraphi ...

  6. Linux - 7种运行级别

    目录:etc/rc.d/init.d 1. linux开机过程 2. 运行级别(0-6) 存储位置 etc/inittab,开机加载,也可以用命令init [数字]切换. # 0 - 停机(默认时为0 ...

  7. Linux 系统默认运行级别设定

    #vi /etc/inittab,将 id:5:initdefault: 改为 id:3:initdefault: Linux 系统任何时候都运行在一个指定的运行级上,并且不同的运行级的程序和服务都不 ...

  8. Linux 系统的运行级别(runlevel)

    Linux 系统有 7 个运行级别,Linux 系统任何时候都运行在一个指定的运行级别上,不同的运行级别所运行的程序和服务不尽相同,所要完成的工作和要达到的目的也不相同 · 运行级别 0 系统停机(h ...

  9. linux的七大运行级别及级别修改

    运行级别     级别说明 0           所有进程将被终止,机器将有序的停止,关机时系统处于这个运行级别 1           单用户模式,用于系统维护,只有少数进程运行,同时所有服务也不 ...

  10. Linux 的系统运行级别

    运行级别          说明 0          系统关机状态 1 单用户工作状态,用于root对系统进行维护,此时不予许其他用户使用主机.(类似于windows 的安全模式) 2       ...

随机推荐

  1. DataGridViewImageColumn 图片照片

    Private Sub BT_PHOTOADDRESS_Click(sender As Object, e As EventArgs) Handles BT_PHOTOADDRESS.Click Di ...

  2. 原来.NET写的Linux桌面这么好看?

    如何使用Blazor在Linux平台下运行Desktop程序 本文将讲解如何使用Blazor运行跨平台应用,应用到的技术有以下几点 Blazor Masa Blazor Photino.Blazor ...

  3. 02-初识Verilog

    1.开发环境搭建 需要使用的软件: QuartusII ModelSim Visio Notepad++ 2.初识Verilog 2.1 Verilog HDL简介 Verilog HDL是一种硬件描 ...

  4. SQL注入原理及利用方式

    前言 在Web表单递交或输入域名或页面请求的查询字符串,通过后端语言连接数据库并查询数据,攻击者可利用此漏洞拼接恶意语句获取大量数据. SQL注入漏洞 在表单页面或者存在参数传递的地方可能存在SQL注 ...

  5. C++面试八股文:如何在堆上和栈上分配一块内存?

    某日二师兄参加XXX科技公司的C++工程师开发岗位6面: 面试官: 如何在堆上申请一块内存? 二师兄:常用的方法有malloc,new等. 面试官:两者有什么区别? 二师兄:malloc是向操作系统申 ...

  6. Jmeter压测实战:Jmeter二次开发之自定义函数

    1 前言 Jmeter是Apache基金会下的一款应用场景非常广的压力测试工具,具备轻量.高扩展性.分布式等特性.Jmeter已支持实现随机数.计数器.时间戳.大小写转换.属性校验等多种函数,方便使用 ...

  7. 你一定要用这个API管理工具,看完你就知道为什么了

    以下是经常发生在程序员之间的对话: 小张:你知道为什么程序员不喜欢写文档? 小王:因为代码就是最好的文档啊!谁还需要写那些冗长的说明呢? 小张:那你知道为什么程序员也不喜欢别人不写文档吗? 小王:当然 ...

  8. GGTalk 开源即时通讯系统源码剖析之:服务端全局缓存

    继上篇<GGTalk 开源即时通讯系统源码剖析之:数据库设计>介绍了 GGTalk 数据库中所有表的结构后,接下来我们将进入GGTalk服务端的核心部分. GGTalk 对需要频繁查询数据 ...

  9. 最近很火的开源培训系统,支持免费商用,3个月1000star!

    项目简介 PlayEdu 开源培训系统自发布以来,3个月内帮助上千位开发者部署了私有化培训平台,并在 Github 上获得了1000star. 项目地址 Github 地址:https://githu ...

  10. VSCode 编辑器的基本配置

    VSCode 编辑器的基本配置 在正式开始本文的内容之前,请允许我先做一些自我介绍: 严格来说,我是个自由职业者,经常会参与一些计算机专著的写作与翻译工作(主要作品如下图所示),业余偶尔也会有一些机会 ...