Linux实操篇(重点)

博客围绕Linux服务器运维展开,但具体内容缺失。推测会涉及Linux系统在服务器上的管理、维护等运维工作,如系统配置、性能优化、故障排除等信息技术相关操作。

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

--[实操篇]

常用基本命令
   Shell可以看做是一个命令解释器,为我们提供了交互式的文本控制台界面。
我们可以通过终端控制台输入命令,有shell进行解释并最终交给内核执行。

--BASH(Bourne Again Shell) --sh shell解释器的入口
ls -l /bin/ | grep sh
-----------------------------------------------------
                     [帮助命令]
-----------------------------------------------------
基本语法:man [命令或配置文件] --获得帮助信息
man ls  --(F向下翻/B向下翻/space向下翻)
q --退出
man cd 

[help获取shell内置命令的帮助信息]
    一部分基础功能的系统命令是直接内嵌在shell中的,系统加载启动后会随着shell
一起加载,常驻系统内存中。这部分命令称为"内置(built-in)命令";相应的其他命令被
称为"外部命令"

help cd --获得shell内置命令的帮助信息
type cd --查看命令类型
type exit
type useradd
type history 
history --之前敲过的所有命令
man -f cd
man 1p cd
man 3 cd
man man

基本语法:help 命令 --获得shell内置命令的帮助信息
help cd   --内置命令
ls --help --外部命令

[shell常用的快捷键]
ctrl+c --停止进程
ctrl+l --清屏,等于clear; 彻底清屏是:reset
tab    --提示(更重要的是可以复制敲错)
上下键 --查看执行过的命令

-----------------------------------------------------
                   [文件目录类]
-----------------------------------------------------

--pwd
[pwd 显示当前工作目录的绝对路径]print working directory 打印工作目录
基本语法:pwd  --显示当前工作目录的绝对路径

--cd
[cd 切换路径]
cd /etc/sysconfig/network-scripts/
pwd 
type pwd --内置命令

基本语法:cd --
相对路径 cd ../ --上一级目录
绝对路径 cd /   --绝对路径以/开头
cd -  --返回上次所在的目录
cd    --回到主文件夹
su 用户名--切换用户

--ls
[ls 列举出当前目录的内容或文件] list
ls
ls -a  --all 全部的文件,连同隐藏挡(开头为.的文件)一起列出
cd .. --返回上级目录
cd -  --上次目录
cd .  --当前目录
文件名: .cshrc --隐藏的文件
ls -l  --昌数据串列出,包含文件的数下与权限等等数据;等于 ll
ll
ls -al

--mkdir
[mkdir 创建一个新的目录]
基本语法:mkdir 要创建的目录
mkdir a
mkdir /a  --在根目录下创建
ls /
mkdir b c --创建b,c文件夹
mkdir c c/d--创建c文件夹,在c文件夹中创建d文件夹
mkdir -p g/h/i--连续创建文件夹

--rmdir
[rmdir 删除一个空的目录]
基本语法:rmdir 要删除的空目录
rmdir d --删除d文件夹
rmdir d/e/f d/e /d--嵌套删除文件夹
rmdir -p g/h/i    --连续删除文件夹

--touch
[touch 创建空文件]
touch hello --创建hello的文件
touch /root/a/b/hello--绝对路径创建
vim hello4  --创建文件(如果文件没内容,就没法创建)

--cp
[cp 复制文件或目录]
cp[选项] source dest
source --源文件
dest   --目标文件
cp hello /root/a--如果复制到目标文件一样,会覆盖掉原文件的内容
\cp hello /root/a--没有出现覆盖提示,强制覆盖 --linux原生命令
alias --别名
cp -r a/ home/a --递归复制整个文件夹

--rm
基本语法:rm[选项]deleteFile 
[rm 递归删除目录中的所有内容]

rm -f  --强制执行删除,没有提示
rm -r  --递归删除目录中的所有内容
rm -v  --显示指令的详细执行过程
rm -rf --强制递归删除目录中的所有内容(rm -rf /* 不能随便用)
rm -f ./*

--mv
基本语法:mv oldNameFile newNameFile      --重命名
         mv /temp/movefile /targetFolder --移动文件
[mv 移动文件与目录或重命名]
mv /b /d/1.cfg  --移动并重命名
mv 1.cfg 2.cfg  --重命名

--cat
[cat 查看文件内容,从第一行开始显示] --catch
cat hello     --显示hello文件内容
cat -n hello  --显示hello文件的内容,并加上行号

--more
[more 文件内容分屏查看器]
基本语法:more 要查看的文件
=  --显示第几行
:f --显示文件的第几行
q  --退出

--less
[less 分屏显示文件内容]
基本语法:less 要查看的文件
    less指令用来分屏查看文件内容,它的功能与more指令类似,但是比more指令更加强
大,支持各种显示终端.less指令在显示文件内容时,并不是一次将整个文件加载之后才显
示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率.
g  --回到开头
G  --到结束
/hello  --搜索关键字hello  --n:向下查找 --N:向上查找
q       --退出

-echo
[echo 输出内容到控制台]
基本语法:echo[选项][输出内容]
echo "hello world"
echo -e "hello\nworld"  --支持反斜线控制的字符转换  \\:输出本身 \n:换行符 \t:制表符,也就是Tab键

--  >输出重定向 和 >>追加
基本语法:
(1)ls -l > 文件  --列表的内容写入文件a.txt中(覆盖写)
(2)ls -al>>文件  --列表的内容追加到文件aa.txt的末尾
(3)cat 文件1>文件2  --将文件1的内容覆盖到文件2
(4)echo"内容">>文件 
ll>info
ls>info
cat info
echo "hello,linux">>info
echo $  --查看环境变量,输入后加个Tab
echo $PATH  --显示环境变量
echo $HOSTNAME>>info  --追加

--head
[head 显示文件头部内容]
基本语法:
(1)head 文件      --查看文件头10行内容
(2)head -n 5 文件  --查看文件头5行内容

--tail
[tail 输出文件尾部内容]
基本语法:
(1)tail 文件       --查看文件尾部10行内容
(2)tail -n 5 文件  --查看文件尾部5行内容
(3)tail -f 文件    --实时追踪该文档的所有更新 follow

tail -f info       --监控info文件(监控是根据文件索引号监控的,若文件修改了,inode也会改变,但监控还是原来的inode)
ctrl+s             --暂停
ctrl+q             --继续
ctrl+c             --退出

ls -i info         --查看info文件的索引号 index inode

--ln
[ln 软链接]  --类似于指针
基本语法:ln -s [原文件或目录]{软链接名}
    软链接也称为符号链接,类似与windows里的快捷方式,有自己的数据块,主要存
放了链接其他文件的路径.
ln -s /root/a/info myInfo  --创建软链接
vim myInfo
mkdir folder
touch folder/file
ln -s /root/floder/ /home/a/myFolder
pwd -P  --显示真正的实际路径
cd -P /home/a/myFolder  --进入正真的实际目录
rm myInfo
rm -rf myInfo  --删除软链接文件
rm -rf myInfo/ --删除真实目录下的文件
ln 文件名 链接名  --创建硬链接

--history
[history 查看已经执行过历史命令]
history 10\  --显示最近执行过的10条命令
!199         --对应当前历史命令的编号
history -c   --清空历史命令

-----------------------------------------------------
                   [时间日期类]
-----------------------------------------------------

基本语法:date [OPTION]...[+FORMAT]
date        --显示当前时间
date +%Y    --显示当前年份
date +%y
date +%m    --显示当前月份
date +%d    --显示当前是哪一天
date "+%Y-%m-%d %H:%M:%S"  --显示年月日时分秒
date +%s    --当前秒数对于的时间戳
date -d '1 days ago'   --显示前一天时间
date -d '-1 days ago'  --显示明天时间
date -d '-1 hours ago'
date -s     --设置系统时间
date -s "2024-3-31 16:39:39"
ntpdate     --联网更新时间

--cal
[cal 查看日历]
cal     --获取当天所在月份的日历
cal -3  --显示最近3个月的日历
cal -m  --把周一放前面
cal 2022--显示2022的所有日历
cal -y  --显示当前系统所在年的所有日历

-----------------------------------------------------
                   [用户管理类]
-----------------------------------------------------

--useradd
[useradd 添加新用户]
基本语法:useradd 用户名  --添加新用户
         useradd -g 组名 用户名 --添加新用户到某个组
cd /home/
useradd tony
useradd -d /home/dave david  --创建david用户,在dave文件夹
passwd tony  --为tony用户设置密码
passwd david
exit
id tony  --检验用户是否存在
less /etc/passwd  --查看创建了哪些用户
su tony --switch user 切换用户
cd ~    --跳转到主目录
who am i  --显示原始用户
whoami    --当前用户的名称

-----------------------------------------------------
                   [用户权限类]
-----------------------------------------------------
--sudo 
[sudo 设置普通用户具有root权限]
su tony
ls
sudo ls
vim /etc/sudoers  --用户权限文件
+ - - + - - - - - + - - +
|root | ALL=(ALL) | ALL |
+ - - + - - - - - + - - +
|tony | ALL=(ALL) | ALL |
+ - - + - - - - - + - - +
yy
p
:wq!
su tony
sudo ls  --临时获取到超级管理员的权限
userdel tony  --删除tony用户
rm -rf tony/  --一般最好不要删,留着文件
userdel -r david  --直接删除用户及文件
cat /etc/passwd   --查看用户

--groupadd
[groupadd 新增组]
基本语法:groupadd 组名
id tony
id root
sudo cat /etc/group  --查看用户组
groupadd PL  --新建一个PL的组

--usermod
[usermod 修改用户]
基本语法:usermod -g 用户组 用户名
usermod -g PL tony
id tony
groupmod -n INV PL  --修改组名(新用户名 旧用户名)
groupdel tony       --删除用户组
id atguigu          --(wheel)类似于管理员
vim /etc/sudoers
+ - - + - - - - - + - - +
%wheel  ALL=(ALL)   ALL
+ - - + - - - - - + - - +
%wheel  ALL=(ALL) NOPASSWD:ALL  --加了NOPASSWD就不用再验证密码才执行命令

-----------------------------------------------------
                   [文件权限类]
-----------------------------------------------------
ll

-rw-------.1   --文件,1表示硬链接数;如果是文件夹,指的是子文件夹数
drwxr-xr-x.    --文件夹
c              --字符类型的设备文件
b              --跨设备文件(硬盘)
l              --链接(link file)
ls /dev/       --设备目录



d  rwx  r-x  r-x.
文件类型 属主权限(User) 属组权限(Group) 其他用户权限(Other)

(1)作用到文件:
r --读   read,可以读取,查看    
w --写   write,可以修改,但不代表可以删除(除非对该文件所在目录有写权限)
x --执行 execute,可以被系统执行

(2)作用到目录:
r --读   read,可以读取,ls查看目录内容
w --写   write,可以修改,目录内创建+删除+重命名目录
x --执行 execute,可以进入该目录,cd

cp ./anaconda-ks.cfg /home/atguigu
cp ./initial-setup-ks.cfg /home/atguigu
su atguigu
cd ~
ll
cat initial-setup-ks.cfg 
cat anaconda-ks.cfg 

--chmod
[chmod 改变权限]
基本语法:
(1)chmod [{ugoa}{+-=}{rwx}]文件或目录
(2)chmod [mode=421][文件或目录]

chmod u+x initial-setup-ks.cfg 
ll
chmod g+w initial-setup-ks.cfg 
chmod a=rw initial-setup-ks.cfg  --所有都改为rw

r=4
w=2
x=1
rwx=4+2+1=7
1 --x
2 --w
3 --wx
4 --r
5 --rx
6 --rw
7 --rwx

chmod 777 a  --开通所有权限
chmod 644 a
su atguigu
cd /home/atguigu
chmod -R 777 xiyou  --把这个文件夹里面的所有目录和文件都开通全部权限

--chown
{chown 改变所有者}
基本语法:chown [选项][最终用户][文件或目录]  --改变文件或目录的所有者
chown -R 文件名--递归操作
chown atguigu initial-setup-ks.cfg 

--chgrg
[chgrp 改变所属组]
基本语法:chgrp[最终用户组][文件或目录]  --改变文件或目录的所属组
chgrp INV initial-setup-ks.cfg 

--分场景操操作
bigdata   testing
groupadd bigdata  --创建大数据用户组
groupadd testing  --创建测试用户组
cat /etc/group    --查看用户组是否创建
useradd -g testing xiaohong  --新入职的小红
useradd -g testing xiaolan   --新入职的小蓝
useradd -g bigdata xiaoming
id xiaoming
useradd -g bigdata xiaoliang
cd /home
ls
su xiaoming
pwd
cd ~
vim import_code  --小明创建了一个文件

su xiaoliang
cd ~
ll
cd ../xiaoming/
cd /home
chmod g+x xiaoming/
chmod g+r xiaoming
chmod g+w import_code
cd xiaoming/
vim import_code

usermod -g bigdata xiaolan  --小蓝更改为大数据组

--find
[find 查找文件或目录]
基本语法:find[搜索范围][选项]
-name  --按照指定的文件名查找模式查找文件
-user<用户名>  --查找属于指定用户名所有文件

-size<文件大小>  --按照指定的文件大小查找文件,
    单位: b --块(512字节)
          c --字节
          w --字(2字节)
          k --千字节
          M --兆字节
          G --吉字节
          
find ./ -name a --查找a的文件
touch /home/info  --创建info文件
find -name info
find /root -name info
find /root -name "*.cfg"  --找到.cfg结尾的文件
find /home -user tony
ls -lh
find /root -size +10M  --找出大于10兆的文件

--locate
[locate 快速定位文件路径]
基本语法:locate 搜索文件  --在数据库查找,速度特别快,但数据库每天只更新一次
updatedb  --先更新数据库,保持数据准确
locate tmp
which ls  --查找命令在哪里
whereis locate

--grep
{grep 过滤查找及"|"管道符}
基本语法:grep 选项 查找内容 源文件
-n  --显示匹配行及行号
grep -n boot initial-setup-ks.cfg  --查找boot关键字在文件的哪里
ls | grep .cfg

wc  --word count;统计词数
wc info

8  8 48 info
行数 单词数量 字节数 文件名
grep -n boot initial-setup-ks.cfg | wc  


--gzip/gunzip 
[gzip/gunzip 压缩和解压类]
基本语法:
gzip 文件  --压缩文件,只能将文件压缩为*.gz文件
gunzip 文件.gz  --解压缩文件命令

经验技巧:
(1)只能压缩文件不能压缩目录
(2)不保留原来的文件
(3)同时多个文件会产生多个压缩包

gzip xzhdx.txt  --压缩xzhdx.txt文件
ls -lh
gunzip xzhdx.txt.gz  --解压xzhdx.txt.gz文件

--zip/unzip 
[zip/unzip 压缩/解压]
基本语法:
zip [选项] XXX.zip --压缩文件和目录的命令
unzip [选项] XXX.zip  --解压文件
-r  --递归的压缩
-d<目录>  --指定解压后文件的存放目录

zip -r myroot.zip b  --压缩文件夹b为 myroot.zip  --兼具打包和压缩的功能
unzip -d ziptest myroot.zip   --解压文件myroot.zip到ziptest目录

--tar
[tar 打包]
基本语法:tar[选项] XXX.tar.gz --将要打包进去的内容
-c  --产生.tar打包文件
-v  --显示详细信息
-f  --指定压缩后的文件名  --一般放最后一个参数
-z  --打包同时压缩
-x  --解包.tar文件
-C  --解压到指定目录

tar -zcvf temp.tar.gz initial-setup-ks.cfg  myroot.zip  --打包并压缩两个文件为temp.tar.gz
tar -zxvf temp.tar.gz -C ziptest --把temp.tar.gz解压到ziptest文件夹中


[磁盘管理类]

ls
ll
ls -lh
yum install tree --安装tree工具
systemctl stop packagekit.service --若无法下载,关闭PackageKit服务
killall -9 packagekitd  --杀死PackageKit进程;如果关闭PackageKit服务不起作用

说明:PackageKit是一个在Linux系统上用于软件包管理的守护进程(daemon)。
      它提供了一种统一的接口,用于管理和安装软件包,以及执行软件包更新和升级。
      PackageKit通常与特定的软件包管理工具(如Yum、DNF、APT等)结合使用。

--du
[du 查看文件和目录占用的磁盘空间] --disk usage
基本语法:du 目录/文件  --显示目录下每个子目录的磁盘使用情况  
-h  --以GBytes,MBytes,KBytes等格式自行显示;
-a  --不仅查看子目录大小,还要包括文件  --all
-c  --显示所有的文件和子目录大小后,显示总和
-s  --只显示总和
--max-depth=n  --指定统计子目录的深度为n层

du
du -ah
du -c
du -sh  --直接查看当前目录占磁盘空间的大小
du --max-depth=1 -ah

+ - - - + - - - + - - - +
  /boot     swap     /
+ - - - + - - - + - - - +
   1G       4G      45G
+ - - - + - - - + - - - +

--df
[df 查看磁盘空间使用情况]  --disk free 空余磁盘
基本语法:df 选项  --列出文件系统的整体磁盘使用率,检查文件系统的磁盘空间占用情况
-h  --以GBytes,MBytes,KBytes等格式自行显示;

+ - - - - - + - - - + - - - + - - - + - - - + - - - +
文件系统        容量   已用   可用    已用%   挂载点
+ - - - - - + - - - + - - - + - - - + - - - + - - - +
/dev/sda3       42G   4.7G    38G     12%       /      --3指挂载到/下45G那里
+ - - - - - + - - - + - - - + - - - + - - - + - - - +

tmpfs  --对应内存或swap
shm    --shared memory

free -h  --查看内存

--lsblk
[lsblk 查看设备挂载情况]
基本语法:
lsblk  --查看设备挂载情况
-f     --显示文件系统的相关信息

lsblk
disk  --硬盘
ls /dev/ | grep sro
sda  --SATA硬盘--常用,容量大 / SCSI硬盘--小型,服务器
sda1 --第一块分区
hda  --IDE硬盘--传统
hdb2 --第二块硬盘的第二个分区
vda  --虚拟化模拟设备

+ - - + - - + - - + - - + - - - - - +
 NAME  FSTYPE LABEL  UUID MOUNTPOINT
+ - - + - - + - - + - - + - - - - - +


--mount/umount
[mount/umount 挂载/卸载]
基本语法:mount [-t vfstype] [-o option] device dir  --挂载设备
unmount 设备文件名或挂载点  --卸载设备

--对虚拟机做一些镜像配置
虚拟机右击》设置》CD/DVD》使用ISO映像文件》已连接
lsblk
rom /run/media/root/CentOS7 x86_64  --默认挂载点
ls /run/media/root/CentOS7 x86_64
弹出光盘  --尝试手动挂载

参数-t vfstype  --指定文件系统的类型,通常不必指定.mount会自动选择正确的类
vfstype:
iso9660  --光盘或光盘镜像
msdos    --DOS fat16文件系统
vfat     --Windows 9x fat32 文件系统
ntfs     --Windows NT ntfs 文件系统
smbfs    --Mount Windows 文件网络共享
nfs      --UNIX(LINUX) 文件网络共享

-o options:  --主要用来描述设备或档案的挂接方式
loop     --用来把一个文件当成硬盘分区挂接上系统
ro       --采用只读方式挂载设备
rw       --采用读写方式挂载设备
iocharset--指定访问文件系统所有字符集

device   --要挂接(mount)的设备

dir      --设备在系统上的挂接点(mount point)

mkdir /mnt/cdrom
mount /dev/cdrom /mnt/cdrom/  --显示: mount: 在 /dev/sr0 上找不到媒体
注销》右击光盘设置》已连接

mount /dev/cdrom /mnt/cdrom/
ls /mnt/cdrom
umount /dev/cdrom  --卸载设备
ls /mnt/cdrom

--设置开机自动挂载                                                        表示文件系统检查的优先级(0表示不检查)
vim /ect/fstab                                                              |
+ - - - - - -- - - - - - - - - - - - - - + - - + - - + - - - - - + - - - + - - +
UUID=527aee22-24a8-4248-b47b-18fca35523ee   /    xfs    defaults     0       0
+ - - - - - -- - - - - - - - - - - - - - + - - + - - + - - - - - + - - - + - - +
                                                                     |
                                                                   kdump(0表示不备份/1表示备份)
添加如下命令:      
+ - - - - - -- - - - - - - - - - - - - - + - - - - + - - - - + - - - - - + - - - + - - +                                                             
/dev/cdrom                                /mnt/cdrom  iso9660   defaults     0      0              
+ - - - - - -- - - - - - - - - - - - - - + - - - - + - - - - + - - - - - + - - - + - - +

--fsck  --检查和修复当前文件系统的命令(根据优先级设定)

:wq!

--fdisk
[fdisk 分区]  --必须在root用户下才能使用
基本语法:
fdisk -l           --查看磁盘分区情况(l表示显示所有硬盘的分区列表)
fdisk 硬盘设备名   --对新增硬盘进行分区操纵    

+ - - - - - + - - + - - - - - + - - - - - + - - - - - + - - + - - - - - - - - - - - +
   设备       Boot    Start      End         Blocks     Id    System
+ - - - - - + - - + - - - - - + - - - - - + - - - - - + - - + - - - - - - - - - - - +   
/dev/sda1      *      2048       2099199     1048576    83    Linux
/dev/sda2             2099200    10098687    3999744    82    Linux swap / Solaris
/dev/sda3             10098688   97988607    43944960   83    Linux
+ - - - - - + - - + - - - - - + - - - - - + - - - - - + - - + - - - - - - - - - - - +
Boot的*表示是否是当前的启动分区(是)
Blocks  --表示当前分区的容量大小
Id      --分区类型的Id
System  --分区系统的类型

--如果多了一块新硬盘,该如何操作?
设置》硬盘(SCSI)》添加》硬盘》下一步》创建新虚拟磁盘》下一步》20G》名称》完成
fdisk -l
lsblk
reboot    --重启才会显示硬盘信息
fdisk /dev/sdb  --挂接硬盘
m  --命令(输入 m 获取帮助):m
q  --退出
n  --开始分区
(最多分4个主分区;如果再多,把最后一个分区替换成ext扩展分区,那就可以扩展出若干个逻辑分区,但已不是真正的物理分区)
(ext扩展分区最多有16个)  --例如 sdb1 ~ sdb16
p         --子分区
1         --分区号 (1-4,默认 1)
2048      --起始 扇区 (2048-41943039,默认为 2048)
41943039  --Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039)
w         --保存退出
lsblk -f

+ - - - - - - - - - - - - - - - - - - - - - + 
  命令操作
+ - - - - - - - - - - - - - - - - - - - - - +   
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   g   create a new empty GPT partition table
   G   create an IRIX (SGI) partition table
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)
+ - - - - - - - - - - - - - - - - - - - - - + 

mkfs -t  xfs /dev/sdb1  --对分区进行格式化
mount /dev/sdb1 /home/atguigu/  --挂载到atguigu目录下
df -h
cp myroot.zip /home/atguigu/
df -h
umount /home/atguigu  --卸载设备
lsblk  --还能识别出了,但已经被卸载了
ll /home/atguigu/


[进程管理类]
ls /usr/lib/systemd/system
XXX.target --一组服务的集合
process:
(1)前台
(2)后台(守护进程)  d.service
ls /usr/lib/systemd/system | grep d.service

--ps
[ps 查看当前系统进程状态]  --process status 进程状态
基本语法:
ps aux | grep xxx  --查看系统中所有进程
ps -ef | grep xxx  --可以查看子父进程之间的关系

+ - - + - - - - - - - - - - - - - - - +
  选项                 功能
+ - - + - - - - - - - - - - - - - - - +
   a     列出带有终端的所有用户的进程
   x     列出当前用户的所有进程,包括没有终端的进程
   u     面向用户友好的显示风格
  -e     列出所有进程
  -u     列出某个用户关联的所有进程
  -f     显示完整格式的进程列表
+ - - + - - - - - - - - - - - - - - - +  
ps aux | less
ps -ef

PPID  --父进程ID

ps -aux  --默认先查询x用户(不建议这样写)

USER:该进程是有哪个用户产生的
PID: 进程的ID号
%CPU:该进程占用CPU资源的百分比,占用越高,进程月耗费资源;
%MEM:该进程占用物理内存的百分比,占用越高,进程月耗费资源;  --memory
VSZ: 该进程占用虚拟内存的大小,单位KB;
RSS: 该进程占用实际物理内存的大小,单位KB;
TTY: 该进程是在哪个终端中运行的.对于CentOS来说,tty1是图形化终端
     tty2-tty6是本地的字符界面终端.pts/0-255代表虚拟终端.
STAT:进程状态.常见的状态有:R:运行状态
                           S:睡眠状态
                           T:暂停状态
                           Z:僵尸状态
                           s:包含子进程
                           l:多线程
                           +:前台显示
                           <:优先级较高
                           N:优先级较低
START:该进程的启动时间
COMMAND:命令
TIME:CPU时间

ps -ef | grep sshd
systemctl status sshd

--kill
[kill 终止进程]
基本语法:
kill [选项]进程号  --通过进程号杀死进程
killall 进程名称   --通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢是有用
-9  --表示强迫进程立即停止

ps -ef | grep sshd
+ - - - + - - - + - - + - + - + - - + - - - - - - - - - - - - - - - - - +
root       1059      1  0 4月02 ?       00:00:00 /usr/sbin/sshd -D
root       1143   1059  0 4月02 ?       00:00:00 sshd: root@pts/0
root       4100   1059  4 01:30 ?        00:00:00 sshd: atguigu [priv]
atguigu    4104   4100  0 01:30 ?        00:00:00 sshd: atguigu@pts/1
root       4157   1807  0 01:30 pts/0    00:00:00 grep --color=auto sshd
+ - - - + - - - + - - + - + - + - - + - - - - - - - - - - - - - - - - - +
kill 4104
kill 1059  --杀掉后台守护进程后,其他用户无法登录
systemctl status sshd
systemctl start sshd
ps -ef | grep bash
kill -l  
kill -9 1059
killall sshd  --杀死所有sshd进程--杀掉就只能去机房开启
systemctl start sshd

--pstree
[pstree 查看进程树]
基本语法:
yum install pstree
pstree [选项]
-p  --显示进程的PID
-u  --显示进程的所属用户
pstree | less
pstree -p | less
pstree -u | less
 
--top
[top 实时监控系统进程状态]
基本语法:top [选项]
选项:
-d 秒数  --指定top命令每隔几秒更新.默认是3秒在top命令的交互模式当中可以执行的命令;
-i       --使用top不显示任何闲置或者僵死进程
-p       --通过指定监控进程ID来仅仅监控某个进程的状态
操作说明:
P        --以CPU使用率排序,默认就是此项
M        --以内存使用率排序
N        --以PID排序
q        --退出top

top

top  --程序名称

00:18:00 --当前时间
up 14 min --系统启动运行后到现在的时间
1 user    --当前正在登录使用的用户数
load average: 0.00, 0.03, 0.05  --当前的平均负载(过去的1min 5min 15min)少于0.7就比较少,大于1就超过系统负载
Tasks: 206 total--正在运行的程序
1 running       --R状态
205 sleeping    --S状态
0 stopped       --T状态  
0 zombie        --Z状态
%Cpu(s):  0.0 us --用户进程占用CPU的时间  
          0.0 sy --系统进程  
          0.0 ni --nice命令,给进程指定优先级,越友善,优先级越低 
          99.9 id--idle 空闲
          0.0 wa --wait 等待IO操作
          0.0 hi --硬中断服务请求时间占比
          0.0 si --软中断服务请求时间占比
          0.0 st --被虚拟机占用的时间占比
KiB Mem :  4026160 total --内存占用情况
           3125424 free  --空闲
           550896 used   --占用
           349840 buff/cache--缓存里
KiB Swap:  3999740 total --虚拟内存占用情况
           3999740 free  
           0 used
           3235624 avail Mem 

PID        --当前进程编号
USER       --哪个用户调用的进程    
PR         --当前任务调度优先级  
NI         --当前进程调度用户指定的nice值   
VIRT       --虚拟内存占用大小
RES        --实际物理内存占用大小
SHR        --共享内存占用大小 
S          --当前状态  
%CPU       --当前进程CPU计算时间的占比 
%MEM       --内存占比
TIME+      --当前运行的时间,已经占用CPU的总时间
COMMAND    --当前进程的命令

默认按CPU占用排序
shift+m     --按内存占用大小排序
shift+p     --按CPU占用大小排序
shift+n     --进程号从大到小去对比
q           --退出

top -d
top -i
top -p 2255
top -d 1
u  --监控用户
atguigu  --输入需要监控的用户
k  --根据PID杀死进程
4950  --杀死的进程号

--netstat
[netstat 显示网络状态和端口占用信息]
基本语法:
netstat -anp | grep 进程号  --查看该进程的网络信息
netstat -nlp | grep 端口号  --查看网络端口号占用情况
选项:
-a  --显示所有正在监听(listen)和未监听的套接字(socket)
-n  --拒绝显示别名,能显示数字的全部转行成数字
-l  --仅列出在监听的服务状态
-p  --表示显示哪个进程在调用

ifconfig
ping xxx

socket  --网络传输开的门
[例如:192.168.111.1:20 --20就是socket]
hostname hadoop
ip 192.168.111.1
port  0~65536
ssh 22端口
浏览器 80
MySQL 3306端口

netstat -anp | less

Proto  --当前的协议
Recv-Q --连接到当前socket用户程序还没有拷贝的字节数
Send-Q --已经发出去当远程主机还没有确认收到的字节数

Local Address  --本机地址
0.0.0.0  --本机本地的所有地址
102.168.111.100 --局域网的地址
192.168.122.1   --虚拟网络的地址
127.0.0.1       --本地回环地址,等于local host

Foreign Address--远程地址
192.168.111.1  

State  --网络连接状态
PID/Program name  --进程号/程序名称

--crontab
[crontab 系统定时任务]
基本语法:crontab [选项]
选项说明:
-e  --编辑crontab定时任务
-l  --查询crontab任务
-r  --删除当前用户所有的crontab任务

systemctl restart crond  --重启crond服务
systemctl status crond   --查看crond状态

crontab -l
crontab -e

<进入crontab编辑界面>  --会打开vim编辑你的工作
*****执行任务

+ — - - - + - - - - - - - - - - - + - - - - - +
  项目              含义              范围
+ — - - - + - - - - - - - - - - - + - - - - - +
第一个'*'   一小时当中的第几分钟    0-59
第二个'*'   一天当中的第几小时      0-23
第三个'*'   一个月当中的第几天      1-31
第四个'*'   一年当中的第几月        1-12
第五个'*'   一周当中的星期几        0-7(0和7都代表星期日)
+ — - - - + - - - - - - - - - - - + - - - - - +

特殊符号
+ - - - - + - - - - - - - - - - - - - - - - - - - - - +
  特殊符号             含义
+ - - - - + - - - - - - - - - - - - - - - - - - - - - +
    *       代表任何时间.比如第一个'*'就代表一个小时中每分钟都执行一次的意思.
    ,       代表不连续的时间.比如"0 8,12,16 ***命令",就代表在每天的8点0分,12点0分,16点0分都执行一次命令
    -       代表连续的时间范围.比如"0 5 ** 1-6命令",代表在周一到周六的凌晨5点0分执行命令
    */n     代表每隔多久执行一次.比如"*/10 ****命令",代表每隔10分钟就执行一遍命令
+ - - - - + - - - - - - - - - - - - - - - - - - - - - +

+ - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - +
    时间                             含义
+ - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - +
45 22 ***命令    每天22点45分执行命令
0 17 ** 1命令    每周1的17点0分执行命令
0 5 1,15**命令   每月1号和15号的凌晨5点0分
40 4**1-5命令    每周一到周五的凌晨4点40分
*/10 4***命令    每天的凌晨4点,每隔10分钟执行一次
0 0 1,15*1命令   每月1号和15号,每周1的0点0分都会执行命令.
                 注意:星期几和几号最好不要同时出现,因为他们定义的都是天.非常容易让管理员混乱.
+ - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - +

*/1 * * * * echo "hello,world">>/root/hello
cat hello
tail -f hello
crontab -l
crontab -r  --清理掉当前用户的定时任务

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Violet_Sam

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值