Linux常用十大命令

时间:2022-12-13 11:17:17

Linux常用命令

1、RPM软件包管理命令

  • 安装软件的命令格式 rpm -ivh filename.rpm
  • 升级软件的命令格式 rpm -Uvh filename.rpm
  • 卸载软件的命令格式 rpm -e filename.rpm
  • 查询软件描述信息的命令格式 rpm -qpi filename.rpm
  • 列出软件文件信息的命令格式 rpm -qpl filename.rpm
  • 查询文件属于哪个 RPM 的命令格式 rpm -qf filename

2、YUM软件包管理命令

  • yum repolist all 列出所有仓库 yum list all 列出仓库中所有软件包 yum info 软件包名称 查看软件包信息 yum install 软件包名称 安装软件包 yum reinstall 软件包名称 重新安装软件包 yum update 软件包名称 升级软件包 yum remove 软件包 移除软件包 yum clean all 清除所有仓库缓存 yum check-update 检查可更新的软件包 yum grouplist 查看系统中已经安装的软件包组 yum groupinstall 软件包组 安装指定的软件包组 yum groupremove 软件包组 移除指定的软件包组 yum groupinfo 软件包组 查询指定的软件包组信息

3、systemctl管理服务的常用命令

  • systemctl start foo.service 启动服务 systemctl restart foo.service 重启服务 systemctl stop foo.service 停止服务
    systemctl reload foo.service 重新加载配置文件(不终止服务) systemctl status foo.service 查看服务状态 systemctl enable foo.service 开机自动启动 systemctl disable foo.service 开机不自动启动 systemctl is-enabled foo.service 查看特定服务是否为开机自动启动 systemctl list-unit-files --type=service 查看各个级别下服务的启动与禁用情况

2、新手必须掌握的Linux常用命令

1.1、echo命令

[root@chenstudy ~]# echo chen
chen
[root@chenstudy ~]# echo $SHELL
/bin/bash

Linux常用十大命令

1.2、date命令

# 查看当前系统时间
[root@chenstudy ~]# date
2022年 04月 09日 星期六 22:32:21 CST
# 按照“年-月-日 小时:分钟:秒”的格式查看当前系统时间
[root@chenstudy ~]# date "+%Y-%m-%d %H:%M:%S"
2022-04-09 22:32:46
# 将当前系统的时间设置为2022年04月0922点36分
[root@chenstudy ~]# date -s "20220409 22:36:00"
2022年 04月 09日 星期六 22:36:00 CST
# 再次使用date查看系统当前时间
[root@chenstudy ~]# date
2022年 04月 09日 星期六 22:36:11 CST
# dtae "+j" 用来查看今天是当年中的第几天
[root@chenstudy ~]# date "+%j"
099

Linux常用十大命令

1.3、wget命令

# wget 命令用于在终端中下载网络文件,格式为“wget [参数] 下载地址”。
[root@chenstudy ~]# cd /home
[root@chenstudy home]# wget http://www.linuxprobe.com/docs/LinuxProbe.pdf

-b # 后台下载模式
-P # 下载到指定目录
-t # 最大尝试次数
-c # 断点续传
-p # 下载页面内所有资源,包括图片、视频等
-r # 递归下载

# wget 命令递归下载 www.linuxprobe.com 网站内的所有页面数据以及文件,下载完后会自动保存到当前路径下一个名为 www.linuxprobe.com 的目录中
[root@chenstudy home]# wget -r -p http://www.linuxprobe.com,

Linux常用十大命令

1.4、ps命令

  • ps 命令用于查看系统中的进程状态,格式为“ps [参数]”
  • 参数
    • -a # 显示所有进程(包括其他用户的进程)
    • -u # 用户以及其他详细信息
    • -x # 显示没有控制终端的进程
  • Linux的进程分为五个进程状态 运行、中断、不可中断、僵死与停止
    • R(运行):进程正在运行或在运行队列中等待。
    • S(中断):进程处于休眠中,当某个条件形成后或者接收到信号时,则脱离该状态。
    • D(不可中断):进程不响应系统异步信号,即便用 kill 命令也不能将其中断。
    • Z(僵死):进程已经终止,但进程描述符依然存在, 直到父进程调用 wait4()系统函数后将进程释放。
    • T(停止):进程收到停止信号后停止运行。
[root@chenstudy home]# ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.1 125504  3440 ?        Ss   3月24   0:15 /usr/lib/systemd/systemd --switched-root --system --de
root         2  0.0  0.0      0     0 ?        S    3月24   0:00 [kthreadd]
root         4  0.0  0.0      0     0 ?        S<   3月24   0:00 [kworker/0:0H]
root         6  0.0  0.0      0     0 ?        S    3月24   0:18 [ksoftirqd/0]
root         7  0.0  0.0      0     0 ?        S    3月24   0:00 [migration/0]
root         8  0.0  0.0      0     0 ?        S    3月24   0:00 [rcu_bh]

# USER 		进程的所有者
# PID  		进程ID号
# %CPU 		运算器占用率
# %MEM 		内存占用率
# VSZ		虚拟内存使用量(单位是 KB)
# RSS 		占用的固定内存量(单位是KB)
# TTY		所在终端
# STAT		进程状态
# START		被启动的时间
# TIME 		实际使用CPU的时间
# COMMAND	命令名称与参数

Linux常用十大命令

1.5、top 命令

  • top 命令用于动态地监视进程活动与系统负载等信息,其格式为 top
[root@chenstudy home]# top

Linux常用十大命令

  • top 命令执行结果的前 5 行为系统整体的统计信息,其所代表的含义如下:
    • 第 1 行:系统时间、运行时间、登录终端数、系统负载(三个数值分别为 1 分钟、5分钟、15 分钟内的平均值,数值越小意味着负载越低)
    • 第 2 行:进程总数、运行中的进程数、睡眠中的进程数、停止的进程数、僵死的进程数
    • 第 3 行:用户占用资源百分比、系统内核占用资源百分比、改变过优先级的进程资源百分比、空闲的资源百分比等
    • 第 4 行:物理内存总量、内存使用量、内存空闲量、作为内核缓存的内存量
    • 第 5 行:虚拟内存总量、虚拟内存使用量、虚拟内存空闲量、已被提前加载的内存量

1.6、pidof和kill命令

  • pidof 命令用于查询某个指定服务进程的 PID 值,格式为“pidof [参数 服务名称]”
  • kill 命令用于终止某个指定 PID 的服务进程,格式为“kill [参数 进程 PID]”
  • killall 命令用于终止某个指定名称的服务所对应的全部进程,格式为:“killall [参数 进程名称]”
# 查询本机上 sshd 服务程序的 PID
[root@chenstudy ~]# pidof sshd
24486 1156
[root@chenstudy ~]# kill 1156

[root@chenstudy ~]# pidof httpd
[root@chenstudy ~]# killall httpd

Linux常用十大命令

1.7、ifconfig命令

  • ifconfig 命令用于获取网卡配置与网络状态等信息,格式为“ifconfig [网络设备 参数]”
[root@chenstudy ~]# ifconfig

Linux常用十大命令

1.8、uname 命令

  • uname 命令用于查看系统内核与系统版本等信息,格式为“uname [-a]”
  • 查看当前系统版本的详细信息,则需要查看 redhat-release 文件,
[root@chenstudy ~]# uname -a
Linux chenstudy 3.10.0-1160.53.1.el7.x86_64 #1 SMP Fri Jan 14 13:59:45 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
[root@chenstudy etc]# cat centos-release
CentOS Linux release 7.9.2009 (Core)
[root@chenstudy etc]# 

Linux常用十大命令

Linux常用十大命令

1.9、uptime和free命令

  • uptime 用于查看系统的负载信息,格式为 uptime
    • 它可以显示当前系统时间、系统已运行时间、启用终端数量以 及平均负载值等信息
  • free 用于显示当前系统中内存的使用量信息,格式为“free [-h]”
[root@chenstudy ~]# uptime
 23:11:18 up 17 days,  6:46,  2 users,  load average: 0.05, 0.22, 0.28
[root@chenstudy ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:           1.8G        347M        192M        612K        1.3G        1.3G
Swap:            0B          0B          0B
# total 		内存总量
# used 			已用量
# free 			可用量
# shared		进程共享的内存量
# buff/cache	磁盘缓存的内存量/缓存的内存量
# available		可利用的内存量

Linux常用十大命令

1.10、who和last命令

  • who 用于查看当前登入主机的用户终端信息,格式为“who [参数]”
[root@chenstudy ~]# who
root     pts/0        2022-04-10 20:07 (117.158.163.68)
root     pts/1        2022-04-10 20:07 (117.158.163.68)
[root@chenstudy ~]# 

Linux常用十大命令

执行 who 命令的结果

登录的用户名 终端设备 登录到系统的时间
root pts/0 2022-04-10 20:07 (117.158.163.68)
root pts/1 2022-04-10 20:07 (117.158.163.68)
  • last 命令用于查看所有系统的登录记录,格式为“last [参数]”
# 使用 last 命令可以查看本机的登录记录由于这些信息都是以日志文件的形式保存在系统中,因此黑客可以很容易地对内容进行篡改
[root@chenstudy ~]# last
root     pts/1        117.158.163.68   Sun Apr 10 20:07   still logged in   
root     pts/0        117.158.163.68   Sun Apr 10 20:07   still logged in   
root     pts/1        117.158.163.67   Sun Apr 10 15:12 - 19:27  (04:14)    
root     pts/0        117.158.163.67   Sun Apr 10 15:12 - 19:27  (04:14)    
root     pts/1        117.158.163.67   Sun Apr 10 08:29 - 12:27  (03:58)    
root     pts/0        117.158.163.67   Sun Apr 10 08:29 - 12:27  (03:58)    
root     pts/1        117.158.163.79   Sat Apr  9 22:25 - 23:49  (01:24)    
root     pts/0        117.158.163.79   Sat Apr  9 22:25 - 23:49  (01:24)    
root     pts/1        117.158.163.78   Thu Apr  7 08:39 - 08:42  (00:03)    
root     pts/0        117.158.163.78   Thu Apr  7 08:39 - 08:42  (00:03)    
root     pts/1        117.158.163.78   Wed Apr  6 16:22 - 20:14  (03:52)    
root     pts/3        117.158.163.78   Wed Apr  6 15:45 - 20:14  (04:28)    
root     pts/4        117.158.163.78   Wed Apr  6 15:38 - 15:40  (00:01)    

Linux常用十大命令

1.11、history和sosreport 命令

  • history 命令用于显示历史执行过的命令,格式为“history [-c]”
    • -c会清空所有的命令历史记录
  • sosreport 命令用于收集系统配置及架构信息并输出诊断文档,格式为 sosreport
[root@chenstudy ~]# history
    1  clear
    2  cd /
    3  uname -f
    4  clear
    5  uname -r
    6  clear
    7  cat /etc/os-release
# 历史命令会被保存到用户家目录中的.bash_history 文件中
[root@chenstudy ~]# cat ~/.bash_history
clear
cd /
uname -f
clear
uname -r
clear
cat /etc/os-release
# 清空当前用户在本机上执行的Linux命令历史记录
[root@chenstudy ~]# history -c

Linux常用十大命令

Linux常用十大命令

Linux常用十大命令

Linux常用十大命令

2.1、pwd、cd、ls命令

  • pwd 命令用于显示用户当前所处的工作目录,格式为“pwd [选项]”
  • cd 命令用于切换工作路径,格式为“cd [目录名称]”
  • ls 命令用于显示目录中的文件信息,格式为“ls [选项 文件] ”
[root@chenstudy ~]# pwd
/root
[root@chenstudy ~]# cd /home
[root@chenstudy home]# ls
ceshi  chen  chen.java  dockerfile  LinuxProbe.pdf  mysql  test.java
# 使用 ls 命令的“-a”参数看到全部文件(包括隐藏文件)
# 使用“-l”参数可以查看文件的属性、大小等详细信息
[root@chenstudy home]# ls -al
总用量 17288
drwxr-xr-x.  6 root root     4096 4月   9 22:52 .
dr-xr-xr-x. 18 root root     4096 3月  24 16:24 ..
drwxr-xr-x   2 root root     4096 4月   2 09:29 ceshi
drwxr-xr-x   3 root root     4096 4月   6 15:32 chen
-rw-r--r--   1 root root        0 3月  30 23:26 chen.java
drwxr-xr-x   2 root root     4096 4月   5 10:54 dockerfile
-rw-r--r--   1 root root 17676281 9月  22 2020 LinuxProbe.pdf
drwxr-xr-x   4 root root     4096 4月   2 09:49 mysql
-rw-r--r--   1 root root        0 3月  30 23:28 test.java
# 查看目录属性信息,则需要额外添加一个-d 参数
[root@chenstudy home]# ls -ld /etc
drwxr-xr-x. 78 root root 4096 3月  29 18:00 /etc
[root@chenstudy home]# 

Linux常用十大命令

2.2、touch、mkdir、cp命令

  • touch 命令用于创建空白文件或设置文件的时间,格式为“touch [选项 文件]”
    • b-a 仅修改“读取时间”(atime)
    • -m 仅修改“修改时间”(mtime)
    • -d 同时修改 atime 与 mtime
[root@chenstudy home]# ls
ceshi  chen  chen.java  dockerfile  LinuxProbe.pdf  mysql  test.java
[root@chenstudy home]# ls -l chen.java 
-rw-r--r-- 1 root root 54 4月  11 14:24 chen.java
[root@chenstudy home]# echo "System.out.println("Hello");" >> chen.java 
[root@chenstudy home]# ls -l chen.java 
-rw-r--r-- 1 root root 81 4月  11 14:25 chen.java
[root@chenstudy home]# touch -d "2021-06-28 15:44" chen.java 
[root@chenstudy home]# ls -l chen.java 
-rw-r--r-- 1 root root 81 6月  28 2021 chen.java
[root@chenstudy home]# 

Linux常用十大命令

  • mkdir 命令用于创建空白的目录,格式为“mkdir [选项] 目录”
    • -p 参数来递归创建出具有嵌套叠层关系的文件目录
[root@chenstudy home]# mkdir linux
[root@chenstudy home]# cd linux/
[root@chenstudy linux]# mkdir -p a/b/c
[root@chenstudy linux]# cd a/
[root@chenstudy a]# cd b/
[root@chenstudy b]# 

Linux常用十大命令

  • cp 命令用于复制文件或目录,格式为“cp [选项] 源文件 目标文件”
    • -p 保留原始文件的属性
    • -d 若对象为“链接文件”,则保留该“链接文件”的属性
    • -r 递归持续复制(用于目录)
    • -i 若目标文件存在则询问是否覆盖
    • -a 相当于-pdr(p、d、r 为上述参数)
[root@chenstudy linux]# touch install.log
[root@chenstudy linux]# cp install.log x.log
[root@chenstudy linux]# ls
a  install.log  x.log
[root@chenstudy linux]# 

Linux常用十大命令

2.3、mv、rm、dd和file命令

  • mv 命令用于剪切文件或将文件重命名,格式为“mv [选项] 源文件 [目标路径|目标文件名]”
[root@chenstudy linux]# mv x.log linux.log
[root@chenstudy linux]# ls
a  install.log  linux.log
[root@chenstudy linux]# 

Linux常用十大命令

  • rm 命令用于删除文件或目录,格式为“rm [选项] 文件”
[root@chenstudy linux]# rm install.log 
rm:是否删除普通空文件 "install.log"?y
[root@chenstudy linux]# ls
a  linux.log
[root@chenstudy linux]# rm -f linux.log 
[root@chenstudy linux]# ls
a
# 删除目录
[root@chenstudy linux]# rm -rf a
[root@chenstudy linux]# ls
[root@chenstudy linux]# 

Linux常用十大命令

  • dd 命令用于按照指定大小和个数的数据块来复制文件或转换文件,格式为“dd [参数]”
    • if 输入的文件名称
    • of 输出的文件名称
    • bs 设置每个“块”的大小
    • count 设置要复制“块”的个数
# /dev/zero 设备文件中取出一个大小为 560MB 的数据块,保存成名为 560_file 的文件
[root@chenstudy home]# dd if=/dev/zero of=560_file count=1 bs=560MB
记录了1+0 的读入
记录了1+0 的写出
560000000字节(560 MB)已复制,4.66672 秒,120 MB/秒
[root@chenstudy home]# 
# dd命令可以把光驱设备中的光盘制作成 iso 格式的镜像文件
[root@chenstudy home]#  dd if=/dev/cdrom of=RHEL-server-7.0-x86_64-LinuxProbe.Com.iso
7311360+0 records in
7311360+0 records out
3743416320 bytes (3.7 GB) copied, 370.758 s, 10.1 MB/s
  • file 命令用于查看文件的类型,格式为“file 文件名”
[root@chenstudy home]# file chen.java 
chen.java: ASCII text
[root@chenstudy home]# file /home/dockerfile/
/home/dockerfile/: directory
[root@chenstudy home]# 

Linux常用十大命令

2.4、tar、grep和find命令

  • tar 命令用于对文件进行打包压缩或解压,格式为“tar [选项 文件]”
    • -c 创建压缩文件
    • -x 解开压缩文件
    • -t 查看压缩包内有哪些文件
    • -z 用 Gzip 压缩或解压
    • -j 用 bzip2 压缩或解压
    • -v 显示压缩或解压的过程
    • -f 目标文件名
    • -p 保留原始的权限与属性
    • -P 使用绝对路径来压缩
    • -C 指定解压到的目录
[root@chenstudy home]# tar -czvf etc.tar.gz /etc 
tar: 从成员名中删除开头的“/”
/etc/
/etc/depmod.d/
/etc/depmod.d/dist.conf
/etc/sudoers
/etc/gss/
/etc/gss/mech.d/
/etc/anacrontab
/etc/wgetrc
/etc/python/
# 将打包后的压缩包文件指定解压到/root/etc 目录中
[root@chenstudy home]# mkdir /root/etc
[root@chenstudy home]# tar xzvf etc.tar.gz -C /root/etc

Linux常用十大命令

Linux常用十大命令

  • grep 命令用于在文本中执行关键词搜索,并显示匹配的结果,格式为“grep [选项 文件]”
    • -b 将可执行文件(binary)当作文本文件(text)来搜索
    • -c 仅显示找到的行数
    • -i 忽略大小写
    • -n 显示行号
    • -v 反向选择—仅列出没有“关键词”的行
[root@chenstudy home]# grep /sbin/nologin /etc/passwd
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin

Linux常用十大命令

  • find 命令用于按照指定条件来查找文件,格式为“find [查找路径] 寻找条件 操作”
    • -name 匹配名称
    • -perm 匹配权限(mode 为完全匹配,-mode 为包含即可)
    • -user 匹配所有者
    • -group 匹配所有组
    • -mtime -n +n 匹配修改内容的时间(-n 指 n 天以内,+n 指 n 天以前)
    • -atime -n +n 匹配访问文件的时间(-n 指 n 天以内,+n 指 n 天以前)
    • -ctime -n +n 匹配修改文件权限的时间(-n 指 n 天以内,+n 指 n 天以前)
    • -nouser 匹配无所有者的文件
    • -nogroup 匹配无所有组的文件
    • -newer f1 !f2 匹配比文件 f1 新但比 f2 旧的文件
    • --type b/d/c/p/l/f 匹配文件类型(后面的字幕参数依次表示块设备、目录、字符设备、管道、 链接文件、文本文件)
    • -size 匹配文件的大小(+50KB 为查找超过 50KB 的文件,而-50KB 为查找小于 50KB 的文件)
    • -prune 忽略某个目录
    • -exec …… {}; 后面可跟用于进一步处理搜索结果的命令(下文会有演示)
[root@chenstudy home]# find /etc -name "host*" -print
/etc/hosts.allow
/etc/hosts.deny
/etc/host.conf
/etc/hostname
/etc/cloud/templates/hosts.suse.tmpl
/etc/cloud/templates/hosts.debian.tmpl
/etc/cloud/templates/hosts.freebsd.tmpl
/etc/cloud/templates/hosts.redhat.tmpl
/etc/selinux/targeted/active/modules/100/hostname
/etc/hosts
# 要在整个系统中搜索权限中包括 SUID 权限的所有文件只需使用-4000 即可
# CentOS 报错未知断言 Red Hat里可以
[root@chenstudy home]# find / -perm -4000 -print
/usr/bin/fusermount
/usr/bin/su
/usr/bin/umount
/usr/bin/passwd
/usr/sbin/userhelper
/usr/sbin/usernetctl 

Linux常用十大命令