Linux常用命令—Linux就该这么学(一)
本文参考自Linux就该这么学(LinuxProbe)
简介
计算机硬件是由运算器、控制器、存储器、输入/输出设备等共同组成的,而让各种硬件设备各司其职且又能协同运行的东西就是系统内核。Linux 系统的内核负责完成对硬件资源的分配、调度等管理任务。
Shell(终端)充当的是人与内核(硬件)之间的翻译官,用户把一些命令“告诉”终端,它就会调用相应的程序服务去完成某些工作。主流Linux系统默认使用的终端是Bash(Bourne-Again SHell)解释器。
命令总览
- 常用系统工作命令
- man命令:查看帮助命令。
- echo命令:在终端输出字符串或变量的值。
- date命令:显示及设置系统的时间或日期。
- reboot命令:root用户重启系统。
- poweroff命令: root用户关闭系统。
- wget命令:在终端中下载网络文件。
- ps命令:查看系统进程的状态。
- top命令:动态地查看系统运维状态。
- pidof命令:查看某个进程的PID。
- kill命令:终止某个指定PID的服务进程。
- 系统状态监测命令
- ifconfig命令:获取网卡配置与网络状态等信息。
- uname命令:查看系统内核以及系统版本的信息。
- uptime命令:查看系统的负载信息。
- free命令:显示当前系统内存的使用量情况。
- who命令:查看当前登入主机的用户终端信息。
- last命令:查看所有系统的登录记录。
- history命令:显示历史执行过的命令。
- 工作目录切换命令
- pwd命令:显示用户当前所处的工作目录。
- cd命令:切换工作路径。
- ls命令:显示目录中的文件信息。
- 文本文件编辑命令
- cat命令:查看内容较少的纯文本文件。
- more命令:查看内容较多的纯文本文件。
- head命令:查看纯文本文档的前N行。
- tail命令:查看纯文本文档的后N行。
- tr命令:替换纯文本文档的部分内容。
- wc命令:统计指定文本的行数、字数、字节数。
- stat命令:查看文件的具体存储信息和时间等信息。
- cut命令:按列提取文本中的信息。
- diff命令:比较两个文本。
- 文件目录管理命令
- touch命令:创建空白文件或设置文件的时间。
- mkdir命令:创建空白的目录。
- cp命令:复制文件或目录。
- mv命令:剪切文件或将文件重命名。
- rm命令:删除文件或目录。
- dd命令:按照指定大小和个数的数据块来复制文件或转换文件。
- file命令:查看文件的类型。
- 打包压缩与搜索命令
- tar命令:对文件进行打包压缩或解压。
- grep命令:在文本中执行关键词搜索,并显示匹配的结果。
- find命令:按照指定条件来查找文件。
常用系统工作命令
man命令详解
man命令是一个帮助命令,帮助我们了解一个命令的名称、用法、参数等等。
# 查看echo名称的用法
man echo
该命令的效果图如下:
参数解释如下:
结构名称 | 代表意义 |
---|---|
NAME | 命令的名称 |
SYNOPSIS | 参数的大致使用方法 |
DESCRIPTION | 介绍说明 |
EXAMPLES | 演示(附带简单说明) |
OVERVIEW | 概述 |
DEFAULTS | 默认的功能 |
OPTIONS | 具体的可用选项(带介绍) |
ENVIRONMENT | 环境变量 |
FILES | 用到的文件 |
SEE ALSO | 相关的资料 |
HISTORY | 维护历史与联系方式 |
echo命令详解
echo命令,用于在终端输出字符串或变量提取后的值。
# 输出字符串
echo hello
# 提取JAVA_HOME变量的值,并输出到控制台
echo $JAVA_HOME
该命令的效果图如下:
date命令详解
date命令用于显示及设置系统的时间或日期。以“+”号开头的参数,可以按照指定格式输出日期。
# 显示系统当前时间
date
# 按(*年-*月-*日 *时:*分:*秒)格式显示系统当前时间
date "+%Y-%m-%d %H:%M:%S"
# 设置系统时间的两种方式
# 方式一:date -s设置
date -s "20180403 12:00:00"
# 方式二:用utp工具,跨过服务器防火墙(-u)并与上海本地时间同步
yum install ntpdate
ntpdate -u ntp.api.bz
# 显示今天是一年的第几天
date "+%j"
该命令的效果图如下:
reboot命令详解
reboot命令,用于重启系统。默认只能由root管理员来重启。
poweroff命令详解
poweroff命令,用于关闭系统。默认只能由root管理员来关闭。
wget命令详解
wget命令,用于在终端中下载网络文件。
wget命令的参数如下:
参数 | 作用 |
---|---|
-d | 后台下载模式 |
-p | 下载到指定目录 |
-t | 最大尝试次数 |
-c | 断点续传 |
-p | 下载页面内所有资源,包括图片、视频等 |
-r | 递归下载 |
ps命令详解
ps命令,用于查看系统进程的状态。
ps命令的参数如下:
参数 | 作用 |
---|---|
-a | 显示所有进程(包括其他用户的进程) |
-u | 用户以及其他详细信息 |
-x | 显示没有控制终端的进程 |
Linux系统中,进程有5种状态:
- R(运行):进程正在运行,或在队列中等待。
- S(中断):进程处于休眠中。
- D(不可中断):进程不响应Linux的异步信号,kill命令都不能终止进程。
- Z(僵死):进程已经终止,但描述还在。
- T(停止):进程收到停止信息好停止运行。
注:参数有大小写之分。小写的参数可以合并,符合’-‘也可以省略。但大写的参数不能合并。
top命令详解
top命令,动态地查看系统运维状态,相当于Windows中的任务管理器。
top命令的效果图如下:
top命令效果图的参数含义如下:
- 第一行:系统时间、运行时间、登录终端数、系统负载(三个数值分别为 1 分钟、5分钟、15 分钟内的平均值,数值越小意味着负载越低)。
- 第二行:进程总数、运行中的进程数、睡眠中的进程数、停止的进程数、僵死的进程数。
- 第三行:用户占用资源百分比、系统内核占用资源百分比、改变过优先级的进程资源百分比、空闲的资源百分比等。
- 第四行:物理内存总量、内存使用量、内存空闲量、作为内核缓存的内存量。
- 第五行:虚拟内存总量、虚拟内存使用量、虚拟内存空闲量、已被提前加载的内存量。
pidof命令详解
pidof命令,用来查看某个进程的PID。
kill命令详解
kill命令,用于终止某个指定PID的服务进程。,由于某个服务可能会有多个进程,直接用killall+’服务名’的方式更简单。
注:用”Ctrl + C“的组合命令,能够立即停止当前正在运行的进程。
系统状态监测命令
ifconfig命令详解
ifconfig命令,用于获取网卡配置与网络状态等信息。
ifconfig命令的效果图如下:
对这个效果图中的重要参数解释如下:
- 网卡名称为:ens33
- IP地址为:inet 192.168.139.138
- 网卡物理地址:ether 00:0c:29:f6:5d:d8
- RX接收数据包以及累计流量:RX packets 2779 bytes 2168267 (2.0 MiB)
- TX接收数据包以及累计流量:TX packets 1709 bytes 445253 (434.8 KiB)
uname命令详解
uname命令,查看系统内核以及系统版本的信息。
# 查看当前虚拟机的内核版本信息
uname -a
# 查看当前系统版本的详细信息
cat /etc/redhat-release
该命令的效果图如下:
uptime命令详解
uptime命令,用于查看系统的负载信息。它可以显示当前系统时间、系统已运行时间、启用终端数量以及平均负载值等信息。平均负载值指的是系统在最近1分钟、5分钟、15分钟内的压力情况。
该命令的效果图如下:
free命令详解
free命令,显示当前系统内存的使用量情况。
该命令的效果图如下:
who命令详解
who命令,查看当前登入主机的用户终端信息。
该命令的效果图如下:
last命令详解
last命令,查看所有系统的登录记录。
该命令的效果图如下:
history命令详解
history命令,显示近1000条历史执行过的命令。
该命令的效果图如下:
history命令还有很多玩法。例如键入命令”!41”,shell会执行history的序号对应命令—docker images
工作目录切换命令
pwd命令详解
pwd命令,用于显示用户当前所处的工作目录。
cd命令详解
cd命令,用于切换工作路径。
ls命令详解
ls命令,用于显示目录中的文件信息。加上“-a”参数可以看到全部文件(包括隐藏文件),加上“-l”参数可以查看文件的属性、大小等详细信息。
文本文件编辑命令
cat命令详解
cat命令,用于查看内容较少的纯文本文件。加上“-n”参数可以看到对应的行号。
# 查看防火墙配置,并显示行号
cat /etc/firewalld/firewalld.conf -n
该命令的效果图如下:
more命令详解
more命令,用于查看内容较多的纯文本文件。它会在最下方显示阅读进度的百分比,还可以使用空格或Enter进行翻页。
head命令详解
head命令,用于查看纯文本文档的前N行。
# 只查看firewalld.conf文本的前20行内容
head -n 20 /etc/firewalld/firewalld.conf
该命令的效果图如下:
tail命令详解
tail命令,用于查看纯文本文档的后N行。用法与head命令一样。加上“-f”参数,可以持续刷新内容。
tr命令
tr命令,用于替换纯文本文档的部分内容。
(将文件中的字母全转化成大写)用法如下图所示:
wc命令详解
wc命令,用于统计指定文本的行数、字数、字节数。
参数 | 作用 |
---|---|
-l | 只显示行数 |
-w | 只显示单词数 |
-c | 只显示字节数 |
该命令的效果图如下:
stat命令详解
stat命令,用于查看文件的具体存储信息和时间等信息。
该命令的效果图如下:
cut命令详解
cut命令,按列提取文本中的信息。这里需要两个参数,-d后面的是列与列直接的间隔符(:),-f后面的是提取第几列(1)
# 提取文本/etc/passwd中以:为间隔,第一列的文本信息
cut -d: -f1 /etc/passwd
该命令的效果图如下:
diff命令详解
diff命令,比较两个文本。
# 查看test文本的内容
cat -n test
# 查看test_cp文本的内容
cat -n test_cp
# diff命令比较两个文本
diff test test_cp
# diff命令判断两个文本是否相同(参数:--brief)
diff --brief test test_cp
# 基于文本test,文本test_cp在内容上有哪些不同(参数:-c)
diff -c test test_cp
该命令的效果图如下:
文件目录管理命令
touch命令详解
touch命令,用于创建空白文件或设置文件的时间。
# 查看test中的命令
cat -n test
# 查看test的详情(上次更改时间为20180403 15:53)
ls -l test
# 在test中加一句话:(i will learn how to change the time of the file)
echo "i will learn how to change the time of the file" >> test
# 查看修改后test的详情(时间为20180403 15:55)
ls -l test
# 修改test的上次更改时间为(20180403 15:53)
touch -d "20180403 15:53" test
# 发现test中的上次修改时间已经修改成功
ls -l test
# 查看发现test中内容已经更改
cat -n test
# 但test中显示的时间并不符合实际情况!!!
ls -l test
该命令的效果图如下:
mkdir命令详解
mkdir命令,用于创建空白的目录。
cp命令详解
cp命令,用于复制文件或目录。
参数 | 作用 |
---|---|
-p | 保留原始文件的属性 |
-d | 若对象为“链接文件”,则保留该“链接文件”的属性 |
-r | 递归持续复制(用于目录) |
-i | 若目标文件存在则询问是否覆盖 |
-a | 相当于-pdr(p、d、r 为上述参数) |
mv命令详解
mv命令,用于剪切文件或将文件重命名。
rm命令详解
rm命令,用于删除文件或目录。“-f”参数可以强制删除,“-r”参数才能删除目录。
dd命令详解
dd命令,用于按照指定大小和个数的数据块来复制文件或转换文件。
参数 | 作用 |
---|---|
if | 输入的文件名称 |
of | 输出的文件名称 |
bs | 设置每个“块”的大小 |
count | 设置要复制“块”的个数 |
# 用dd命令从/dev/zero设备文件中取出一个大小为560MB的数据块,然后保存成名为560_file的文件
dd if=/dev/zero of=560_file count=1 bs=560M
该命令的效果图如下:
file命令详解
file命令,用于查看文件的类型。
打包压缩与搜索命令
tar命令详解
tar命令,用于对文件进行打包压缩或解压。
参数 | 作用 |
---|---|
-c | 创建压缩文件 |
-x | 解开压缩文件 |
-t | 查看压缩包内有哪些文件 |
-z | 用Gzip压缩或解压 |
-j | 用bzip2压缩或解压 |
-v | 显示压缩或解压的过程 |
-f | 目标文件名 |
-p | 保留原始的权限与属性 |
-P | 使用绝对路径来压缩 |
-C | 指定解压到的目录) |
常用的是:(tar -czvf 压缩包名称.tar.gz 要打包的目录)进行打包压缩;
(“tar -xzvf 压缩包名称.tar.gz”)进行解压
grep命令详解
grep命令,用于在文本中执行关键词搜索,并显示匹配的结果。grep命令是用途最广泛的命令,有很多参数,但常用的如下(需要的时候,可以通过man命令去找相应的参数)。
参数 | 作用 |
---|---|
-i | 忽略大小写 |
-n | 显示行号 |
-v | 反向选择 — 仅列出没有“关键词”的行 |
查询跟docker相关的进程
ps aux | grep docker
该命名的效果图如下:
find命令详解
find命令,用于按照指定条件来查找文件。
参数 | 作用 |
---|---|
-name | 匹配名称 |
-perm | 匹配权限 |
-ctime -n +n | 匹配修改文件权限的时间(-n指n天以内,+n指n天以前) |
-size | 匹配文件的大小(+50KB为查找超过50KB的文件) |
-prune | 忽略某个目录 |
-exec …… {}\; | 进一步处理搜索结果的命令 |
# 从根目录开始,查询名为bi的文件,并打印在工作台
find / -name bi -print
该命令的效果图如下: