Linux学习笔记-常用Linux命令

查看帮助命令

man man:查看 man 命令自身的帮助信息

  • man 命令中常用按键以及用途
按键 用途
空格键 向下翻一页
page down 向下翻一页
page up 向上翻一页
home 直接前往首页
end 直接前往尾页
/ 从上至下搜索某个关键词。如:/linux
? 从下至上搜索某个关键词。如:?linux
n 定位到下一个搜索到的关键词
N 定位到上一个搜索到的关键词
q 退出帮助文档

man 命令帮助信息的结构以及意义

结构名称 代表意义
NAME 命令的名称
SYNOPSIS 参数的大致使用方法
DESCRIPTION 介绍说明
EXAMPLES 演示(附带简单说明)
OVERVIEW 概述
DEFAULTS 默认的功能
OPTIONS 具体的可用选项(带介绍)
ENVIRONMENT 环境变量
FILES 用到的文件
SEE ALSO 相关的资料
HISTORY 维护历史与联系方式

常用系统工作命令

echo

  • 用于在终端输出字符串或变量提取后的值
  • 格式:echo [字符串 | $变量]
echo wmm66.com # wmm66.com echo $SHELL # /bin/bash

date

  • 用于显示及设置系统的时间或日期
  • 格式:date [选项] [+指定的格式]
  • date 命令中输入以+号开头的参数,即可按照指定格式来输出系统的时间或日期

date 命令中的参数以及作用

  • %t:跳格[Tab 键]
  • %H:小时(00~23)
  • %I:小时(00~12)
  • %M:分钟(00~59)
  • %S:秒(00~59)
  • %j:今年中的第几天
# 安装默认格式查看当前系统时间 date # Fri Jan 10 15:11:13 CST 2020 # 按照 年-月-日 小时:分钟:秒 的格式查看当前系统时间 date "+%Y-%m-%d %H:%M-%S" # 2020-01-10 15:12-12 # 查看今天是当年中的第几天 date "+%j" # 010 # 将系统的当前时间设置为 2017年9月1日8点30分 date -s "20170901 8:30:00" # Fri Sep 1 08:30:00 CST 2017

reboot

  • 用于重启系统
  • 格式:reboot

poweroff

  • 用于关闭系统
  • 格式:poweroff

wget

  • 用于在终端中下载网络文件
  • 格式:wget [参数] 下载地址

wget 命令的参数以及作用

  • -b:后台下载模式
  • -P:下载到指定目录
  • -t:最大尝试次数
  • -c:断点续传
  • -p:下载页面内所有资源,包括图片、视频等
  • -r:递归下载
# 下载文件,地址:http://www.linuxprobe.com/docs/LinuxProbe.pdf wget http://www.linuxprobe.com/docs/LinuxProbe.pdf # 递归下载 http://www.linuxprobe.com 网站内的所有页面数据以及文件。 # 下载完后会自动保存到当前路径下一个 www.linuxprobe.com 的目录中 wget -r -p http://www.linuxprobe.com

ps

  • 用于查看系统中的进程状态
  • 格式:ps [参数]

ps 命令的参数以及作用
-a:显示所有进程(包括其他用户的进程)
-u:用户以及其他详细信息
-x:显示没有控制终端的进程

5种常见的进程状态

  • R(运行):进程正在运行或在运行队列中等待
  • S(中断):进程处于休眠中,当某个条件形成后或者接收到信号时,则脱离该状态
  • D(不可中断):进程不响应系统异步信号,即便用 kill 命令也不能将其中断
  • Z(僵死):进程已经终止,但进程描述符依然存在, 直到父进程调用 wait4()系统函数后将进程释放
  • T(停止):进程收到停止信号后停止运行
ps -aux # 短格式和短格式之间是可以合并的,合并后保留一个 - 即可 # ps 命令可允许参数不加 -。因此上面的命令也可以写传 ps aux

top

  • 用于动态地监视进程活动与系统负载等信息
  • 格式:top
  • 能够动态地查看系统运维状态,完全将它看作 Linux 中的强化版的 Windows 任务管理器
  1. 第 1 行:系统时间、运行时间、登录终端数、系统负载(三个数值分别为 1 分钟、5分钟、15 分钟内的平均值,数值越小意味着负载越低)。
  2. 第 2 行:进程总数、运行中的进程数、睡眠中的进程数、停止的进程数、僵死的进程数。
  3. 第 3 行:用户占用资源百分比、系统内核占用资源百分比、改变过优先级的进程资源百分比、空闲的资源百分比等。
  4. 第 4 行:物理内存总量、内存使用量、内存空闲量、作为内核缓存的内存量。
  5. 第 5 行:虚拟内存总量、虚拟内存使用量、虚拟内存空闲量、已被提前加载的内存量。

pidof

  • 用于查询某个指定服务进程的PID
  • 格式:pidof [参数] [服务名称]
# 查询本机上 sshd 服务程序的 PID pidof sshd

kill

  • 用于终止某个指定PID的服务进程
  • 格式:kill [参数] [进程 PID]
kill 2156

killall

  • 用于终止某个指定名称的服务所对应的全部进程
  • 格式:killall [参数] [服务名称]
# 以 httpd 服务程序为例,结束其全部进程 pidof httpd # 13581 13580 13579 13578 13577 13576 killadd httpd pidof httpd

系统状态检测命令

ifconfig

  • 用于获取网卡配置与网络状态等信息

  • 格式:ifconfig [网络设备] [参数]

  • 重点注意的重要信息分别是网卡名称IP 地址网卡物理地址以及 RX/TX 的收发流量数据大小

ifconfig

uname

  • 用于查看系统内核与系统版本等信息
  • 格式:uname [-a]
  • 使用 uname 命令时,一般会固定搭配上 -a 参数来完整地查看当前系统的内核名称、主机名、内核发行版本、节点名、系统时间、硬件名称、硬件平台、处理器类型以及操作系统名称等信息
uname -a # Linux linuxprobe.com 3.10.0-123.el7.x86_64 #1 SMP Mon May 5 11:16:57 EDT 2017 x86_64 x86_64 x86_64 GNU/Linux
  • 如果要查看当前系统版本的详细信息,需要查看redhat-release文件
cat /etc/redhat-release # Red Hat Enterprise Linux Server release 7.0 (Maipo)

uptime

  • 用于查看系统的负载信息
  • 格式:uptime
  • 可以显示当前系统时间、系统已运行时间、启用终端数量以及平均负载值等信息
  • 平均负载值指的是系统在最近 1 分钟、5 分钟、15 分钟内的压力情况
  • 负载值越低越好,尽量不要长期超过 1,在生产环境中不要超过 5
uptime # 22:49:55 up 10 min, 2 users, load average: 0.01, 0.19, 0.18

free

  • 用于显示当前系统中内存的使用量信息

  • 格式:free [-h]

  • 为了保证 Linux 系统不会因资源耗尽而突然宕机,运维人员需要时刻关注内存的使用量

  • 在使用 free 命令时,可以结合使用 -h 参数以更人性化的方式输出当前内存的实时使用量信息

free -h
  • 执行 free -h 命令后的输出信息
内存总量 已用量 可用量 进程共享的内存量 磁盘缓存的内存量 缓存的内存量
total used free shared buffers cached
Mem 1.8GB 1.3GB 542MB 9.8MB 1.6MB 413MB
-/+ buffers/cache 869MB 957MB
Swap 2.0GB 0 2.0GB

who

  • 用于查看当前登入主机的用户终端信息

  • 格式:who [参数]

  • 显示出所有正在登录本机的用户的名称以及他们正在开启的终端信息

  • 执行 who 命令的结果

登录的用户名 终端设备 登录到系统的时间
root :0 2017-08-24 17:52 (:0)
root pts/0 2017-08-24 17:52 (:0)

last

  • 用于查看所有系统的登录记录

  • 格式:last [参数]

  • 这些信息都是以日志文件的形式保存在系统中,因此黑客可以很容易地对内容进行篡改

  • 千万不要单纯以该命令的输出信息而判断系统有无被恶意入侵!

history

  • 用于显示历史执行过的命令

  • 格式:history [-c]

  • 能显示出当前用户在本地计算机中执行过的最近 1000 条命令记录

  • 如果觉得 1000 不够用,还可以自定义 /etc/profile 文件中的 HISTSIZE 变量值

  • 如果使用 -c 参数则会清空所有的命令历史记录

  • 历史命令会被保存到用户家目录中的 .bash_history 文件中

  • 可以用!数字的命令格式重复执行某一次的命令记录,从而避免了重复输入较长命令的麻烦

history # 可以使用 cat 直接查看 .bash_history 文件 cat ~/.bash_history # 清空当前用户在本机上执行的 Linux 命令历史记录信息 history -c

sosreport

  • 用于收集系统配置及架构信息并输出诊断文档
  • 格式:sosreport

工作目录切换命令

pwd

  • 用于显示用户当前所处的工作目录
  • 格式:pwd [选项]

cd

  • 用于切换工作路径
  • 格式:cd [目录名称]

ls

  • 用于显示目录中的文件信息
  • 格式:ls [选项] [文件]
  • -a:查看全部文件(包括隐藏文件)
  • -l:查看文件的属性、大小等详细信息
  • -d:查看目录属性信息
ls -al ls -d /etc

文本文件编辑命令

cat

  • 用于查看纯文本文件(内容较少的)
  • 格式:cat [选项] [文件]
  • -n:显示行号
cat -n initial-setup-ks.cfg

more

  • 用于查看纯文本文件(内容较多的)

  • 格式:more [选项]文件

  • more 命令会在最下面使用百分比的形式来提示您已经阅读了多少内容

  • 可以使用空格键或回车键向下翻页

head

  • 用于查看纯文本文档的前 N
  • 格式:head [选项] [文件]
# 查看文本中前 20 行的内容 head -n 20 initial-setup-ks.cfg

tail

  • 用于查看纯文本文档的后 N 行,或者持续刷新内容
  • 格式:tail [选项] [文件]
  • -n:查看文本内容的最后 N
  • -f:实时查看最新文件
tail -f /var/log/messages

tr

  • 用于替换文本文档中的字符
  • 格式:tr [原始字符] [目标字符]
# 把文本内容中的英文全部替换为大写 cat anaconda-ks.cfg | tr [a-z] [A-Z]

wc

  • 用于统计指定文本的行数、字数、字节数
  • 格式:wc [参数] 文本

wc 的参数以及作用

  • -l:只显示行数
  • -w:只显示单词数
  • -c:只显示字节数
# 统计当前系统中有多少个用户 wc -l /etc/passwd

stat

  • 用于查看文件的具体存储信息和时间等信息
  • 格式:stat 文件名称

cut

  • 用于按提取文本字符
  • 格式:cut [参数] 文本
# 尝试提取出 passwd 文件中的用户名信息,即提取以冒号(:)为间隔符号的第一列内容 head -n 2 /etc/passwd cut -d: -f1 /etc/passwd

diff

  • 用于比较多个文本文件的差异
  • 格式:diff [参数] 文件
  • --brief:确认两个文件是否不同
  • -c:详细比较出多个文件的差异之处
cat diff_A.txt cat diff_B.txt diff --brief diff_A.txt diff_B.txt diff -c diff_A.txt diff_B.txt

文件目录管理命令

touch

  • 用于创建空白文件或设置文件的时间
  • 格式:touch [选项] [文件]

touch 命令的参数及其作用

  • -a:仅修改读取时间(atime)
  • -m:仅修改修改时间(mtime)
  • -d:同时修改 atimemtime
# 先使用 ls 命令查看一个文件的修改时间 # 然后修改这个文件 # 最后再通过 touch 命令把修改后的文件时间设置成修改之前的时间 ls -l anaconda-ks.cfg echo "Visit the LinuxProbe.com to learn linux skills" >> anaconda-ks.cfg ls -l anaconda-ks.cfg touch -d "2017-05-04 15:44" anaconda-ks.cfg ls -l anaconda-ks.cfg

mkdir

  • 用于创建空白的目录
  • 格式:mkdir [选项] 目录
  • -p:可以递归创建出具有嵌套叠层关系的文件目录
mkdir linuxprobe cd linuxprobe mkdir -p a/b/c/d/e cd a cd b

cp

  • 用于复制文件或目录

  • 格式:cp [选项] 源文件 目标文件

  • 如果目标文件是目录,则会把源文件复制到该目录中;

  • 如果目标文件也是普通文件,则会询问是否要覆盖它;

  • 如果目标文件不存在,则执行正常的复制操作。

cp 命令的参数及其作用

  • -p:保留原始文件的属性
  • -d:若对象为链接文件,则保留该链接文件的属性
  • -r:递归持续复制(用于目录)
  • -i:若目标文件存在则询问是否覆盖
  • -a:相当于-pdrpdr 为上述参数)

mv

  • 用于剪切文件或将文件重命名
  • 格式:mv [选项] 源文件 [目标路径|目标文件名]

rm

  • 用于删除文件或目录
  • 格式:rm [选项] 文件
  • -f:强制删除,不会有是否要执行删除操作的提示
  • -r:删除目录

dd

  • 用于按照指定大小和个数的数据库来复制文件或转换文件
  • 格式:dd [参数]

dd 命令的参数及其作用

  • if:输入的文件名称
  • of:输出的文件名称
  • bs:设置每个的大小
  • count:设置要复制的个数
# 用 dd 命令从/dev/zero 设备文件中取出一个大小为 560MB 的数据块,然后保存成名为 560_file 的文件 dd if=/dev/zero of=560_file count=1 bs=560M # 使用 dd 命令来压制出光盘镜像文件,将它变成一个可立即使用的 iso 镜像 dd if=/dev/cdrom of=RHEL-server-7.0-x86_64-LinuxProbe.Com.iso

file

  • 用于查看文件的类型

  • 格式:file 文件名

  • Linux 系统中,由于文本、目录、设备等所有这些一切都统称为文件,而我们又不能单凭后缀就知道具体的文件类型

  • 这时就需要使用 file 命令来查看文件类型了

file anaconda-ks.cfg # anaconda-ks.cfg: ASCII text file /dev/sda # /dev/sda: block special

打包压缩与搜索命令

tar

  • 用于对文件进行打包压缩或解压

  • 格式:tar [选项] [文件]

  • Linux 系统中,常见的文件格式比较多,其中主要使用的是.tar.tar.gz.tar.bz2 格式

tar 命令的参数及其作用

  • -c:创建压缩文件
  • -x:解开压缩文件
  • -t:查看压缩包内有哪些文件
  • -z:用 Gzip 压缩或解压
  • -j:用 bzip2 压缩或解压
  • -v:显示压缩或解压的过程
  • -f:目标文件名
  • -p:保留原始的权限与属性
  • -P:使用绝对路径来压缩
  • -C:指定解压到的目录
tar -zcvf etc.tar.gz /etc mkdir /root/etc tar zxvf etc.tar.gz -C /root/etc

grep

  • 用于在文本中执行关键词搜索,并显示匹配的结果
  • 格式:grep [选项] [文件]

grep 命令的参数及其作用

  • -b:将可执行文件(binary)当作文本文件(text)来搜索
  • -c:仅显示找到的行数
  • -i:忽略大小写
  • -n:显示行号
  • -v:反向选择 — 仅列出没有关键词的行
# 在 Linux 系统中,/etc/passwd 文件是保存着所有的用户信息 # 而一旦用户的登录终端被设置成/sbin/nologin,则不再允许登录系统 # 使用 grep 命令来查找出当前系统中不允许登录系统的所有用户信息 grep "/sbin/nologin" /etc/passwd

find

  • 用于按照指定条件来查找文件
  • 格式:find [查找路径] 寻找条件 操作

find 命令中的参数以及作用

  • -name:匹配名称
  • -perm:匹配权限(mode 为完全匹配,-mode 为包含即可)
  • -user:匹配所有者
  • -group:匹配所有组
  • -mtime -n +n:匹配修改内容的时间(-nn 天以内,+nn 天以前)
  • -atime -n +n:匹配访问文件的时间(-nn 天以内,+nn 天以前)
  • -ctime -n +n:匹配修改文件权限的时间(-nn 天以内,+nn 天以前)
  • -nouser:匹配无所有者的文件
  • -nogroup:匹配无所有组的文件
  • -newer f1 !f2:匹配比文件 f1 新但比 f2 旧的文件
  • --type b/d/c/p/l/f:匹配文件类型(后面的字母参数依次表示块设备、目录、字符设备、管道、链接文件、文本文件)
  • -size:匹配文件的大小(+50KB 为查找超过 50KB 的文件,而-50KB 为查找小于 50KB 的文件)
  • -prune:忽略某个目录
  • -exec …… {}\;:后面可跟用于进一步处理搜索结果的命令
# 获取到 /etc 目录中所有以 host 开头的文件列表 find /etc -name "host*" -print # 在整个系统中搜索权限中包括 SUID 权限的所有文件 find / -perm -4000 -print # 在整个系统中找出所有归属于 linuxprobe 用户的文件,并复制到 /root/findresults 目录 # -exec …… {}\; # {} 表示 find 命令 搜索出的每一个文件 # 命令的结尾必须是 \; find / -user linuxprobe --exec cp -a {} /root/findresults/ \;

创作不易,若本文对你有帮助,欢迎打赏支持作者!

 分享给好友: