常用的Linux命令

命令参考手册:https://www.linuxcool.com/

echo

输出字符串或变量内容到终端上

echo hello world
echo $SHELL

date

显示或设置系统的日期时间

date
date "+%Y-%m-%d %H:%M:%S"

date -s "20240901 22:59:00"  // 设置系统时间
date "+%j"   // 查看今天是当年中的第几天

timedatectl

设置系统时间

timedatectl status  // 查询时间,时区,时间服务器等状态

timedatectl set-timezone Asia/Shanghai  // 设置时区

timedatectl set-time 2021-05-18  // 设置日期

timedatectl set-time 9:30  // 设置时间

rhel8的网络时间服务是chronyd,不是ntpd了,我们来启动一下

systemctl start chronyd

systemctl enable chronyd   // 加入开机启动

启动后,再次使用 timedatectl status 查看,网络服务器已经是Active状态了。

reboot

重启系统

reboot

poweroff

关机

poweroff

wget

下载网络文件

wget https://www.linuxprobe.com/docs/LinuxProbe.pdf

wget -r -p https://www.linuxprobe.com  // 递归下载这个网站的所有页面到www.linuxprobe.com目录下

ps

查看系统中的进程状态

Linux中进程有5种常见的状态:

  • R 正在运行,或队列等待运行中。
  • S 中断,进程休眠中
  • D 不可中断
  • Z 僵死,进程已终止,但是进程描述符还在,父进程调用wait4() 系统函数后,将此进程释放
  • T 停止

进程还要一些状态的补充:

  • < 高优先级
  • N 低优先级
  • L 被锁进内存
  • s 包含子进程
  • l 多线程
ps aux

pstree

以树状图的形式展示进程之间的关系。

如果执行报错,命令找不到,我们需要安装一下

dnf install psmisc  // pstree 是 psmisc 包的一部分

pstree

top

动态的监视进程活动,以及系统负载。

top

下面是对top命令中的字段解释

       系统时间     运行时间   登录终端数    系统负载:    1分钟   5分钟  15分钟 内的平均负载值,值越小,负载越低
top -  12:15:44 up  4:12,       2 users,     load average: 0.00,   0.01,  0.00

       进程总数    运行中的进程数  睡眠中的进程数   停止的进程数   僵死的进程数
Tasks: 190 total,  2 running,      188 sleeping,    0 stopped,     0 zombie

cpu资源使用情况  用户空间占用资源百分比  系统内核占用资源百分比  改变过优先级的进程资源百分比  空闲的资源百分比  
%Cpu(s):         0.0 us,                  0.0 sy,                0.0 ni,                       100.0 id,        
等待io操作完成而处于闲置状态的时间百分比  由于硬件中断而消耗的CPU时间百分比 由于软件中断而消耗的CPU时间百分比  表示虚拟化环境中,被其他虚拟机“盗取”的CPU时间百分比
 0.0 wa,                                   0.0 hi,                           0.0 si,                            0.0 st

            物理内存总理    内存空闲量       内存使用量    作为内核缓存的内存量
MiB Mem :   1966.1 total,   1343.5 free,    265.9 used,    356.8 buff/cache

	       硬盘可置换内存总量  硬盘可置换内存空闲量    使用量     已被提前加载的内存量
MiB Swap:   2048.0 total,      2048.0 free,            0.0 used.  1520.5 avail Mem 


 PID   USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND                                                                                                                                                                                                
 24738 root      20   0   64012   4724   3812 R   0.7   0.2   0:00.28 top                                                                                                                                                                                                    
 
 PID 进程号
 USER 运行此进程的用户
 PR:进程的优先级,数字越小表示优先级越高。
 NI:用户级别的优先级(Nice),值越低,优先级越高。NI的范围通常是-20(最高优先级)到19(最低优先级)。
 VIRT:进程所使用的虚拟内存总量,包括所有已分配的内存和交换空间
 RES:进程当前使用的常驻内存(Resident Memory),这是物理内存中实际占用的部分。
 SHR:进程共享的内存(Shared Memory),这是该进程与其他进程共享的内存量。
 S:进程状态(State)
 %CPU:该进程在过去的时间内所占用的CPU资源百分比。
 %MEM:该进程所使用的物理内存占总可用内存的百分比。
 TIME+:进程使用的CPU时间总量(包括用户态和内核态),通常以分钟和秒表示。
 COMMAND:启动该进程的命令行,包括可执行文件的名称和其参数(如果有)。

nice

调整进程的优先级

PR,NI 都是表示进程的优先级,数值越小,优先级越高。

那么PR和NI的区别呢?

PR是由系统计算出来的一个实际调度的优先级,而NI是可以由用户设置的一个优先级(-20~19,数值越小,优先级越高)。通过修改NI值,可以间接影响PR值。

我们可以将系统不重要的进程优先级调低,让重要的进程占用更多的系统资源。

nice -n -20 bssh  //将bash服务进程的优先级调整到最高

pidof

通过服务进程名称,来查询对应的pid

pidof sshd

kill

根据pid,终止某个进程

kill 2156 

kill -9 2156  // 强杀

killall

批量结束某个服务进程带有的全部进程

pidof httpd
killall httpd
pidof httpd

ifconfig

查看网卡配置,网络状态信息

ifconfig

ens160: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.10.10 (ip地址)   netmask 255.255.255.0  broadcast 192.168.10.255
        inet6 fe80::c8f8:f5c5:8251:aeaa  prefixlen 64  scopeid 0x20
        ether 00:0c:29:7d:27:bf(mac地址)  txqueuelen 1000  (Ethernet)
        RX packets 304  bytes 33283 (32.5 KiB)  接收数据包个数 累计流量
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 91  bytes 11052 (10.7 KiB)   发送数据包个数 累计流量
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

uname

查看系统内核版本,系统架构

uname -a

查看系统发行版本

cat /etc/redhat-release

uptime

查看系统负载

uptime

free

查看内存使用量

free -h

who

显示登录主机的用户名,以及使用的终端,如果有远程用户,还是显示对方的ip地址。

who

root     tty1         2024-09-02 06:48
root     pts/1        2024-09-02 14:23 (192.168.0.102)

last

查看主机每次的登录信息

last

ping

测试主机之间的网络连通性

可用于判断远端主机是否在线,并且网络是否正常。

ping -c 4 192.168.10.20   // 发送4个ping包

tracepath

显示数据到达目的主机,经过的所有路由信息。

ping不通时,我们可以追踪数据包经过的路由,分析哪台设备出问题了。

tracepath www.linuxprobe.com

netstat

显示网络连接,路由表,接口状态等

netstat -a

netstat -i   // 网卡列表

history

显示执行过的命令历史

history
history -c  // 清空

sosreport

如果系统出现故障,可用这个命令,收集系统的运行状态,服务配置等信息。

pwd

显示用户当前所处的工作目录

pwd

cd

切换工作目录

cd -  // 返回上一次所处的目录
cd ..  // 进入上级目录
cd ~   // 切换到当前用户的家目录
cd ~username   // 切换到指定用户的家目录
cd /ect

ls

显示目录中的文件信息

ls -al 

ls -ld /etc   // 查看目录的属性信息

tree

以树状图的形式列出目录结构

[root@rhel8-mytest ~]# tree ~
/root
└── anaconda-ks.cfg

0 directories, 1 file

find

查找文件

find /etc -name "host*" -print   // 查找 /etc 下,所有以host开头的文件

find / -perm -4000 -print

// 在整个文件系统中找出所有归属于linuxprobe用户的文件并复制到/root/findresults目录中
find / -user linuxprobe -exec cp -a {} /root/findresults/ \;    // -exec {} \; 的使用

locate

也是搜索文件的,这个比find查找快,但是它是基于缓存的,所以可能不实时。

updatedb   // 生成缓存   /var/lib/mlocate/mlocate.db

locate whereis

whereis

专门查找二进制程序文件,源码包,帮助文件。

whereis ls
whereis pwd

which

专门查找二进制程序文件位置

which locate
which whereis

cat

查看文件内容

cat -n anaconda-ks.cfg    // -n 显示行号

more

查看文件内容

more file   // 空格键或回车键翻页

head

查看文件的前n行

head -n 10 file  // 查看文件的前10行内容

tail

查看文件的后n行,也可以作为监控文件最新内容。

tail -n 10 file

tail -f /var/log/messages   // 实时监控文件最新内容

tr

字符替换

cat anaconda-ks.cfg | tr [a-z] [A-Z]  // 将文件中的小写字母替换为大写字母

wc

用于统计文件的行数,字数,字节数。

wc -l /etc/passwd   // -l 行数   -w单词数  -c字节数

stat

查看文件的详细属性

比如文件有3种时间状态

  • access time,内容最后一次被访问的时间
  • Modify Time,内容最后一次被修改的时间
  • Change Time,文件属性最后一次被修改的时间
[root@rhel8-mytest ~]# stat anaconda-ks.cfg 
  File: anaconda-ks.cfg
  Size: 1331      	Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d	Inode: 34685756    Links: 1
Access: (0600/-rw-------)  Uid: (    0/    root)   Gid: (    0/    root)
Context: system_u:object_r:admin_home_t:s0
Access: 2024-09-02 16:40:56.311463698 +0800
Modify: 2024-09-02 03:31:12.816062551 +0800
Change: 2024-09-02 03:31:12.816062551 +0800
 Birth: -

grep

按行搜索文件中匹配的内容

grep /sbin/nologin /etc/passwd   // -n 显示行号,-v反选

cut

按列找数据

cut -d : -f 1 /etc/passwd   // -d列分割符号  -f 第几列
cut -d : -f 1-2 /etc/passwd

diff

比较文件之间的差异

diff --brief diff_A.txt diff_B.txt  // 判断文件是否不同

diff -c diff_A.txt diff_B.txt  // 显示不同处

uniq

去除文件中连续的重复行

uniq file

sort

按行对文件内容进行排序

sort fruit.txt      // 默认按字母排序

sort -u fruit.txt   // 对排序后的内容去重复行

sort -n number.txt  // 按数字排序

小练习:对 /etc/passwd 的第三个字段按数字小到大排序?

sort -t : -k 3 -n /etc/passwd

touch

创建一个空文件,或设置文件的 Atime(读取了文件),Mtime(修改了文件内容),Ctime(文件权限或属性更改了)

touch test.go  // 创建了一个空的test.go文件

-a  修改读取时间
-m  修改更改时间
-d  同时修改读取时间和更改时间
stat anaconda-ks.cfg
echo "Visit the LinuxProbe.com to learn linux skills" >> anaconda-ks.cfg
stat anaconda-ks.cfg
touch -d "2020-05-04 15:44" anaconda-ks.cfg 
stat anaconda-ks.cfg

mkdir

创建空目录

mkdir test

cd test

mkdir -p a/b/c/d/e   // 递归的创建嵌套目录

tree ../test

cp

复制文件或目录

cp srcfile  destDir    // 将srcfile复制到destDir目录下,文件名称不变,如果有同名的文件,则提示是否覆盖
cp srcfile  destDir/srcfile2    // 将srcfile复制到destDir目录下,并修改文件名,如果有同名的文件,则提示是否覆盖
cp -a srcDir destDir   // 将srcDir目录复制到destDir目录下
cp -a srcDir destDir/srcDir2  // 将srcDir目录复制到destDir目录下,并重命名为 srcDir2

mv

剪切,或重命名文件

mv x.log linux.log   // 将x.log剪切到当前目录下,其实就是重命名操作

rm

删除文件或目录

rm install.log  // 删除文件,默认带有询问

rm -f install.log  // 强制删除

rm -rf dirname   // 直接删除一个目录

dd

按指定大小和个数的数据块来复制文件,或转换文件。

dd if=/dev/zero of=560_file count=1 bs=560M   // 用dd命令从/dev/zero设备文件中取出一个大小为560MB的数据块,然后保存成名为560_file的文件

dd命令还可以把光驱设备中的光盘制作成iso格式的镜像文件

dd if=/dev/cdrom of=RHEL-server-8.0-x86_64-LinuxProbe.Com.iso

file

查看文件类型

在Linux中,一切皆文件,比如文件,目录,设备等,它们可能没有后缀,无法直观的判断是什么类型的文件,用file命令就可用查看文件的类型了。

file anaconda-ks.cfg 

file /dev/sda

file /bin/which

tar

对文件打包压缩,或解压

-c  压缩
-x  解压
-z  gzip格式
-j  bzip2格式
-v  显示压缩,解压缩过程
-C  指定要解压到的目录
-f  要压缩,解压的对象

tar -czvf xx.tar.gz dir   // 压缩
tar -xzvf xx.tar.gz  // 解压

// 示例
tar -czvf etc.tar.gz /etc   // 打包并压缩整个etc目录,其实目的就是备份etc

// 将打包后的压缩包文件指定解压到/root/etc目录中
mkdir /root/etc
tar xzvf etc.tar.gz -C /root/etc

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇