基本Linux命令(上)
Linux的难点在于我们需要记忆大量的命令及参数。如有问题请批评指正,在下感激不尽。
Linux的命令都是在shell下使用的,也就是我们常说的终端(Terminal)。包括红帽在内的许多主流Linux系统默认使用的是终端是bash。我们通过终端可以享受到很多的便捷。并且学习环境是管理员账户,所以我们在学习的时候要记得登录root账户,在VMware的安装与部署Linux系统中的临结尾位置有登录root账户时的操作。
1、查看帮助命令:man
在正式开始之前要先知道遇到不了解的命令要怎么去了解它,帮助我们在学习中解决命令和参数的问题。
命令格式:命令名称 [命令参数] [命令对象]
注:命令名称、命令参数、命令对象之间用空格隔开,中括号内的为可选内容。
命令有长短格式之分,绝大部分命令参数都有相应的短格式。
格式 | 举例 |
---|---|
长格式 | man --help |
短格式 | man -h |
当遇到不知道这个命令是干用嘛的时候,便可以用 man 想要查询的命令
来查询想要查询的命令相关信息。例如我要查询man命令本身:man man
对于有大量文字描述的man文档来说,一个屏幕根本放不开内容相当丰富的内容。所以我们使用一些键位来切换
按键 | 用途 |
---|---|
空格键 | 向下翻页 |
Page down | 向下翻页 |
Page up | 向上翻页 |
home | 前往首页 |
end | 前往尾页 |
/ | 从上至下搜索某个关键词,例如“/Linux” |
? | 从下至上搜索某个关键词,例如“?Linux” |
q | 退出文档 |
man命令的说明文档是按照一定的结构书写,所以要明白每一个结构书写的是那部分内容。
结构名称 | 代表意义 |
---|---|
NAME | 命令的名称 |
SYNOPSIS | 命令参数的大致使用方法 |
DESCRIPTION | 介绍说明 |
EXAMPLES | 演示(附带简单说明) |
OVERVIEW | 概述 |
EFAULTS | 默认的功能 |
OPTIONS | 具体的可用选项(带介绍) |
ENVIRONMENT | 环境变量 |
FILES | 用到的文件 |
SEE ALSO | 相关的资料 |
HISTORY | 维护历史与联系方式 |
下面开始正式的学习Linux系统中的命令。
2、常用系统工作命令
2.1 echo命令
echo命令用于在终端输出字符串或变量提取后的值,格式为:echo [字符串 | $变量]
例如将百度的网址输出:echo www.baidu.com
,回车之后将输出www.baidu.com
在终端中
又例如提取SHELL的值,并将其打印在屏幕上:echo $SHELL
,结果为:/bin/bash
echo还能提取结果输入到文件中以及其他用途, 我将在后面的文章中再书写详细内容。
2.2 date命令
date命令用于显示及设置系统的时间或日期,格式为“date [选项] [+指定的格式]”
参数 | 作用 |
---|---|
%t | 跳格[Tab键] |
%H | 小时(24小时制) |
%I | 小时(12小时制) |
%M | 分钟 |
%S | 秒 |
%j | 今年中的第几天 |
%D | 短格式 月/日/年 |
如果我们仅仅使用date
命令而不使用参数,将按照星期 月 日 时间 CST 年
的格式输出。
注:CST可视为中国的标准时间(先这样认为就好,想知道全部信息的可以百度一下)。
按照“年-月-日 小时:分钟:秒”的格式输出当前系统时间:date "+%Y-%m-%d %H:%M:%S"
注意,月份和分钟的英文首字母都是m,为了区分Linux使用m作为月份的参数,M作为分钟的参数。
将系统时间设置为某个时间:date -s "20200509 11:00:00"
,设置完毕后可以再次使用date
查看是否修改。
参数%j用来查看今天是这一年中的第几天,可以用来区分备份时间的新旧,即数字越大表示越靠近当前时间。date "+%j"
2.3 reboot命令
reboot用于重启系统,其格式为:reboot
2.4 poweroff命令
poweroff用于关闭系统,其格式为:poweroff
reboot命令与poweroff命令都会涉及硬件资源的管理权限,因此默认只能是root用户才能使用。
2.5 wget命令
wget命令用于在终端中下载网络文件,格式为:wget [参数] 下载地址
根据我的上一篇文章,是没有设置网络的,所以在测试wget命令时我已经将我的网络进行了设置,后面会再次提到wget内容。
参数 | 举例 |
---|---|
-b | 后台下载模式 |
-P | 下载到指定目录 |
-t | 最大尝试次数 |
-c | 断点续传 |
-p | 下载页面内所有资源,包括图片、视频等 |
-r | 递归下载 |
我以刘遄老师的《Linux就该这么学》为例,下载Linuxprobe的pdf文档:wget http://www.linuxprobe.com/docs/linuxprobe.pdf
通过链接可以发现我们必须使用文件的完整下载路径。
接下来使用wget命令递归下载刘遄老师的Linuxprobe网站wget -r -p http://www.linuxprobe.com
,下载完成后会将下载的文件保存到当前目录下新建的相应文件夹内。因为刘遄老师的网站内有很多的内容,所以需要下载的文件非常多,需要等待一段时间
仅截取开头部分,下载的文件过于庞大,感兴趣的可以试试需要多久才能下载完成。
2.6 ps命令
ps命令用于查看系统中的进程状态,格式为:ps [参数]
参数 | 作用 |
---|---|
-a | 显示所有进程 |
-u | 用户以及其他详细信息 |
-x | 显示没有控制终端的进程 |
实际上ps -aux显示的内容非常之多,主要是来自与-x显示的信息
Linux的进程有五种状态
R(运行):进程正在运行或者在运行队列中等待。
S(中断):进程处于休眠中,当某个条件形成后或者接收到信号时,则脱离该状态。
D(不可中断):进程不响应系统异步信号,即便使用kill命令也无法将其中断。
Z(僵死):进程已经停止,但进程描述符依然存在,直到父进程调用wait4()系统函数后将其释放。
T(停止):进程收到停止信号后停止运行。
2.7 top命令
top命令用于动态的监视进程活动与系统负载信息,其格式为top
。按q即可退出命令。
第一行除去命令本身其他信息分别为:系统时间(12:34:46) 开机时长(up 1:36) 终端数(2 users) 系统负载(0.00, 0.01, 0.05 三个数值分别代表一分钟、十分钟、十五分钟的系统负载平均值,数值越小意味着负载越低)
系统负载为0是理想状态(关机状态),系统负载为1是满负载状态(100%负载,实际意义上的理想状态),5(睡不着觉,经验值,有系统崩溃的风险,但不绝对。当数值很高就要注意cpu是否还能满足系统需求)。
%CPU
中只考虑两个参数,一个是us,当前cpu使用率;另一个是id,当前cpu空闲率。其他参数将在之后出现。
2.8 pidof命令
pidof命令用于查询某个指定服务进程的pid值,其格式为pidof [参数] [服务名称]
。
每个服务的pid值都是唯一的,因此可以通过不同pid值区分不同的进程。例如用pidof命令查询sshd服务进程的pid:pidof sshd
。
2.9 kill命令
kill命令用于终止某个指定pid的服务进程,格式为:kill [参数] [进程pid值]
。
上一个命令已经得到sshd的pid值,使用kill命令结束sshd服务:kill 1949
。
2.10 killall命令
killall命令用于终止某个指定名称的服务所对应的全部进程,格式为:killall [参数] [服务名称]
。
除了killall以外还可以用初始化进程工具systemd对服务进行管理:systemctl stop sshd
。
3、系统状态检测命令
3.1 ifconfig命令
ifconfig命令用于获取网卡配置于网络状态等信息,格式为:ifconfig [网络设备] [参数]
。
eno16777728:网卡名称,数字可变化。
inet:ip地址。
ether:mac地址。
RX:收到的数据包的数量及累计流量,重启系统后重置。
TX:发送的数据包的数量及累计流量,重启系统后重置。
3.2 uname命令
uname命令用于查看系统内核于系统版本等信息,格式为:uname [参数]
。
uname -a
可以获取完整的系统内核名称、主机名、内核版本、节点名、系统时间、硬件名称、硬件平台、处理器类型以及操作系统名称等信息。
3.3 uptime命令
uptime命令用来查看系统负载信息,格式为:uptime
。
uptime命令是top命令的简化版(个人认为),但是我比较喜欢uptime。
uptime命令仅显示top命令的第一行信息。
3.4 free命令
free命令用于显示当前系统中内存的使用量信息,格式为:free [参数]
。
Linux在作为服务器运行时需要时刻关注内存的使用量,在使用free命令时结合-h参数可以人性化的显示出各项信息。
上面我是用-h人性化显示,下面没有用人性化显示,上面的更容易被我们所接受。
3.5 who命令
who命令用于查看当前登入主机的用户终端信息,格式为:who [参数]
。
who命令打印的第二列内容中:0
是图形化界面。 pst/0
是我们当前使用的终端,开启的终端数量越多这里显示的越多。他的左侧是登录的用户名,右侧是登录到系统的时间。
3.6 last命令
last命令用于查看所有系统的登录记录,其格式为:last [参数]
。
由于通过命令对信息进行修改所以last命令所记录的信息仅供参考,不太可信。
3.7 history命令
history命令用于显示历史执行过的命令,格式为:history [参数]
。
使用history可以看到使用过的历史命令,history仅保存最近的1000条历史命令。每一条命令前面都有一个数字,它不仅代表第几个被执行的命令,还可以通过!数字
来快捷使用之前的命令。历史命令记录在用户家目录的.bash_history文件中。可以通过cat或者more命令查看它。使用-c参数清空历史记录:history -c
。
3.8 sosreposrt命令
sosreport命令用于收集系统配置信息及框架结构信息并输出诊断文档,格式为sosreport
。
该命令一般用于当系统出现问题时收集系统信息并将其提交给相应的技术支持人员。
4、工作目录切换命令
4.1 pwd命令
pwd命令用于显示用户当前所在工作目录,格式为pwd [选项]
。
4.2 cd命令
cd命令用于切换工作路径,格式为:cd [路径名称]
。
cd命令是我们最常用到的一个命令了。
举例 | 作用 |
---|---|
cd ~ | 切换到当前用户的家目录 |
cd | 效果同cd ~ |
cd - | 返回到上一次所在目录,仅一次 |
cd . | 进入当前目录 |
cd .. | 进入本目录的上一级目录 |
cd ~username | q |
使用cd命令进入home目录:cd /home
。
使用cd命令进入bin目录:cd /bin
。
使用cd命令返回home目录:cd -
。
使用cd命令进入用户家目录:cd ~
。
4.3 ls命令
ls命令用于显示目录中的文件信息,其格式为:ls [选项] [文件]
。
参数 | 作用 |
---|---|
-a | 显示全部文件及目录(包括隐藏文件) |
-l | 显示文件及目录的详细属性 |
-d | 显示文件夹的详细属性 |
-h | 人性化显示文件大小 |
在Linux命令中会出现很多多个参数相结合的现象,比如我想看隐藏文件的详细信息,单个参数无法满足需求,我需要使用-l和-a的结合,可以写成ls -la
或ls -al
或者时ls -a -l
或ls -l -a
的形式。短格式可以合并,长格式无法合并。
查看home目录的详细信息:ls -ld /home
。
5、文本文件编辑命令
5.1 cat命令
cat命令用于查看纯文本文件(适用于内容较少的文件),格式为:cat [选项][文件]
。
显示行号查看文件内容:cat -n
5.2 more命令
more命令用于查看纯文本文件(适用于内容较多的文件),格式为:more [选项] [文件]
。
遇到不知道文本内容是多是少的情况下直接使用more命令查看即可。
more命令查看文件,时回车查看下一行,空格翻页。
5.3 head命令
head命令用于查看纯文本文档的前N行,格式为:head [选项] [文件]
。
假设文档的前20行是我们需要的信息,那么我们使用head命令查看:hred -n 20 [文件]
。
5.4 tail命令
tail命令用于查看纯文本文档的后N行或者持续刷新内容,格式为:tail [选项] [文件]
。
同上一个命令,需要后20行的信息:tail -n 20 [文件]
。
当我们想要查看最新的日志文件时:tail -f [文件]
。
不结束任务,开启一个新的终端使用命令后对比使用命令前后的变化。
5.5 tr命令
tr命令用于替换文本文件中的字符,格式为:tr [原始字符] [目标字符]
。
例如我要将某个文件的所有小写字母换为大写字母:cat [文件] | tr [a-z] [A-Z]
。cat和tr中间的"|"是管道符,将在后面在进行详细书写。
管道符的用途相当于前面的命令处理完成后交给后面的命令再进行一次处理再输出结果。
5.6 wc命令
wc命令用于统计指定文本的行数、字数、字节数,格式为:wc [参数][文本]
。
参数 | 作用 |
---|---|
-l | 只显示行数 |
-w | 只显示单词数 |
-c | 只显示字节数 |
现在我想要知道当前系统中有多少个用户,可以用wc命令查询:wc -l /etc/passwd
。
5.7 stat命令
stat命令用于查看文件的具体存储信息和时间等信息,格式为:stat [文件]
。
文件的信息包含三个时间:Access、Modify、Change。
Access:访问时间,最后一次查看文件内容的时间。
Modify:修改时间,最后一次修改文件内容的时间。
Change:更改时间,最后一次修改文件属性的时间。
5.8 cut命令
cut命令用于按“列”提取文本字符,格式为:cut [参数] [文本]
。
passwd文件中有相当多的信息,但是我仅仅是需要知道用户的名称就好,所以我们用cut命令进行提取:cut -d : -f1 /etc/passwd
。
-d参数用来设置间隔符,passwd文件用“:”来分隔各个信息,所以用“:”作为分隔符。用-f参数设置需要提取的列数。
5.9 diff命令
diff命令哦那个与比较多个文本文件的差异,格式为:diff [参数] [文件]
。
diff命令可以使用--brief判断文件是否相同,使用-c来查看不同的位置。
6、文件目录管理命令
6.1 touch命令
touch命令用于创建空白文件或者设置文件的时间,格式为:touch [选项] [文件]
。
创建文件:touch 文件名
。
参数 | 作用 |
---|---|
-a | 修改“读取时间” |
-m | 修改“修改时间” |
-d | -am |
创建一个文件touch 文件名
,修改文件的时间touch -d "时间"
。
6.2 mkdir命令
mkdir命令用于创建空白的目录,格式为:mkdir [选项] 目录
。
使用mkdir命令创建目录:mkdir 目录名
。
使用mkdir命令创建嵌套目录:mkdir -p 目录1/目录2/目录3……
。
6.3 cp命令
cp命令用于复制文件或目录,格式为:cp [选项] 源文件 目标文件
。
复制操作的3中情况
1.如果目标文件是目录,则将源文件复制到该目录中
2.如果目标文也是普通目录,则询问是否覆盖该文件
3.如果目标文件不存在,则执行正常的复制操作
参数 | 举例 |
---|---|
-p | 保留原始文件的属性 |
-d | 如果目标文件为链接文件,则保留该链接文件的属性 |
-r | 递归持续复制(用于目录) |
-i | 若目标文件存在则询问是否覆盖 |
-a | 相当于-pdri |
6.4 mv命令
mv命令用于剪切或者重命名文件,格式为:mv [选项] 源文件 [目标路径|目标文件名]
。
6.5 rm命令
rm命令用于删除文件或目录,格式为:rm [选项] 文件
。
rm命令在删除文件时会询问受否删除,可以加上-f参数强制删除;如果想删除一个目录,需要加上参数-r。
删除之前创建的demo1,demo1内部有目录有文件,所以使用rm -rf demo1
来删除。
6.6 dd命令
dd命令用于按照指定大小和个数的数据块来复制文件或转换文件,格式为:dd [参数]
。
参数 | 作用 |
---|---|
if | 输入的文件名称 |
of | 输出的文件名称 |
bs | 设置每个“块”的大小 |
count | 设置要复制“块”的个数 |
从/dev/zero中取出一个10MB大小的数据块,然后保存为10_file:dd if=/dev/zero of=10_file count=1 bs=10M
。
使用dd命令可以直接将文件压缩为iso格式的镜像文件。
6.7 file 命令
file命令用于查看文件的类型,格式为:file 文件名
。
基本Linux命令(上)的更多相关文章
- 再见Xshell、Xftp!Python执行Linux命令、上传下载远程文件
相信大家应该都接触过Linux操作系统(Ubuntu.Centos等),那么在使用的Linux操作系统需要使用一些远程ssh工具,尤其是公网服务器. 常用的ssh工具主要有:Xshell.MobaXt ...
- Linux服务器上监控网络带宽的18个常用命令
[51CTO精选译文]本文介绍了一些可以用来监控网络使用情况的Linux命令行工具.这些工具可以监控通过网络接口传输的数据,并测量目前哪些数据所传输的速度.入站流量和出站流量分开来显示. 一些命令可以 ...
- 你知道哪些linux命令,能把文件上传到远程linux服务器
多数情况下 企业的服务基本都是部署在linux服务器 那对于测试同学,必须掌握基本的linux命令 至少要知道怎么部署整体环境 部署过程中,经常需要的操作,是向服务器上传部署包 你一般都是 ...
- 利用ganymed-ssh2远程执行其它Linux机器上的shell命令
实际应用中,有时候需要从web管理界面上,远程去启动其它linux主机上的程序,利用ssh协议可以方便的满足这一需求.事实上hadoop架构中,从nn上启动dn时,就是利用了免密码ssh登录.gany ...
- Linux服务器上监控网络带宽的18个常用命令(转)
本文介绍了一些可以用来监控网络使用情况的Linux命令行工具.这些工具可以监控通过网络接口传输的数据,并测量目前哪些数据所传输的速度.入站流量和出站流量分开来显示. 一些命令可以显示单个进程所使用的带 ...
- 借助XShell,使用linux命令sz可以很方便的将服务器上的文件下载到本地,使用rz命令则是把本地文件上传到服务器。
rz 是将window文件传到linux服务器上,到执行rz命令的目录 sz 可以将linux文件发送到windows上,可以选择目录. https://www.google.com/ncr 登录一下 ...
- linux命令行模式下对FTP服务器进行文件上传下载
参考源:点击这里查看 1. 连接ftp服务器 格式:ftp [hostname| ip-address]a)在linux命令行下输入: ftp 192.168.1.1 b)服务器询问你用户名和密码 ...
- Linux系统上的命令使用方法
许多windows非常熟悉ipconfig命令行工具,它被用来获取网络接口配置信息并对此进行修改.Linux系统拥有一个类似的工具,也就是ifconfig(interfaces config).通常需 ...
- Linux操作系统上要慎用的6个命令及防范方法
Linux操作系统上要慎用的6个命令及防范方法 基于Linux平台工作的童鞋都知道Linux命令行使用起来非常高效和快捷,但有时候也很危险,尤其是在你不确定你自己在正在做什么时候(别笑,别以为自己真的 ...
- Linux服务器上监控网络带宽的18个常用命令 zz
Linux服务器上监控网络带宽的18个常用命令 本文介绍了一些可以用来监控网络使用情况的Linux命令行工具.这些工具可以监控通过网络接口传输的数据,并测量目前哪些数据所传输的速度.入站流量和出站流量 ...
随机推荐
- 端口扫描工具nmap的常用参数讲解
转载请注明出处:https://www.cnblogs.com/wangyanzhong123/p/12576406.html nmap下载与安装 这个没什么好说的.很简单官网上下载就ok了,需要注意 ...
- ES5与ES6 this 指向详细解析(箭头函数)
首先要明白箭头函数的作用: 箭头函数除了让函数的书写变得很简洁,可读性很好外:最大的优点是解决了this执行环境所造成的一些问题.比如:解决了匿名函数this指向的问题(匿名函数的执行环境具有全局性) ...
- Extjs简单的form+grid组合
采用的是Extjs4.2版本 http://localhost:49999/GridPanel/Index 该链接是本地连接,只是方便自己访问,读者无法正常访问. <script src=&qu ...
- 数据结构与算法--二分搜索(binary search)
前言 之前面试准备秋招,重新翻起了<编程之美>.在第三章节看到了一道关于二分搜索的讨论,觉得有许多细节是自己之前也没怎么特别注意地方,比如二分搜索的初始条件,转化.终止条件之类的. 问题 ...
- Docker常用命令--ps/attach/run
ps查看container 若查看正在运行的container docker ps 查看所有的container docker ps -a run启动容器 第一次启动container docker ...
- Python - 翻译Talk Python To Me (和我聊Python) 播客
“和我聊Python”是一个美国的聊天播客,英文名Talk Python To Me,类似于喜马拉雅的音频课程节目,只不过这个主题是编程语言Python.该节目从2015年的节目到现在,已经超过256 ...
- IN612 IN612L蓝牙5.0 SoC芯片替换NRF52832/NRF52840
IN612L是美国公司INPLAY的SOC产品系列之一,具有多模协同2.4G无线协议栈,支持2.4G私有协议栈以及蓝牙5.0全协议栈的SOC芯片.如2mbps高数据速率模式,125kbps/500kb ...
- ApiPost V3创事记:一个痛并快乐着的创业故事
前言 无论是对于国家,还是对于我们个人,2020年4月,是注定是一个不同往年的4月.一场突如起来的疫情打破了我们原来的生活曲线,让我们知道了什么是苦难,什么是团结,什么是坚持,什么是胜利. 一.大幕开 ...
- 干货最实用的 Python 多线程代码框架
前言 很多地方都要用到多线程,这是我经常用的多线程代码,放在博客园记录下. 代码 from multiprocessing.pool import ThreadPool thread = 10 ite ...
- vector和数组
对于之前没有接触过vector的初学者来说,经常会把vector和数组弄混,因为二者在用的时候比较像,下面就详细的来介绍一下vector和数组的区别. (1) 首先,vector类似于数组,有一段连续 ...