看完这篇Linux入门,你就入门了!

简介: 看完这篇Linux入门,你就入门了!

在实际生产工作中,我们一般以Linux系统作为服务器操作系统,至于为何不用其它系统,这里我们不做讨论。本篇在于对小团队leader所需掌握的一些Linux知识介绍。

之前的文章中我们有部分操作已经是在Linux上完成,现在我们对Linux的使用做一个入门级别的介绍。

Linux的版本

刚接触Linux的同学会对linux比较懵逼,这么多版本该如何选择和有什么区别。
我们需要注意的是Linux作者李纳斯开源的Linux是一个操作系统内核,即只提供了一些基础功能的系统软件。

为了提升它的易用性和扩展功能,各大开发者和企业对其进行二次开发并进行迭代维护,于是就出现了各种版本,但在大多数版本对比功能和性能上,它们的差别不会太大。我们介绍下最常见的几个版本。

  • Red Hat 俗称红帽,最常见也是比较成熟的linux版本,由同名公司Red Hat开发。对硬件兼容性不错。
  • Debian 社区维护版本的典型代表,文档齐全,比较自由。
  • Ubuntu 基于Debian发展而来,其桌面版界面很简洁优雅,比较友好。
  • Centos 红帽企业版RHEL(Red Hat Enterprise Linux)源代码再编译的产物,所以也比较可靠。

在选择上,不必过于纠结,当你决定使用免费的Linux系统时,选择主流的稳定版本不会错,并且最好是你喜欢和熟悉的。比较推荐Centos和Debian。

你可以通过以下命令查看当前系统内核和发行版:

uname -a
Linux iZbp106v9cy80x0lhprg0rZ 4.18.0-305.3.1.el8.x86_64 #1 SMP Tue Jun 1 16:14:33 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
lsb_release -a
LSB Version:    :core-4.1-amd64:core-4.1-noarch
Distributor ID: CentOS
Description:    CentOS Linux release 8.4.2105
Release:        8.4.2105
Codename:       n/a

远程连接

我们通常通过ssh协议连接linux服务器(ssh默认端口是22,所以要确保22端口是可用和开放的)你可以通过Putty、SecureCRT、MobaXterm等工具方便地进行服务连接配置和管理。当然ssh并不是连接linux的唯一的方式。

image.png

也可以在某个支持ssh的终端使用命令连接:

ssh user@ip

按回车输入密码,再次回车即可。
其中,user是用户名,ip是远程服务器ip(实际使用中通常是公网ip)。

image.png

用户权限管理

在linux中,有用户和用户组概念,他们可以是多对多的关系。

新建用户组

groupadd 选项 用户组

选项有:

  • -g GID 指定新用户组的组标识号(GID)。
  • -o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。

示例:

# 新建了一个叫做test的用户组
groupadd test

修改用户组

groupmod 选项 用户组

常用的选项有:

  • -g GID 为用户组指定新的组标识号。
  • -o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。
  • -n 新用户组 将用户组的名字改为新名字

示例:

# 将test用户组重命名为test2
groupmod -n test2 test

删除用户组

groupdel 用户组

新增用户

useradd 选项 用户名
  • -c comment 指定一段注释性描述。
  • -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
  • -g 用户组 指定用户所属的用户组。
  • -G 用户组,用户组 指定用户所属的附加组。
  • -s Shell文件 指定用户的登录Shell。
  • -u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。

示例:

useradd -g test –d /home/lin -m lin

此命令创建了一个用户lin,其中-d和-m选项用来为登录名lin产生一个主目录 /home/lin。

修改账号

usermod 选项 用户名

选项基本与useradd一致。

示例:

usermod -d /home/test lin

修改用户lin的主目录为/home/test。

删除账号

userdel 选项 用户名

常用的选项是 -r,它的作用是把用户的主目录一起删除。

示例:

userdel -r lin

用户口令管理

刚创建的用户必须在设置口令后才可以使用,用户账号可使用后也可以自己修改口令:

passwd 选项 用户名

选项:

  • -l 锁定口令,即禁用账号。
  • -u 口令解锁。
  • -d 使账号无口令。
  • -f 强迫用户下次登录时修改口令。

示例:

# 用户自行修改口令
passwd

# 超级用户修改口令需指定用户
passwd lin

文件操作

大致介绍命令:

  • ls(英文全拼:list files): 列出目录及文件名
  • cd(英文全拼:change directory):切换目录
  • pwd(英文全拼:print work directory):显示目前的目录
  • mkdir(英文全拼:make directory):创建一个新的目录
  • rmdir(英文全拼:remove directory):删除一个空的目录
  • cp(英文全拼:copy file): 复制文件或目录
  • rm(英文全拼:remove): 删除文件或目录
  • mv(英文全拼:move file): 移动文件与目录,或修改文件与目录的名称

ls:列出目录及文件

ls 选项 目录名称

选项与参数:

  • -a :全部的文件,连同隐藏文件( 开头为 . 的文件) 一起列出来(常用)
  • -d :仅列出目录本身,而不是列出目录内的文件数据(常用)
  • -l :长数据串列出,包含文件的属性与权限等等数据;(常用)

示例:

#将目录下的所有文件列出来(含属性与隐藏档),不写目录则是当前目录
ls -al

#此时等同于命令ll(若有)
ls -l
ll

cd:切换到某个目录

需要注意的是,linux有文件、目录名称补全功能,在输入命令时按下 Tab键即可。

示例:

#相对路径
cd www

#绝对路径
cd /root/

pwd:显示当前所在目录

选项与参数:

  • -P :显示出确实的路径,而非使用链接 (link) 路径。

示例:

pwd

mkdir:创建目录

mkdir [-mp] 目录名称

选项与参数:

  • -m :配置文件的权限喔!直接配置,不需要看默认权限 (umask) 的脸色~
  • -p :帮助你直接将所需要的目录(包含上一级目录)递归创建起来!

示例:

#在当前目录创建test目录
mkdir test

#在当前目录创建test、test2、test3,且他们是父子关系
mkdir -p test/test2/test3

rmdir:删除空目录

 rmdir [-p] 目录名称

选项与参数:

  • -p 从该目录起,一次删除多级空目录

删除test目录

rmdir test/

cp:复制文件或目录

cp 选项 来源档(source) 目标档(destination)

选项与参数:

  • -a: 相当于 -pdr 的意思,-pdr 请参考下列说明;(常用)
  • -d: 若来源档为链接档的属性(link file),则复制链接档属性而非文件本身;
  • -f: 为强制(force)的意思,若目标文件已经存在且无法开启,则移除后再尝试一次;
  • -i: 若目标档(destination)已经存在时,在覆盖时会先询问动作的进行(常用)
  • -l: 进行硬式链接(hard link)的链接档创建,而非复制文件本身;
  • -p: 连同文件的属性一起复制过去,而非使用默认属性(备份常用);
  • -r: 递归持续复制,用於目录的复制行为;(常用)
  • -s: 复制成为符号链接档 (symbolic link),亦即『捷径』文件;
  • -u: 若 destination 比 source 旧才升级 destination !

示例:

#复制~/.bashrc到/tmp/bashrc目录下
cp ~/.bashrc /tmp/bashrc

rm:删除文件或目录

这就是删库跑路梗里面经常用到的命令。

在使用这个命令时一定要三思而后行!这造成很多血泪史。删除文件后是不可逆的。特别是带着-r或-f参数!

rm [-fir] 文件或目录

选项与参数:

  • -f :就是 force 的意思,忽略不存在的文件,不会出现警告信息;
  • -i :互动模式,在删除前会询问使用者是否确认
  • -r :递归删除啊!最常用在目录的删除了!这是非常危险的选项!
# 删除test.txt文件
rm test.txt

# 删除目录时,需带上-r
rm -r test

mv:移动文件与目录,或修改名称

mv [-fiu] source destination

# 操作多个文件
mv [options] source1 source2 source3 .... directory

选项与参数:

  • -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
  • -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
  • -u :若目标文件已经存在,且 source 比较新,才会升级 (update)

复制一文件,创建一目录,将文件移动到目录中

[root@www ~]# cd /tmp
[root@www tmp]# cp ~/.bashrc bashrc
[root@www tmp]# mkdir mvtest
[root@www tmp]# mv bashrc mvtest

将刚刚的目录名称更名为 mvtest2

[root@www tmp]# mv mvtest mvtest2

我们接着上一篇介绍的Linux入门内容,介绍其它一些基础操作。

文件查看

cat:从首行显示文件内容

cat [-AbEnTv]

选项与参数:

  • -A :相当於 -vET 的整合选项,可列出一些特殊字符而不是空白而已;
  • -b :列出行号,仅针对非空白行做行号显示,空白行不标行号!
  • -E :将结尾的断行字节 $ 显示出来;
  • -n :列印出行号,连同空白行也会有行号,与 -b 的选项不同;
  • -T :将 [tab] 按键以 ^I 显示出来;
  • -v :列出一些看不出来的特殊字符

示例:

# 查看test.txt的文件内容
cat /home/test.txt

tac:文件内容从最后一行开始显示

tac会从最后一行开始,倒着显示文件内容
示例:

# 倒行查看test.txt的文件内容
tac /home/test.txt

nl: 带着行号显示文件内容

nl [-bnw] 文件

选项与参数:

  • -b :指定行号指定的方式,主要有两种:
    -b a :表示不论是否为空行,也同样列出行号(类似 cat -n);
    -b t :如果有空行,空的那一行不要列出行号(默认值);
  • -n :列出行号表示的方法,主要有三种:
    -n ln :行号在荧幕的最左方显示;
    -n rn :行号在自己栏位的最右方显示,且不加 0 ;
    -n rz :行号在自己栏位的最右方显示,且加 0 ;
  • -w :行号栏位的占用的位数。
nl test.txt

more:可翻页查看文件内容

在 more 这个程序的运行过程中,你有几个按键可以按的:

  • 空白键 (space):代表向下翻一页;
  • Enter         :代表向下翻『一行』;
  • /字串         :代表在这个显示的内容当中,向下搜寻『字串』这个关键字;
  • :f            :立刻显示出档名以及目前显示的行数;
  • q             :代表立刻离开 more ,不再显示该文件内容。
  • b 或 [ctrl]-b :代表往回翻页,不过这动作只对文件有用,对管线无用。

示例:

# 如果文件内容足够长,你可以尝试按enter键查看下一行
more test.txt

less:与more类似,更接近vi编辑器操作

可以理解为只读模式下的vi编辑器,功能与more很像。
less运行时可以输入的命令有:

  • 空白键    :向下翻动一页;
  • [pagedown]:向下翻动一页;
  • [pageup]  :向上翻动一页;
  • /字串     :向下搜寻『字串』的功能;
  • ?字串     :向上搜寻『字串』的功能;
  • n         :重复前一个搜寻 (与 / 或 ? 有关!)
  • N         :反向的重复前一个搜寻 (与 / 或 ? 有关!)
  • q         :离开 less 这个程序;
# 如果文件内容足够长,你可以尝试按上下方向键查看上下行
less test.txt

head:显示前n行文件内容

head [-n number] 文件 

选项与参数:

  • -n :后面接数字,代表显示几行的意思
# 默认显示10行
head test.txt

# -n指定显示行数
head -n 20 test.txt

tail:显示后n行文件内容,可实时读取

在查看类似日志等文件时,我们经常用到tail,因为它的-f参数可以实时显示后面写入的文件内容。

tail [-n number] 文件 

选项与参数:

  • -n :后面接数字,代表显示几行的意思
  • -f :表示持续侦测后面所接的档名,要等到按下[ctrl]-c才会结束tail的侦测
# 显示最后10行
tail test.txt

# 监听文件写入内容
tail -f nginx.log

文件权限

权限描述

当我们输入ls -lll命令时,会显示当前文件下的文件及其权限情况等信息

[root@iZbp106v9cy80x0lhprg0rZ ~]# ls -l
total 508
drwxr-xr-x 11 www  users   8192 Nov 28 18:06 htop-2.0.2
-rw-r--r--  1 root root  476364 Nov 28 18:05 htop-2.0.2.tar.gz
-rw-r--r--  1 root root   24567 Aug 18  2021 install.sh
-rw-r--r--  1 root root    2197 Jan  9 16:14 test.txt
drwxr-xr-x  3 root root      18 Aug 20  2021 www

上面最左侧的信息即为权限信息,其描述的信息。权限描述信息有十位,第一位如果是d说明是文件夹,-则表示是文件;后面三组rwx分别代表用户、用户组、其他的读、写、执行权限,-代表没有该权限。

image.png

  • 第2到4个字符表示此文件所有者对此文件的权限
  • 第5到7个字符表示此文件所属于的组里面的账户对此文件的权限
  • 第8到10个字符表示除了上面两类型的其他用户对此文件的权限

其中

  • (read):可读,文件可以被查看。
  • w(write): 可写,文件可以被修改,删除。
  • x(execute):可执行,如果文件是脚本活程序,可以被执行。
  • - :无以上权限

比如:

-rw-r----- 1 root   tomcat 57092 Dec  8 00:46 LICENSE

上面的语句表明,LICENSE 是一个文件,其可以被其所有者读写,但不能执行。其仅仅可以被所属的组的用户查看,对于其他用户无权查看、修改、执行此文件。

chmod:修改文件权限

chmod [u|g|o|a] [=|+|-] [r|w|x] file
  • u|g|o|a: u代表用户user,g代表用户组group,o代表其他other,a代表all
  • =|+|-: =表示直接给权限,+/-表示在原来权限的基础上加减权限
  • r|w|x: r表示读权限,w表示写权限,x表示可执行权限
  • file: 文件名

示例:

# 给文件所属于的组(root组)加上写权限
chmod g+w test.txt

chmod的参数还有一种数字描述形式:

chmod [user_num|group_num|other_num] file

第一位数字描述拥有者权限,第二个数字是描述用户组,第三位数字是描述其它用户权限,三个数字都是由读写、执行权限的值相加而来。
我们先定读、写、执行的值为:

  • r = 4
  • w = 2
  • x = 1

比如希望用户权限为可读可写可执行,用户组和其他只能读和执行,那么可以用755代表权限。因为

7 = 4(r)+2(w)+1(x)
5 = 4(r)+1(x)

按照上面的描述,这些数字相加后可能的值有0、1、2、4、3、5、6、7,其中0代表无权限

# 拥有者权限(7代表所有权限),用户组/其它用户(5代表可读、可执行)
chmod 755 test.txt

# 又比如比较粗暴的做法: 让所有用户获得所有权限
chmod 777 test.txt

文件查找

find:在指定目录根据文件信息查找

这是查找文件最强大、也是比较常用的命令,输出结果是列出符合条件的文件列表。可以根据文件的命名、大小、修改时间、类型、权限等信息查找。

find 搜索路径 [选项] 搜索内容

find的选项特别多,这里不一一列举,我们从查找场景去介绍它的使用会更好,更多参数如有需要可自行去查找资料,或者直接

根据文件命名查找

# 在/root目录查找名叫"test.txt"的文件,注意按实际需求限制查找路径范围越小越好,不然查找会慢
find /root -name test.txt

# 在当前目录查找名叫"test.txt"的文件,忽略文件名大小写
find . -iname test.txt

# 在当前目录查找结尾是".txt"的文件
find . -name *.txt

根据文件大小查找

示例:

# 在当前目录下搜索文件大小为100k的文件
find . -size 100k

# 在当前目录下搜索文件大小大于100M的文件。
find . -size +100M

根据文件修改时间查找

我们需要注意几个选项:

  • -atime[+|-]时间:按照文件访问时间搜索
  • -mtime[+|-]时间:按照文件数据修改时间搜索
  • -ctime[+|-]时间:按照文件状态修改时间搜索

以-mtime说明

  • -mtime n:n为数字,意思是在n天之前的【一天之内】被更改过内容的文件;
  • -mtime +n:列出在n天之前(不含n天本身)被更改过内容的文档名;
  • -mtime -n: 列出在n天之内(含n天本身)被更改过内容的文档名;

示例:

# 在当前目录查找内容修改发生在2天之内的文件
find . -mtime -2  

根据文件类型查找

注意选项:

  • -type d:查找目录
  • -type f:查找普通文件
  • -type l:查找软链接文件
# 查找当前文件中的目录
find . -type d

根据文件权限查找

  • -perm: 权限模式:查找文件权限刚好等于“权限模式”的文件
  • -perm: -权限模式:查找文件权限全部包含“权限模式”的文件
  • -perm: +权限模式:查找文件权限包含“权限模式”的任意一个权限的文件

上面我们介绍过文件权限数字描述的含义,这里也用到这些数字:

# 查找权限权限等于755的文件
find . -perm 755

组合查找

会用到逻辑符选项:

  • -a: and逻辑与
  • -o: or逻辑或
  • -not: not 逻辑非

示例:

# 在当前目录下搜索大于2KB,并且文件类型是普通文件的文件
find . -size +2k -a -type f

# 在当前目录下搜索名字叫做test.txt或test.json的文件
find . -name test.txt -o -name test.json

# 在当前目录下查找名字不叫test.txt的文件
find . -not -name test.txt

对查找结果进行操作

# 对查找结果执行 -exec 后面的命令
find 搜索路径 [选项] 搜索内容 -exec 命令 {} \;

# 需确认后对查找结果执行 -ok 后面的命令
find 搜索路径 [选项] 搜索内容 -ok 命令 {} \;

示例:

# 查找当前目录下文件名以.log结尾且24小时内更改过的文件,并进行安全删除操作(即删除前会进行询问)
find -name "*.log" -type f -mtime -1 -ok rm {} \;

grep: 根据文件内容查找

在实际使用中,我们经常管道符配合使用,即在某些命令输出结果后使用grep过滤内容,比如:

# 查看包含"java"字符的进程
ps -ef | grep java

grep的命令格式:

grep [OPTIONS] PATTERN [FILE...]

grep的参数也比较多,但使用不复杂,这里不一一列举,举些例子:

# /etc/nginx.conf中查找包含'8080'的内容
grep "8080" /etc/nginx.conf

# 在多个文件查找内容
grep "root" /etc/passwd /etc/group

# 在当前目录中递归查找内容(即包含其下面多级子目录)
grep -r "root" ./

grep还有更多选项,比较灵活,但是不算常用,可自行查询。

locate:更快的查找

Linux为locate命令在/var/lib/mlocate目录专门有一个文件信息的数据库,用locate命令查找文件时,其实是在这样的数据库中查找。

所以locate命令和find命令的区别就是,locate命令查找文件在数据库中查找,查找的速度非常快,几乎是马上列出结果;而find命令查找时则是直接查找硬盘上的文件,查找的速度相应的非常慢。不过find命令查找文件比locate命令要可靠一些,因为locate的数据库是每天更新一次,如果是刚刚新建的文件,locate命令会找不到。

locate [OPTION]... [PATTERN]...

选项:

  • -e 将排除在寻找的范围之外。
  • -1 如果 是 1.则启动安全模式。在安全模式下,使用者不会看到权限无法看到 的档案。这会使速度减慢,因为 locate 必须至实际的档案系统中取得档案的 权限资料。
  • -f 将特定的档案系统排除在外,例如我们没有必要把 proc 档案系统中的档案 放在资料库中。
  • -q 安静模式,不会显示任何错误讯息。
  • -n 至多显示 n个输出。
  • -r 使用正规运算式 做寻找的条件。
  • -o 指定资料库存的名称。
  • -d 指定资料库的路径
  • -h 显示辅助讯息
  • -V 显示程式的版本讯息
# 查找和log相关的文件
locate log

# 使用正则:结尾是.log的文件
locate -r "\.log$"

which/where:查找命令的存放位置

which比where更直白和简洁的定位到程序的位置,whereis比which显示的更丰富,可以同时显示帮助及二进制文件。

which nginx
/usr/sbin/nginx
whereis nginx
nginx: /usr/sbin/nginx /usr/lib/nginx /etc/nginx /usr/share/nginx /usr/share/man/man8/nginx.8.gz

文件传输

scp

scp 命令用于 Linux 之间复制文件和目录。scp 是 secure copy 的缩写, scp 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令。一般写法:

scp [可选参数] file_source file_target 

示例:

# 将本地test.txt文件复制到54.138.182.10远程机器的/home目录下
scp /home/test.txt root@54.138.182.10:/home

ftp

FTP是ARPANet的标准文件传输协议,该网络就是现今Internet的前身。

ftp [-dignv][主机名称或IP地址]
  • -d 详细显示指令执行过程,便于排错或分析程序执行的情形。
  • -i 关闭互动模式,不询问任何问题。
  • -g 关闭本地主机文件名称支持特殊字符的扩充特性。
  • -n 不使用自动登陆。
  • -v 显示指令执行过程。
ftp 54.138.182.10

文件解压缩/归档

tar:文件归档、解压缩

tar(英文全拼:tape archive )命令用于备份文件(即文件归档和解开归档)。
tar的参数比较多,我们列出常用的参数:

  • -c或--create 建立新的备份文件。
  • -t或--list 列出备份文件的内容。
  • -x或--extract或--get 从备份文件中还原文件。
  • -v或--verbose 显示指令执行过程。
  • -z或--gzip或--ungzip 通过gzip指令处理备份文件。
# 将test1.txt和test2.txt压缩打包为为test.tar.gz
tar -czvf test.tar.gz test1.txt test2.txt

# 解压test.tar.gz
tar -xzvf test.tar.gz 

zip/unzip:文件解压缩

命令参数较多,我们举例子说明:

# -r为递归处理,这里是把/home/html下的所有文件压缩到html.zip
zip -r html.zip /home/html

# 将test1.txt和test2.txt压缩打包为为test.zip
zip test.zip test1.txt test2.txt

# 查看压缩包里的文件
unzip -l test.zip 
# 或
unzip -v test.zip

# 解压test.zip
unzip  test.zip

编辑器

熟悉linux基础操作的过程就是熟悉命令和快捷键的过程,vi/vim也不例外。在没有Gui情况下,操作指令非常多,我们可以按照需要记住一些常用的操作即可,在学习和查询中不断熟悉完善学习,下图列举了vi的使用指令:
image.png

学习vi或vim的技巧就是多去练习,慢慢熟悉它的操作习惯。

篇幅有限,具体vi编辑器的使用这里不多做介绍,可以自行查找教程学习。

你也可以通过文件传输,在本地使用自己熟悉的编辑器编辑完文本后在上传到linux(当然这比较麻烦),我还是推荐去掌握vi的使用。

进程管理

ps:查看系统进程

介绍常用的ps用法:

# 查看所有进程
ps -A

# 查看目前所有的正在内存当中的程序
ps aux

# 带(启动)命令显示进程
ps -ef

# 配合grep筛选显示
ps -ef | grep java

top:实时查看进程运行情况

选项:

  • b:以批量模式运行,但不能接受命令行输入;
  • c:显示命令行,而不仅仅是命令名;
  • d:显示两次刷新时间的间隔,比如 -d 5,表示两次刷新间隔为5秒;
  • i:不显示空闲进程和僵尸进程;
  • n:更新的次数,完成后退出top。比如 -n 5,表示top更新5次数据就退出;
  • p:参数为PID,仅监视指定进程的ID;PID是一个数值;
  • q:不经任何延时就刷新;
  • s:安全模式运行,禁用一些效互指令;
  • S:累积模式,输出每个进程的总的CPU时间,包括已死的子进程;
top

image.png

lsof:列出当前系统打开文件的工具

lsof [options] filename

选项:

  • -a:列出打开文件存在的进程。
  • -c<进程名> :列出指定进程所打开的文件。
  • -g:列出GID号进程详情。
  • -d<文件号>:列出占用该文件号的进程。
  • +d<目录> :列出目录下被打开的文件。
  • +D<目录> :递归列出目录下被打开的文件。
  • -n<目录> :列出使用NFS的文件。
  • -i<条件> :列出符合条件的进程。(4、6、协议、:端口、 @ip )
  • -p<进程号> :列出指定进程号所打开的文件。
  • -u :列出UID号进程详情。
  • -h :显示帮助信息。
  • -v :显示版本信息。

示例:

# 列出谁在使用某个端口。
命令:lsof -i:3306

kill:结束进程

kill [选项] [进程号]

常用操作信号对应的数字:

HUP    1    终端断线
INT     2    中断(同 Ctrl + C)
QUIT    3    退出(同 Ctrl + \)
TERM   15    终止
KILL    9    强制终止
CONT   18    继续(与STOP相反, fg/bg命令)
STOP    19    暂停(同 Ctrl + Z)
# 查看操作信号
kill -l
 1) SIGHUP       2) SIGINT       3) SIGQUIT      4) SIGILL       5) SIGTRAP
 6) SIGABRT      7) SIGBUS       8) SIGFPE       9) SIGKILL     10) SIGUSR1
11) SIGSEGV     12) SIGUSR2     13) SIGPIPE     14) SIGALRM     15) SIGTERM
16) SIGSTKFLT   17) SIGCHLD     18) SIGCONT     19) SIGSTOP     20) SIGTSTP
21) SIGTTIN     22) SIGTTOU     23) SIGURG      24) SIGXCPU     25) SIGXFSZ
26) SIGVTALRM   27) SIGPROF     28) SIGWINCH    29) SIGIO       30) SIGPWR
31) SIGSYS      34) SIGRTMIN    35) SIGRTMIN+1  36) SIGRTMIN+2  37) SIGRTMIN+3
38) SIGRTMIN+4  39) SIGRTMIN+5  40) SIGRTMIN+6  41) SIGRTMIN+7  42) SIGRTMIN+8
43) SIGRTMIN+9  44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9  56) SIGRTMAX-8  57) SIGRTMAX-7
58) SIGRTMAX-6  59) SIGRTMAX-5  60) SIGRTMAX-4  61) SIGRTMAX-3  62) SIGRTMAX-2
63) SIGRTMAX-1  64) SIGRTMAX

# 我们可以使用`ps`命令查看进程的第二列拿到进程号
ps aux

# 强制终止进程
kill –9 3268

磁盘信息

  • df -hl:查看磁盘剩余空间
  • df -h:查看每个根路径的分区大小
  • du -sh [目录名]:返回该目录的大小
  • du -sm [文件夹]:返回该文件夹总M数
  • du -h [目录名]:查看指定文件夹下的所有文件大小(包含子文件夹)

防火墙

一般以下工具只留一种即可,免得配置复杂,最好是iptables。

iptables

其规则比较复杂,我们简单介绍。

# 查看规则
iptables –L

# 开放3306端口
sudo iptables -I INPUT 2 -p tcp --dport 3306 -j ACCEPT

# 删除INPUT列表中的第二条规则
sudo iptables -D INPUT 2

# 保存规则
service iptables save

ufw

iptables很强大也很复杂,于是便有UFW和Firewalld。它们的命令简单清晰很多,底层都是调用iptables。UFW是Ubuntu下防火墙。

# 启动ufw 
systemctl start ufw 

# 停用ufw 
systemctl stop ufw

# 查询ufw开启状态,打印规则 
ufw status 
# 允许80端口访问 
ufw allow 80 
# 拒绝8000端口访问 
ufw deny 9000 
# 拒绝ip为xxx.xxx.xxx.xxx访问 
ufw deny from xxx.xxx.xxx.xxx 
# 允许通过tcp协议,9000-9002访问 
ufw allow 9000:9002/tcp 
# 删除规则 
ufw delete allow http

Firewalld

Firewalld是Fedora/CentOS 8之后版本自带的防火墙:

# 启动
firewalld systemctl start firewalld 

# 停用
firewalld systemctl stop firewalld

# 允许tcp协议8161端口访问,--zone(作用域),--permanent(永久生效) 
firewall-cmd --zone=public --add-port=8161/tcp --permanent 
# 重新加载规则 
firewall-cmd --reload 
# 将80端口的流量转发至8080 
firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080 
# 将80端口的流量转发至192.168.0.1 
firewall-cmd --add-forward-port=proto=80:proto=tcp:toaddr=192.168.1.0.1 
# 将80端口的流量转发至192.168.0.1的8080端口 
firewall-cmd --add-forward-port=proto=80:proto=tcp:toaddr=192.168.0.1:toport=8080

安装命令

CentOS/RHEL/Fedora

格式:

yum [options] [command] [package ...]
  • options 可选,选项包括-h(帮助),-y(当安装过程提示选择全部为 "yes"),-q(不显示安装的过程)等等。
  • command 要进行的操作。
  • package 安装的包名。

示例:

# 列出所有可更新的软件清单
yum check-update

# 更新所有软件
yum update

# 安装wget
yum install wget

# 确认安装是否成功
rpm -qa | grep wget

# 删除软件包
yum remove <package_name>

# 查找软件包
yum search <keyword>

# 找出以 pam 为开头的软件
yum list pam*

Debian/Ubuntu

apt [options] [command] [package ...]
  • options 可选,选项包括 -h(帮助),-y(当安装过程提示选择全部为"yes"),-q(不显示安装的过程)等等。
  • command 要进行的操作。
  • package:安装的包名。

常用操作示例:

# 列出所有可更新的软件清单
sudo apt update

# 升级软件包
sudo apt upgrade

# 列出可更新的软件包及版本信息
apt list --upgradeable

# 升级软件包,升级前先删除需要更新软件包
sudo apt full-upgrade

# 安装指定的软件命令
sudo apt install <package_name>

# 安装多个软件包
sudo apt install <package_1> <package_2> <package_3>

# 更新指定的软件命令
sudo apt update <package_name>

# 显示软件包具体信息,例如:版本号,安装大小,依赖关系等等
sudo apt show <package_name>

# 删除软件包命令
sudo apt remove <package_name>

# 清理不再使用的依赖和库文件:
sudo apt autoremove

# 移除软件包及配置文件:
sudo apt purge <package_name>

# 查找软件包命令
sudo apt search <keyword>

# 列出所有已安装的包
apt list --installed

# 列出所有已安装的包的版本信息
apt list --all-versions
相关文章
|
22天前
|
监控 关系型数据库 MySQL
Alibaba Cloud Linux基础入门(1)——配置zabbix
该文档是关于在Alibaba Cloud Linux上配置Zabbix的教程。首先,通过添加Zabbix仓库并安装相关软件包(如zabbix-server,web前端和agent)。然后,安装并启动MySQL数据库,执行`mysql_secure_installation`进行配置。接着,创建名为zabbix的数据库和用户,并导入Zabbix默认数据。最后,设置Zabbix服务开机自启动,并通过浏览器访问http://服务器IP/zabbix完成Web端配置,使用Admin/zabbix登录。
|
2月前
|
Linux 数据安全/隐私保护 Windows
Linux入门指南:linux权限究竟是什么?和文件有什么关系?
Linux入门指南:linux权限究竟是什么?和文件有什么关系?
32 0
|
2月前
|
监控 网络协议 Java
Linux 网络编程从入门到进阶 学习指南
在上一篇文章中,我们探讨了 Linux 系统编程的诸多基础构件,包括文件操作、进程管理和线程同步等,接下来,我们将视野扩展到网络世界。在这个新篇章里,我们要让应用跳出单机限制,学会在网络上跨机器交流信息。
Linux 网络编程从入门到进阶 学习指南
|
2月前
|
域名解析 运维 网络协议
Linux命令行全景指南:从入门到实践,掌握命令行的力量
Linux命令行全景指南:从入门到实践,掌握命令行的力量
88 0
|
3月前
|
Shell Linux
Linux下的Shell基础——Shell概述和入门(一)
Linux下的Shell基础——Shell概述和入门(一)
39 0
Linux下的Shell基础——Shell概述和入门(一)
|
2天前
|
缓存 安全 Linux
Linux入门基本指令(2)
Linux入门基本指令(2)
7 0
|
2天前
|
Linux Windows
Linux入门基本指令(1)-2
Linux入门基本指令(1)
8 1
|
2天前
|
Linux 数据安全/隐私保护 Windows
Linux入门基本指令(1)-1
Linux入门基本指令(1)
12 1
|
3天前
|
Linux Shell
Linux 终端入门
Linux 终端入门
|
4天前
|
安全 Linux Python
Volatility3内存取证工具安装及入门在Linux下的安装教程
Volatility3内存取证工具安装及入门在Linux下的安装教程
Volatility3内存取证工具安装及入门在Linux下的安装教程