zl程序教程

您现在的位置是:首页 >  系统

当前栏目

Linux系统管理

Linux 系统管理
2023-09-11 14:16:58 时间

系统管理类命令
●ls 显示指定工作目录下的内容

ls [OPTION]… [FILE]…

-a 显示所有文件,包括隐藏文件(以.开头的文件)
-A 显示所有文件,不包括.和…

[root@localhost tmp]# ls -a
. a234 .font-unix std .Test-unix .X11-unix
… af .ICE-unix stderr vmware-root_6136-969586290 .XIM-unix
a1 date.file ks-script-s_Trsx stdout vmware-root_6138-961263600 yum.log
[root@localhost tmp]# ls -A
a1 .font-unix stderr vmware-root_6138-961263600
a234 .ICE-unix stdout .X11-unix
af ks-script-s_Trsx .Test-unix .XIM-unix

-d 仅列出目录本身,不列出目录下的文件
-l 列出长格式,显示文件的属性信息

[root@localhost tmp]# ls -l
total 20
-rw-r–r–. 1 root root 0 Jan 18 23:16 a1
-rw-r–r–. 1 root root 0 Jan 18 23:16 a234
-rw-r–r–. 1 root root 0 Jan 18 23:16 af
-rw-r–r–. 1 root root 29 Jan 18 22:47 date.file
-rwx------. 1 root root 836 Jan 10 18:57 ks-script-s_Trsx
-rw-r–r–. 1 root root 58 Jan 18 23:02 std
-rw-r–r–. 1 root root 58 Jan 18 23:00 stderr
-rw-r–r–. 1 root root 16 Jan 18 22:55 stdout
drwx------. 2 root root 6 Jan 10 18:58 vmware-root_6136-969586290
drwx------. 2 root root 6 Jan 15 15:48 vmware-root_6138-961263600
-rw-------. 1 root root 0 Jan 10 18:54 yum.log

-h 需要和-l搭配使用,将文件大小以易读的方式显示k,m,g
-i 需要和-l搭配使用,可以显示出文件的inode (节点号)

total 20
8395872 -rw-r–r–. 1 root root 0 Jan 18 23:16 a1
8395887 -rw-r–r–. 1 root root 0 Jan 18 23:16 a234
8389080 -rw-r–r–. 1 root root 0 Jan 18 23:16 af
8389025 -rw-r–r–. 1 root root 29 Jan 18 22:47 date.file
8844573 -rwx------. 1 root root 836 Jan 10 18:57 ks-script-s_Trsx
8389079 -rw-r–r–. 1 root root 58 Jan 18 23:02 std
8389078 -rw-r–r–. 1 root root 58 Jan 18 23:00 stderr
8389077 -rw-r–r–. 1 root root 16 Jan 18 22:55 stdout
25522052 drwx------. 2 root root 6 Jan 10 18:58 vmware-root_6136-969586290
75 drwx------. 2 root root 6 Jan 15 15:48 vmware-root_6138-961263600
8388681 -rw-------. 1 root root 0 Jan 10 18:54 yum.log

-r 以倒序方式显示
-s 以文件大小排序
-t 以文件修改时间排序

●pwd 显示当前工作目录
-P
-L

●cd 改变当前工作目录
~ 代表家目录
-表示前一个工作目录
. 表示当前目录
… 表示上级目录

[root@localhost tmp]# cd …/var/spool/
[root@localhost spool]# cd …/spool/

●date 显示或者修改系统时间与日期

date [OPTION]… [+FORMAT]
date [-u|–utc|–universal] [MMDDhhmm[[CC]YY][.ss]]

-u 显示时间类型
-d “字符串” 显示字符串所指的日期和时间
date -d “1 day” +%F
date -d “2 years ago”
-s “字符串” 根据字符串来设置日期和时间
date +%s 总秒数(从1970-01-01 00:00:00算起)

●clock , hwclock 显示或者设置硬件时钟
-w 以系统时间为准,把硬件时间调整为和系统时间一致
-s 以硬件时间为准,把系统时间调整为和硬件时间一致

●passwd 设置用户密码
-l 锁定
-u 解锁
-n 两次修改密码的最小天数
-x 两次修改密码的最大天数
-w 密码到期的提前提醒天数
-s 用户的密码状态
-i 密码过期多少天用户被禁用
– stdin 非交互式创建密码

echo “111111” | passwd - -stdin nebula(需要修改的用户)

●su 切换用户身份
-l 类似于重新登录
-c Commond user:以某一个用户的身份去执行
su user
su - user

●clear 清屏,和快捷键Ctrl+l 用途一样
●who 显示目前登陆到系统中的用户
●w 显示登录到系统的用户信息
●uname 显示操作系统相关信息
-a all

[root@localhost spool]# uname
Linux
[root@localhost spool]# uname -a
Linux localhost.localdomain 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

●uptime 输出系统运行信息(平均负载值越低,系统性能越好)
load average 在特定的时间间隔内运行队列中平均进程数
位于运行队列(running)中
没有等待IO操作
进程没有主动进入等待状态
进程没有被停止

●last 列出目前与过去登录系统的用户信息

[root@localhost spool]# last
root pts/0 192.168.163.1 Thu Jan 20 16:06 still logged in
root tty1 Thu Jan 20 16:06 still logged in
reboot system boot 3.10.0-957.el7.x Mon Dec 16 17:07 - 20:15 (766+03:08)
root pts/1 192.168.163.1 Tue Jan 18 19:29 - crash (-764±2:-22
root pts/0 192.168.163.1 Tue Jan 18 18:53 - 21:09 (02:15)
root tty1 Tue Jan 18 18:53 - crash (-764±1:-46
reboot system boot 3.10.0-957.el7.x Sat Dec 14 19:54 - 20:15 (768+00:21)

●dmesg
显示开机信息
●free 显示内存状态

[root@localhost ~]# free
total used free shared buff/cache available
Mem: 995896 132500 706544 14040 156852 688680
Swap: 3145724 0 3145724
shared(共享内存量) buffers(读缓存) cached(写缓存)

-h

[root@localhost ~]# free -h
total used free shared buff/cache available
Mem: 972M 129M 689M 13M 153M 672M
Swap: 3.0G 0B 3.0G

●ps 显示系统进程瞬间的运行状态

[root@localhost ~]# ps
PID TTY TIME CMD
7181 pts/0 00:00:00 bash
7196 pts/0 00:00:00 ps

-A -e 显示所有的进程信息
-a 显示现行终端机中所有的进程,包括其他用户进程
-u 显示以用户为主的进程状态
-x 和-a 一起使用,列出完整信息
格式化输出
-l 详细信息
-j 格式化输出
-f 详细信息,完整信息

[root@localhost ~]# ps -l
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
4 S 0 7181 7168 0 80 0 - 28860 do_ wait pts/0 00:00:00 bash
0 R 0 7296 7181 0 80 0 - 38309 - pts/0 00:00:00 ps
F:代表这个程序的旗杆(flag);4:代表使用者为superuser ;S:代表这个程序的状态(STAT);
UID:代表执行者身份;PID:进程的ID号;PPID:父进程的ID;C:CPU使用的资源百分比;
PRI:指进程的执行优先权(Priority的简写),其值越小,越早被执行;
NI:进程的nice值,其表示进程可被执行的优先级的修正数值;
ADDR:内核函数,指出该程序在内存的哪个部分;SZ:使用掉的内存大小;
WCHAN:目前这个程序是否正在运作当中,若为-,表示正在运作;TTY:登入者的终端机位置;
TIME:使用掉的CPU时间;CMD:所下达的指令名称

●查看进程状态

ps -aux 
 [root@localhost ~]# ps -aux
USER     PID %CPU  %MEM    VSZ   RSS  TTY   STAT START  TIME COMMAND
root          1      0.0       0.6   127860  6492    ?        Ss   13:39   0:01   /usr/lib/systemd/systemd --swit
root          2     0.0        0.0         0       0        ?        S      13:39   0:00   [kthreadd]
root          3     0.0       0.0         0        0       ?        S      13:39   0:00    [ksoftirqd/0]

USER:该进程属于哪个使用者账号;PID:进程的ID号;
%CPU:该进程使用掉的CPU资源百分比;%MEM:该进程所占用的物理内存百分比;
VSZ:该进程使用掉的虚拟内存量(kbytes);RSS:该进程占用的固定的内存量(kbytes);
TTY:该进程是在哪个终端机上运作,若与终端机无关,则显示?;
STAT:该程序目前的状态,主要的状态有:(R,S,T,Z)          
 #R:该程序目前正在运作,或者是可被运作
 #S:该程序目前正在睡眠中,但可以被某些讯号(signal)唤醒
 #T:该程序目前正在侦测或者是停止了
 #Z:该程序应该已经终止,但其父程序却无法正常的终止他,造成zombie(僵尸)程序的状态
START:该进程被触发启动的时间;TIME:该进程实际使用CPU运作的时间;
COMMAND:该进程的实际指令

ps -ef 
  [root@localhost ~]# ps -ef
UID         PID   PPID  C STIME TTY          TIME CMD
root          1      0  0 13:39 ?        00:00:01 /usr/lib/systemd/systemd --switched-root --syst
root          2      0  0 13:39 ?        00:00:00 [kthreadd]
root          3      2  0 13:39 ?        00:00:00 [ksoftirqd/0]

top 实时监控系统处理器状态的命令

[root@localhost ~]# top
top - 15:50:04 up  2:10,  2 users,  load average: 0.00, 0.01, 0.05
Tasks:  94 total,   2 running,  92 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.3 us,  0.3 sy,  0.0 ni, 99.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :   995896 total,   700068 free,   138268 used,   157560 buff/cache
KiB Swap:  3145724 total,  3145724 free,        0 used.   682664 avail Mem
PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
  7456 root      20   0  161880   2188   1556 R  0.3  0.2   0:00.19 top
     1 root      20   0  127860   6492   4136 S  0.0  0.7   0:01.32 systemd
     2 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kthreadd
     3 root      20   0       0      0      0 S  0.0  0.0   0:00.30 ksoftirqd/0
#top - 15:50:04 up  2:10,  2 users,  load average: 0.00, 0.01, 0.05
#依次对应:系统当前时间 up 系统到目前为止i运行的时间,当前登陆系统的用户数量,
load average后面的三个数宇分别表示距离现在一分钟,五分钟,十五分钟的负载情况。
这行信息与命令uptime显示的信息相同
注意:load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。

#Tasks:  94 total,   2 running,  92 sleeping,   0 stopped,   0 zombie
#依次对应:tasks表示任务(进程),94 total则表示现在有94个进程,其中处于运行中的有2个,92个在休眠(挂起),stopped状态即停止的进程数为0,zombie状态即僵尸的进程数为0个

%Cpu(s):  0.3 us,  0.3 sy,  0.0 ni, 99.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
#依次对应:us:user 用户空间占用Cpu的百分比;sy:system 内核空间占用Cpu的百分比;
ni:niced 改变过优先级的进程占用Cpu的百分比;空闲Cpu百分比;
wa:IO wait IO等待占用Cpu的百分比;
hi:Hardware IRQ 硬中断 占用cpu的百分比;si:software.软中断 占用cpu的百分比;
st:被hypervisor偷去的时间

#PTD USER  PR NI VIRT RES SHR S   %CPU   %MEM  TIME+ COMMAND
PID -进程id
USER -进程所有者
PR -进程优先级
NI -nice值。负值表示高优先级,正值表示低优先级
VIRT -进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES -进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR -共享内存大小,单位kb
s -进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止   Z=僵尸进程
%CPU -上次更新到现在的CPU时间占用百分比
%MEM -进程使用的物理内存百分比
TIME+  -进程使用的CpU时间总计,单位1/100秒
COMMAND -进程名称(命令名/命令行)

ln 默认创建硬链接命令

-s 创建软链接

file 识别文件内容类型

-f file :读取文件file中文件列表,并查看文件内容类型,而非查看file

-b:不显示文件名

split 文档分割命令 默认是按照每1000行进行分割

-b:指定每一个文件的大小

-d:以数字作为后缀 -a 指定后缀长度

链接文件

硬链接:通过inode索引节点来进行连接

软链接:类似于Windows的快捷方式

[root@localhost tmp]# ls -li
total 12
8389076 -rw-r–r–. 1 root root 83 Jan 22 15:47 file
8388681 -rw-r–r–. 2 root root 6 Jan 22 10:53 world
8388681 -rw-r–r–. 2 root root 6 Jan 22 10:53 world_hard
8389074 lrwxrwxrwx. 1 root root 5 Jan 22 10:56 world_sort -> world

Linux文件系统
●文件系统层次结构标准 FHS 定义Linux系统中主要的目录和存放内容
1./:根目录 整个文件系统的起始节点
2./bin 用户在单用户模式下必须具备的二进制命令文件
3./boot boot loader 文件
4./dev 必要的设备文件目录 /dev/sda /dev/null /dev/zero
5./etc 系统配置文件
/etc/bashrc 用来定义系统范围内的函数和别名
/etc/crontab 计划任务的配置文件
/etc/fstab 记录系统中开机启动时所要自动挂载的相关系统文件列表
/etc/group 记录系统用户组的基本信息
/etc/gshadow 记录用户组密码
/etc/hosts 记录主机名和ip
/etc/issue 用户在登录系统前显示的信息
/etc/passwd 用户的基本信息
/etc/shadow 用户的密码信息
/etc/login.defs 设置用户账号的设置信息,在添加新用户时根据这个文件生成相应的显示内容
/etc/skel 添加新用户时将此目录中拷贝/home 中并修改目录名为用户名
/etc/pfofile 每个用户的环境变量信息
/etc/pfofile.d 包含/etc/pfofile 中需要执行的脚本
/etc/ssh ssh 服务配置文件
/etc/yum.repos.d yum仓库配置文件目录
6./home 普通用户家目录
7./lib 依赖库
/lib64
8./media 临时挂载点 ,可以热插拔的介质
9./mnt 临时挂载点
10./opt 可选的应用程序包
11./proc 虚拟的一个文件系统,系统启动后会将进程和内核信息以文件形式映射到系统上
12./root root 用户家目录
13./sbin 系统可执行的二进制命令文件
14./srv 提供特定站点数据
15./sys 链接到计算机上的设备信息
16./usr 用户的一些数据
17./var 系统在运行中内容不断发生改变的文件
/var/log 日志目录,各种日志文件
/var/spool
/var/local

1)/var/log/secure:记录登录系统存取数据的文件;
例如:pop3,ssh,telnet,ftp等都会记录在此.

2)/var/log/wtmp:记录登录这的信息记录,被编码过,所以必须以last解析;
例如:lastb | awk '{ print $3}' | sort | uniq -c | sort -nr | more

3)/var/log/message:几乎所有的开机系统发生的错误都会在此记录;

4)/var/log.boot.log:记录一些开机或者关机启动的一些服务显示的启动或者关闭的信息;

5)/var/log/maillog:记录邮件的存取和往来;

6)/var/log/cron:用来记录crontab这个服务的内容;

7)/var/log/httpd,/var/log/mysqld.log等等文件,记录几个不同的网络服务的记录文件;

8)/var/log/acpid ,   ACPI - Advanced Configuration and Power Interface,表示高级配置和电源管理接口。
后面的d表示 deamon。 acpid也就是 the ACPI event daemon。也就是 acpi 的消息进程。用来控制、获取、管理 acpi 的状态的服务程序。

9)/var/run/utmp 记录着现在登录的用户;

10)/var/log/lastlog 记录每个用户最后的登录信息;

11)/var/log/btmp 记录错误的登录尝试;

12)/var/log/dmesg内核日志;

13)/var/log/cpus CPU的处理信息;

14)/var/log/syslog 事件记录监控程序日志;

15)/var/log/auth.log 用户认证日志;

16)/var/log/daemon.log 系统进程日志;

17)/var/log/mail.err 邮件错误信息;

18)/var/log/mail.info 邮件信息;

19)/var/log/mail.warn 邮件警告信息;

20)/var/log/daemon.log 系统监控程序产生的信息;

21)/var/log/kern 内核产生的信息;

22)/var/log/lpr   行打印机假脱机系统产生的信息;

18./tmp 所有用户可以用来存放临时文件的目录

常见的目录和文件
●/etc
●/proc
●/var

Linux 文件目录管理命令
●mkdir 创建目录
●-p 递归创建
●-v 显示创建过程

[root@localhost tmp]# mkdir -pv /tmp/mylinux/test
mkdir: created directory ‘/tmp/mylinux’
mkdir: created directory ‘/tmp/mylinux/test’
[root@localhost tmp]# ls
mylinux
[root@localhost tmp]# cd mylinux/
[root@localhost mylinux]# ls
test

例子
mylinux

   bin
   sbin
   usr
        bin
        sbin
        local
   etc
        sysconfig
   media

[root@localhost tmp]# mkdir -pv /myliux/{bin,sbin,usr/{bin,sbin,local},etc/sysconfig,media}
mkdir: created directory ‘/myliux’
mkdir: created directory ‘/myliux/bin’
mkdir: created directory ‘/myliux/sbin’
mkdir: created directory ‘/myliux/usr’
mkdir: created directory ‘/myliux/usr/bin’
mkdir: created directory ‘/myliux/usr/sbin’
mkdir: created directory ‘/myliux/usr/local’
mkdir: created directory ‘/myliux/etc’
mkdir: created directory ‘/myliux/etc/sysconfig’
mkdir: created directory ‘/myliux/media’
(同一级的用{ }括起来,下一级用路径分隔符 / 分隔开)

●more,less 逐屏显示文件内容(适合大文件)
-num 一次显示num行
+num 从第num行开始显示
v 调用vi编辑器
!命令 调用shell执行命令

●cat 打印文件内容到标准输出(适合不超过20行小文件查看)

●touch 改变指定文件的访问时间和修改时间 /创建文件
-a 只修改access time
-d 指定时间
-r file 指定使用file的时间戳去更新文件
●stat 查看文件的详细属性信息

[root@localhost tmp]# touch file
[root@localhost tmp]# stat
stat: missing operand
Try ‘stat --help’ for more information.
[root@localhost tmp]# stat file
File: ‘file’
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 802h/2050d Inode: 8388681 Links: 1
Access: (0644/-rw-r–r–) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:user_tmp_t:s0
Access: 2022-01-21 18:11:12.776971121 +0800(访问时间)
Modify: 2022-01-21 18:11:12.776971121 +0800(修改时间)
Change: 2022-01-21 18:11:12.776971121 +0800(改变时间)

●grep 过滤
●diff 比较文件的差异

●rm 删除文件或者目录或者子文件子目录
-f 强制先删除
-i 交互式删除
-r|R 递归删除 删子文件子目录
- v 显示详细信息

[root@localhost tmp]# rm -rf * 强制删除所有文件,目录

●mv 文件/目录改名或者更改存储位置
mv [OPTION]… [-T] SOURCE(源地址) DEST(目标地址)
mv [OPTION]… SOURCE… DIRECTORY
mv [OPTION]… -t DIRECTORY SOURCE…
-b 当目标文件存在时,先备份再覆盖
-f 强制覆盖
-i 交互式移动
-t 先指定目标,再指定源文件

[root@localhost tmp]# mv -t /tmp/ /mnt/file1 /mnt/functions /mnt/functions~

将文件aaa改名为bbb:
mv aaa bbb

●cp 拷贝
cp [OPTION]… [-T] SOURCE DEST
cp [OPTION]… SOURCE… DIRECTORY
cp [OPTION]… -t DIRECTORY(目标) SOURCE(源文件)…
- i 交互式复制
-f 强制覆盖
-r|R 递归复制
-t 先指定目标,再指定源文件

在这里插入图片描述