Linux

本文介绍了Linux系统中进程管理工具ps和netstat的基本用法,如查看进程状态、网络信息和端口占用。同时讲解了如何使用kill命令终止进程,以及Bashshell脚本的基础知识,包括脚本编写、变量、运算符、条件判断和流程控制等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.目录结构介绍:

1. / 根目录,linux下有且只有一个根目录。所有东西都是从根目录开始。

2. /bin 可执行二进制文件的目录,如常用的命令ls,tar,cat等

/sbin 放置系统管理员使用的可执行命令,一般用户只能查看不能执行

3. /boot 放置linux系统启动时用到的一些文件,linux内核文件/boot/vmlinuz

4. /lib 系统使用的函数库的目录

5. /opt 给主机额外安装软件所摆放的目录

6. /proc 此目录的数据都在内存中,不占用磁盘空间。如系统核心、外部设备、网络设备等数据

7. /tmp 一般用户或正在执行的程序临时存放文件的目录

8. /usr unix system resource:存放只读的用户数据和应用程序(与系统运行无关的非关键程序),/user/lib存放应用程序,/usr/share存放共享数据等,/usr/bin用户命令如ls ,gcc,python,

/usr/sbin系统管理员命令

9./var 放置系统执行过程中经常变化的文件。/var/log 日志文件 /var/run 程序或服务启动后,其pid存放在该目录下

2.命令类

1.用户相关

useradd xxx,创建密码 passwd xxx,切换用户su xxx

2.ctrl组合键

ctrl+c 结束正在运行的程序  crtl+l 清屏 ctrl+a 当前光标到行首 crtl+e 当前光标到行尾

3.chmod

字母法:chmod u/g/o/a  +/-/=  rwx  文件

数字法:r=4,w=2,x=1

3.文件内容查看

1.cat\tac

cat从第一行开始显示文件内容,tac从最后一行开始显示

2.less\more

more一页一页的显示文件内容,less和more类似,但可以往前翻页

3.head\tail

head只看头几行,tail只看尾巴几行

head -n number 文件

4.nl

显示的时候,顺道输出行号

4.文件管理

1.输出重定向>

可将本应显示在终端上的内容保存到指定文件中,例:ls>test.txt

>输出重定向覆盖原来的内容,>>追加到文件尾部

2.管道 |

一个命令的输出可以通过管道作为另一个命令的输入,从管道左边写入到管道右边

3.清屏clear

快捷键 ctrl+l

4.切换工作目录cd

cd和cd~:切换到当前用户的主目录

cd.:切换到当前目录,cd..:切换到上级目录,cd-:进入上次所在目录

5.显示当前路径pwd

6.创建目录mkdir

新建目录的名称不能与当前目录中已有的目录或文件同名,并且目录创建者必须对当前目录具有写权限

mkdir [-mp] 目录名称

-m:指定被创建目录的权限 mkdir -m 711 test

-p:递归创建所需要的目录  mkdir -p /test1/test2/test3/test4

7.删除文件rm

参数
-i以进行交互式方式执行
-f强制删除,忽略不存在文件,无需提示
-r递归删除目录下文件,删除文件夹时必须加此参数

8.建立链接文件ln

软链接:ln -s 源文件 链接文件

硬链接:ln 源文件 链接文件

软链接类似windows快捷方式

硬链接只能链接普通文件不能链接目录,两个文件占用相同大小硬盘空间(允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止‘误删’)

9.文本搜索:grep

grep [-选项] ‘搜索内容串' 文件名

-r:以递归的方式查找

-v:反向查找。打印出不符合条件行的内容

10.查找文件find

find path -option [ -print ] [ -exec -ok command ] {} \

-pern xxxx:权限为xxx的文件或目录,例:find /test -perm 755

-name,-iname:文件名称符合name的文件,iname忽略大小写

-type:查找某一类型文件,b 块设备文件,d目录,c字符设备文件,p管道文件,l符号链接文件,f普通文件

-exec 命令名{} \ ;({}和\中间有空格)

find /test/* -name "test11" -type f -exec rm -rf {} \;

11.拷贝文件cp

将给出的文件或目录复制到另一个文件或目录中

选项含义
-a复制目录,保持文件属性
-f已经存在的目标文件而不提示
-i

交互式,在覆盖目标文件之前提示用户确认

-r源文件为目录文件,则递归复制
-v显示拷贝进度
-l创建硬链接
-s

复制成为符号链接

12.移动文件mv

用来移动文件或目录,也可以给文件或目录重命令

选项含义
-f禁止交互式操作,如覆盖也不提示
-i交互式
-v显示移动进度

13.归档管理tar

把一系列文件归档到一个大文件中,也可以把档案文件解开以恢复数据

参数含义
-c生成归档文件,创建打包文件
-v列出归档接档的详细过程。显示进度
-f指定档案文件名称,f后面一定是.tar文件,必须放选项最后
-t列出档案中包含的文件
-x解开档案文件

14.gzip、bzip2

实现文件打包压缩。tar只负责打包但不压缩,用gzip压缩tar包后文件扩展名为xxx.tar.gz

gzip [option] file
选项含义
-d解压文件
-r

压缩文件

15.查看当前用户whoami

查看当前系统当前帐号的用户名,可通过/etc/passwd查看系统用户信息

16.查看登录用户who

用于查看当前所有登录系统的用户信息

-q或-count:只显示用户的登陆账号和登陆用户的数量

17.退出登录账户exit

图形界面:退出当前终端

ssh:退出登录账户

如果是切换后的登录用户,退出则返回上一个登录账户

18.添加用户账号useradd

参数含义
-d指定用户登陆系统时的主目录

-m

自动建立目录
-g指定组名称

19.修改用户usermod

修改用户所在组:usermod -g 用户组 用户名 例:usermod -g test abc

3.Linux管道命令

1.统计wc

选项含义
-l统计行数
-w

统计英文单词

-m统计字符

默认情况下,wc将计算指定文件的行数、字数、以及字节数

2.选取命令cut

选项含义
-d后面接分割字符,与-f一起使用
-f依据-d的分割字符将一段信息分割为数段,-f取出第几段
-c以字符的单位取出固定字符区间

3.grep 行选取命令

选项含义
-v显示不包含匹配文本的所有行
-n显示匹配行及行号
-i忽略大小写
-c计算找到的行数
grep [-cinv] '查找的字符串' filename

4.排序sort

参数含义
-f忽略大小写的差异
-b忽略最前面的空格符部分
-M以月份的名字来排序
-n使用纯数字进行排序(默认文字形态排)
-r      反向排序
-uunique,相同数据中,仅出现一行代表
-t分隔符,默认用tab键分割
-k以哪个区间来进行排序
sort [-fbMnrutk] [file or stdin]

5.去重uniq

选项参数
-i忽略大小写字符的不同
-c进行计数
-u只显示唯一的行

6.文件切割split

将大文件分割成较小的文件,在默认情况下按照每1000行切割成一个小文件

split [-bl] file prefix
-b:以大小切割
-l:以行数切割
切割后文件的前缀

4.系统管理

1.ps查看当前系统进程状态

ps aux|grep xxx :查看系统中所有进程

ps -ef|grep xxx :可以查看子父进程之间的关系

a:列出带有终端的所有用户的进程

x:列出当前用户的所有进程,包括没有终端的进程

u:面向用户友好的显示风格

-e/-A:列出所有进程 

-u:列出某个用户关联的所有进程

-f:显示完整格式的进程列表

ps aux显示信息说明:

USER:该进程是由哪个用户产生的

PID:进程的ID号
%CPU:该进程占用CPU资源的百分比,占用越高,进程越耗费资源;
%MEM:该进程占用物理内存的百分比,占用越高,进程越耗费资源;

VSZ:该进程占用虚拟内存的大小,单位KB

RSS:该进程占用实际物理内存的大小,单位KB

TTY:该进程是在哪个终端中运行的。对于CentOS来说,ttyl是图形化终端,tty2-tty6是本地的字符界面终端。pts/0-255代表虚拟终端,?代表没有任何终端,后台服务

STAT:进程状态。R:运行,S:睡眠,T:暂停,Z:僵尸,s:包含子进程,l:多线程,+:前台显示

,<:当前进程优先级较高,N:当前进程优先级较低

START:该进程的启动时间

TIME:该进程占用CPU的运算时间,注意不是系统时间

COMMMAND:产生此进程的命令

PID:1 ,1号进程,/usr/lib/systemd/syst,最初执行的初始用户进程,centos36是init进程

2,2号进程[kthreadd]守护进程,负责所有线程的调度和管理,始终运行在内核空间

-------------

如果想 查看进程的CPU、内存占用率,使用ps aux

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

2.kill终止进程

kill [-signal] pid :根据进程号杀死进程

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

-9:表示强迫进程立即停止

3.netstat显示网络状态和端口占用信息

netstat [-acCeFghilMnNoprstuvVwx][-A<网络类型>][--ip]

netstat -anp|grep 进程号:查看该进程网络信息

netstat -nlp|grep 端口号:查看网络端口占用情况

-a:显示所有正在监听(listen)和未监听的套接字(socket)

-n:直接使用ip地址,而不通过域名服务器

-l:仅列出在监听的服务状态(显示监控中的服务器的socket)

-p:表示显示哪个进程在调用

-c/-continuous:持续列出网络状态

-C/-cache:显示路由器配置的快取信息

-t/-u:显示TCP/UDP传输协议的连线状况

常用:netstat -nltp

4.查看当前日历cal

cal用于查看当前日历,-y显示整年日历

5.显示或设置时间date

设置时间格式 :date [MMDDhhmm[[CC]YY][.ss] +format

MM:月,DD:天,hh:小时,mm:分,CC:年的前两位,YY:年的后两位,ss:秒

显示时间格式 :(date '+%y,%m,%d,%H,%M,%S')

6.动态显示进程top

在运行后,在指定的时间间隔更新显示信息。-d参数可以指定显示信息更新的时间间隔

在top命令执行后,可以按下按键得到对显示的结果进行排序

按键含义
M根据内存使用量排序
P根据CPU占有率排序
T根据进程运行时间长短排序
U根据后面输入的用户名来筛选进程
K根据后面输入的PID杀死进程
q退出
h获得帮助

6.关机重启reboot,shutdown,init

reboot:重新启动操作系统

shutdown -r now:重启启动操作系统,shutdown会给别的用户提示

shutdown-h now/20:25/+10:立即关机/今天20:25关机/十分钟后关机

init 0:关机

init 6:重启

7.检测磁盘空间df

检测文件系统的磁盘空间占用和空余情况,可以显示所有文件系统对节点和磁盘块的使用

选项含义
-a显示所有文件系统的磁盘使用情况
-m以1024字节为单位显示
-k以KBytes的容量显示各文件系统
-t显示各指定文件系统的磁盘空间使用情况
-T显示文件系统类型
-h以容易理解的格式输出文件系统大小

8.检测目录所占磁盘空间du

统计目录或文件所占磁盘空间的大小,该命令的执行结果与df类似,du更侧重于磁盘的使用状况

选项含义
-a递归显示指定目录中各文件和子目录中文件占用的数据块
-s显示指定文件或目录占用的数据块
-b以字节为单位显示磁盘占用情况
-l计算所有文件大小,对硬链接文件计算多次

9.查看或配置网卡信息ifconfig

修改ip:sudo ipconfig ens33 192.168.40.10

5.定时任务执行crontab\at

1.crontab

允许用户在固定时间或间隔执行指定的命令或脚本

命令说明
crontab -e编辑当前用户的定时任务
crontab -l列出当前用户的所有定时任务
crontab  -r删除当前用户的所有定时任务

crontab -u <username> -e

编辑指定用户的任务(需root权限)

*分钟 *小时 *日 *月 *星期几 command_to_execute

示例:

* * * * * 每分钟执行一次

0 * * * * 每小时的0分执行

*/5 * * * * 每五分钟执行一次

0 1 1,15 * *每个月1,15号1:00执行一次

0 5 * * 1 /bin/rm -rf /tmp/*  每周一5:00删除tmp下文件

2.at

at [选项] <时间>
常用选项:
-f:<脚本文件> 指定要执行的脚本
-m:任务完成后发送邮件给客户(即使无输出)
-l:列出当前用户的待执行任务=atq
-d<任务ID>:删除指定任务=atrm

示例1:echo "shutdown -h now" |at 22:30 定时关机

示例2:at -f /path/to/backup.sh now + 30 minutes 30分钟之后运行脚本

6.Shell:

shell是一个命令行解释器,能接受应用程序/用户命令,然后调用操作系统内核

1.Shell脚本入门

1.linux提供的Shell解释器有:

2.bash和sh的关系

3.Centos默认的解析器

4.脚本格式

脚本以#!/bin/bash开头(指定解析器)

5.第一个shell脚本

touch helloworld.sh

vim helloworld.sh

   #!/bin/bash

   echo "Hello World"

脚本的常用执行方式:

1.采用bash或sh+脚本的绝对/相对路径(不用赋予脚本安先生兄弟色友+x权限)

sh ./helloworld.sh

bash home/chenzijie/test/helloworld.sh

2.采用输入脚本的绝对路径或相对路径脚本(必须具有可执行权限)

chmod +x helloworld.sh

./helloworld.sh或者home/chenzijie/test/helloworld.sh

3.脚本路径前加上“.”或source

source helloworld.sh     . helloworld.sh

前两种方式都是在当前shell中打开一个子shell来执行脚本内容,当脚本内容结束,则子shell关闭,回到父shell中。

第三种加“.”或者source方式使脚本内容在当前shell里执行,而无需打开子shell

开不开子shell的区别在于,环境变量的继承,如在子shell中设置的当前变量,父shell不可见。

6.变量

1.系统预定义变量

常用系统变量:$HOME  $PWD  $SHELL  $USER等

查看系统变量的值 echo $HOME

显示当前shell中所有变量  set

2.自定义变量

定义变量:变量名=变量值

撤销变量:unset 变量名

声明静态变量:readonly变量,注意:不能unset

变量定义规则:1.可以由字母,数字和下划线组成,不能以数字开头,环境变量建议大写

2.等号两侧不能有空格

3.在bash中,变量默认类型为字符串类型,无法直接进行数值运算

4.变量的值如果有空格,需要使用双引号或单引号括起来

export 变量名,父shell里面定义的变量导出变成全局变量

3.特殊变量

$n(n为数字,$0代表该脚本名称,$1-$9代表第一到第九个参数,十以上的参数用大括号包含${10})

$#(获取所有输入参数个数,常用于循环,判断参数的个数是否正确以及加强脚本的健壮性)

$*(这个变量代表命令行中所有参数,$*把所有的参数看成一个整体)

$@(这个变量代表命令行中所有参数,$@把每个参数区分对待)

$?(最后一次执行的命令的返回状态。如果变量值为0,说明上一条命令正确执行)

7.运算符

基本语法:$((运算式))或$[运算式]

8.条件判断

test condition 或 [ condition ](condition前后要有空格)条件非空即为true

常用判断条件:

-------两个整数比较:-eq等于,-ne不等于,-lt小于,-gt大于,-le小于等于,-ge大于等于

如果是字符串之间的比较,用等号“=”判断相等,“!=”判断不等

-------按照文件权限进行判断

-r读,-w写,-x执行

-------按照文件类型进行判断

-e文件是否存在,-f文件存在且是常规文件(file),-d文件存在且是一个目录(directory)

(1)23是否大于2                                                [ 23 -ge 2 ]

(2)helloworld.sh是否有写权限                          [ -w helloworld.sh ]

(3)/home/chenzijie/test/test.sh目录中文件是否存在     [ -e  /home/chenzijie/test/test.sh ]

(4)多条件判断(&&前一条命令执行成功,才执行后一条,||上一条失败执行下一跳)

9.流程控制

9.1if判断

单分支:

10.read读取控制台输入

read (选项) (参数)

选项:-p:指定读取值时的提示符

           -t:指定读取值时等待的时间(秒),不加表示一直等待

参数:变量:指定读取值时的变量名

11.函数

11.1系统函数

basename [string/pathname][suffix]   basename命令会删除掉所有的前缀包括最后一个/字符,然后将字符串显示出来

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

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

dirname 文件绝对路径,从给定的包含绝对路径的文件名中去除文件名(非目录部分),然后返回剩下的路径(目录的部分),可以理解为获取文件路径的绝对路径名称

11.2自定义函数

[function] funname[()]         []代表可选

{

  Action;

  [return int;]

}

必须在调用函数前声明函数,shell是逐行运行,不像其它语言一样先编译

函数返回值,只能通过$?系统变量获得,可以显示加;return返回,如果不加,将以最后一条命令运行结果作为返回值,return后跟数值n(0-255)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值