Linux就该这么学【Part two:新手必须掌握的Linux命令】

【2.1强大好用的Shell】

  • 用户与Linux系统的交互
    在这里插入图片描述

Shell的妙处

  • 通过上下方向键来调取过往执行过的Linux命令;
  • 命令或参数仅需输入前几位就可以用Tab键补全;
  • 具有强大的批处理脚本;
  • 具有实用的环境变量功能。

【2.2 执行查看帮助命令】

命令名称 命令参数 命令对象之间请用空格键分隔
长格式 man --help
短格式 man -h

打开终端输入man man命令来查看man命令自身的帮助信息
在这里插入图片描述

在这里插入图片描述

  • man命令中常用按键以及用途
  1. 空格键 :向下翻一页
  2. PaGe down : 向下翻一页
  3. PaGe up : 向上翻一页
  4. home : 直接前往首页
  5. end : 直接前往尾页
  6. / :从上至下搜索某个关键词,如“/linux”
  7. ? : 从下至上搜索某个关键词,如“?linux”
  8. n : 定位到下一个搜索到的关键词
  9. N : 定位到上一个搜索到的关键词
  10. q : 退出帮助文档
  • man命令帮助信息的结构以及意义
  1. NAME :命令的名称
  2. SYNOPSIS :参数的大致使用方法
  3. DESCRIPTION :介绍说明
  4. EXAMPLES :演示(附带简单说明)
  5. OVERVIEW :概述
  6. DEFAULTS :默认的功能
  7. OPTIONS :具体的可用选项(带介绍)
  8. ENVIRONMENT :环境变量
  9. FILES :用到的文件
  10. SEE ALSO :相关的资料
  11. HISTORY : 维护历史与联系方式

【2.3 常用的系统工作命令】

1 . echo 命令 用于在终端输出字符串或变量提取后的值

在这里插入图片描述

用$变量的方式提取变量SHELL的值 并将其输出到屏幕上
在这里插入图片描述
可见终端为Bash(Bourne-Again Shell )解释器

2 . date 命令

%H 小时(00…23)
%I 小时(01…12)
%k 小时(0…23)
%l 小时(1…12)
%M 分(00…59)
%p 显示出AM或PM
%r 时间(hh:mm:ss AM或PM),12小时
%s 从1970年1月1日00:00:00到目前经历的秒数
%S 秒(00…59)
%T 时间(24小时制)(hh:mm:ss)
%X 显示时间的格式(%H:%M:%S)
%Z 时区 日期域
%a 星期几的简称( Sun…Sat)
%A 星期几的全称( Sunday…Saturday)
%b 月的简称(Jan…Dec)
%B 月的全称(January…December)
%c 日期和时间( Mon Nov 8 14:12:46 CST 1999)
%d 一个月的第几天(01…31)
%D 日期(mm/dd/yy)
%h 和%b选项相同
%j 一年的第几天(001…366)
%m 月(01…12)
%w 一个星期的第几天(0代表星期天)
%W 一年的第几个星期(00…53,星期一为第一天)
%x 显示日期的格式(mm/dd/yy)
%y 年的最后两个数字( 1999则是99)
%Y 年(例如:1970,1996等)

默认date命令
在这里插入图片描述

按照“年-月-日 小时:分钟:秒 ”

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

在这里插入图片描述

将系统的当前时间设置为某一时间:2017年8月6日3点26分 的date命令:

date -s "20170806 15:26:00"

在这里插入图片描述

切换root才可允许更改操作
在这里插入图片描述

改时间成功!!
怎么改回当前时间呢?

clock -W

在这里插入图片描述
在这里插入图片描述

3 . reboot命令:用于重启系统(root管理员可重启)
# reboot

在这里插入图片描述

4 . poweroff 命令:用于关闭系统(root管理员可重启)
# poweroff

在这里插入图片描述

5 . wget 命令:用于在终端中下载网络文件 “wget [参数] 下载地址”
  • wget命令的参数以及作用
  1. 后台下载模式 -b
  2. 下载到指定目录 -P
  3. 最大尝试次数 -t
  4. 断点续传 -c
  5. 下载页面内所有资源,包括图片、视频等-p
  6. 递归下载 -r

下载

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

在这里插入图片描述

先解决错误wget: unable to resolve host address

更改了「vi /etc/resolv.conf 和 vi /etc/sysconfig/network-scripts/ifcfg-eth0 」
记录便于以后查错!!

哭辽 全网搜索后竟然是因为没联网… 对比之前的图片 wired打开了

在这里插入图片描述

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

6 .ps命令:用于查看系统中的进程状态 格式为“ps [参数]”

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

在这里插入图片描述

    R(运行):进程正在运行或在运行队列中等待。
    S(中断):进程处于休眠中,当某个条件形成后或者接收到信号时,则脱离该   状态。
    D(不可中断):进程不响应系统异步信号,即便用kill命令也不能将其中断。
    Z(僵死):进程已经终止,但进程描述符依然存在, 直到父进程调用wait4()系统函数后将进程释放。
    T(停止):进程收到停止信号后停止运行。

在这里插入图片描述

在这里插入图片描述

**7 . top命令 : 用于动态地监视进程活动与系统负载等信息 **
top

(在这里提示一下 结束命令 键入q即可或按ctrl c)

在这里插入图片描述

前5行为系统整体的统计信息

第1行:系统时间、运行时间、登录终端数、系统负载(三个数值分别为1分钟、5分钟、15分钟内的平均值,数值越小意味着负载越低)。
第2行:进程总数、运行中的进程数、睡眠中的进程数、停止的进程数、僵死的进程数。
第3行:用户占用资源百分比、系统内核占用资源百分比、改变过优先级的进程资源百分比、空闲的资源百分比等。其中数据均为CPU数据并以百分比格式显示,例如“97.1 id”意味着![有](https://img-blog.csdnimg.cn/20181109154848380.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1NlYW5ZaTE3OA==,size_16,color_FFFFFF,t_70)97.1%的CPU处理器资源处于空闲。
第4行:物理内存总量、内存使用量、内存空闲量、作为内核缓存的内存量。
第5行:虚拟内存总量、虚拟内存使用量、虚拟内存空闲量、已被提前加载的内存量。
8 . pidof 命令 : 用于查询某个指定服务进程的PID值 “pidof [参数] [服务名称]”

每个进程的进程号码值(PID)是唯一的,因此可以通过PID来区分不同的进程。例如,可以使用如下命令来查询本机上sshd服务程序的PID:

pidof sshd

在这里插入图片描述

**9.kill命令用于终止某个指定PID的服务进程 “kill [参数] [进程PID]” **

使用kill命令把上面用pidof命令查询到的PID所代表的进程终止掉

kill 1588

这种操作的效果等同于强制停止sshd服务。

在这里插入图片描述

10 .killall命令:终止某个指定名称的服务所对应的全部进程 “killall [参数] [服务名称]”

killall命令来批量结束某个服务程序带有的全部进程

在这里插入图片描述

【2.4 系统状态检测命令】

1.ifconfig命令 :获取网卡配置与网络状态等信息 “ifconfig [网络设备] [参数]”

ifconfig命令 查看本机当前的网卡配置与网络状态等信息

网卡名称 
inet参数后面的IP地址 
ether参数后面的网卡物理地址(又称为MAC地址)  
以及RX、TX的接收数据包与发送数据包的个数及累计流量

在这里插入图片描述

2.uname命令:用于查看系统内核与系统版本等信息 “uname [-a]”
-a参数来完整地查看当前系统的内核名称、主机名、内核发行版本、 节点名、系统时间、硬件名称、硬件平台、处理器类型以及操作系统名称等信息

在这里插入图片描述

如果要查看当前系统版本的详细信息 则需要查看redhat-release文件

cat /etc/redhat-release

在这里插入图片描述

3.uptime命令:查看系统的负载信息 uptime

显示当前系统时间、系统已运行时间、启用终端数量以及平均负载值等信息

平均负载值指的是系统在最近1分钟、5分钟、15分钟内的压力情况
负载值越低越好 尽量不要长期超过1 在生产环境中不要超过5
在这里插入图片描述

4.free命令: 显示当前系统中内存的使用量信息 “free [-h]”

-h参数以更人性化的方式输出当前内存的实时使用量信息

在这里插入图片描述

在这里插入图片描述

5.who命令: 查看当前登入主机的用户终端信息 “who [参数]”

显示出所有正在登录本机的用户的名称以及他们正在开启的终端信息
在这里插入图片描述

在这里插入图片描述

6.last命令:查看所有系统的登录记录 “last [参数]”

由于这些信息都是以日志文件的形式保存在系统中
因此黑客可以很容易地对内容进行篡改
千万不要单纯以该命令的输出信息而判断系统有无被恶意入侵!

在这里插入图片描述

7.history命令:显示历史执行过的命令 “history [-c]”

可以自定义/etc/profile文件中的HISTSIZE变量值
在使用history命令时 如果使用-c参数则会清空所有的命令历史记录
还可以使用“!编码数字”的方式来重复执行某一次的命令

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

在这里插入图片描述

8 .sosreport命令 :收集系统配置及架构信息并输出诊断文档 sosreport

当Linux系统出现故障需要联系技术支持人员时
大多数时候都要先使用这个命令来简单收集系统的运行状态和服务配置信息
以便让技术支持人员能够远程解决一些小问题
亦或让他们能提前了解某些复杂问题
在这里插入图片描述

2.5 工作目录切换命令

1.pwd命令 :显示用户当前所处的工作目录 “pwd [选项]”
pwd

在这里插入图片描述

2.cd命令 :用于切换工作路径 “cd [目录名称]”

“cd -”命令返回到上一次所处的目录
“cd…”命令进入上级目录
“cd ~”命令切换到当前用户的home目录
“cd ~username”切换到其他用户的home目录

“cd 路径”的方式切换进/etc目录中:

在这里插入图片描述

3.ls命令 :目录中的文件信息 “ls [选项] [文件] ”

ls命令的“-a”参数看到全部文件(包括隐藏文件)
“-l”参数可以查看文件的属性、大小等详细信息
两个参数整合之后,再执行ls命令即可查看当前目录中的所有文件并输出这些文件的属性信息:

在这里插入图片描述

如果想要查看目录属性信息
则需要额外添加一个-d参数
在这里插入图片描述

2.6 文本文件编辑命令

1.cat命令 :查看纯文本文件(内容较少的) “cat [选项] [文件]”

【-n 显示行号】
在这里插入图片描述

2.more命令 : 查看纯文本文件(内容较多的) “more [选项]文件”

cat命令阅读长篇的文本内容
信息就会在屏幕上快速翻滚
内容很快翻篇
对于长篇的文本内容:more命令会在最下面使用百分比的形式来提示您已经阅读了多少内容(使用空格键或回车键向下翻页)在这里插入图片描述

在这里插入图片描述

3.head命令 : 查看纯文本文档的前N行 “head [选项] [文件]”
head -20 initial-setup-ks.cfg
head -n 20 initial-setup-ks.cfg

在这里插入图片描述

4.tail命令 : 查看纯文本文档的后N行或持续刷新内容 “tail [选项] [文件]”

在这里插入图片描述

tail命令可以持续刷新一个文件的内容
当想要实时查看最新日志文件时 命令格式为“tail -f 文件名”

在这里插入图片描述

5.tr命令 : 替换文本文件中的字符 “tr [原始字符] [目标字符]”

把某个文本内容中的英文全部替换为大写:

在这里插入图片描述

6.wc命令 : 统计指定文本的行数、字数、字节数 “wc [参数] 文本”

只显示行数-l
只显示单词数-w
只显示字节数-c

passwd是用于保存系统账户信息的文件
要统计当前系统中有多少个用户
在这里插入图片描述

7.stat命令 : 查看文件的具体存储信息和时间等信息 “stat 文件名称”

命令stat anaconda-ks.cfg会显示出文件的三种时间状态 :Access、Modify、Change

在这里插入图片描述

8.cut命令 : 用于按“列”提取文本字符 “cut [参数] 文本”

按基于“行”的方式来提取数据是比较简单的 只需要设置好要搜索的关键词即可
如果按列搜索,不仅要使用-f参数来设置需要看的列数,还需要使用-d参数来设置间隔符号

passwd在保存用户数据信息时,用户信息的每一项值之间是采用冒号来间隔的,接下来我们使用下述命令尝试提取出passwd文件中的用户名信息,即提取以冒号(:)为间隔符号的第一列内容:

在这里插入图片描述

9.diff命令 : 用于比较多个文本文件的差异 “diff [参数] 文件”

–brief参数来确认两个文件是否不同
-c参数来详细比较出多个文件的差异之处

使用cat命令分别查看diff_A.txt和diff_B.txt文件的内容,然后进行比较

在这里插入图片描述

2.7 文件目录管理命令

1.touch命令 : 用于创建空白文件或设置文件的时间 “touch [选项] [文件]”

touch linuxprobe命令可以创建出一个名为linuxprobe的空白文本文件

设置文件内容的修改时间(mtime)
文件权限或属性的更改时间(ctime)
文件的读取时间(atime)

仅修改“读取时间”(atime) -a
仅修改“修改时间”(mtime) -m
同时修改atime与mtime -d

ls命令查看一个文件的修改时间,然后修改这个文件,最后再通过touch命令把修改后的文件时间设置成修改之前的时间

在这里插入图片描述

2.mkdir命令 : 用于创建空白的目录 “mkdir [选项] 目录”

mkdir命令还可以结合-p参数来递归创建出具有嵌套叠层关系的文件目录

在这里插入图片描述

3.cp命令 : 用于复制文件或目录 “cp [选项] 源文件 目标文件”

如果目标文件是目录,则会把源文件复制到该目录中;
如果目标文件也是普通文件,则会询问是否要覆盖它;
如果目标文件不存在,则执行正常的复制操作。

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

touch创建一个名为install.log的普通空白文件
再将其复制为一份名为x.log的备份文件
ls命令查看目录中的文件:
在这里插入图片描述

4.mv命令 : 用于剪切文件或将文件重命名 “mv [选项] 源文件 [目标路径|目标文件名]”

剪切默认把源文件删除掉 只保留剪切后的文件
如果在同一个目录中对一个文件进行剪切操作 其实也就是对其进行重命名

在这里插入图片描述

5.rm命令 : 用于删除文件或目录 “rm [选项] 文件”

在Linux系统中删除文件时
系统会默认向您询问是否要执行删除操作
如果不想总是看到这种反复的确认信息
可在rm命令后跟上-f参数来强制删除
想要删除一个目录
需要在rm命令后面一个-r参数才可以
否则删除不掉

我们来尝试删除前面创建的install.log和linux.log文件:
在这里插入图片描述

6.dd命令 : 用于按照指定大小和个数的数据块来复制文件或转换文件 “dd [参数]”

dd也可以在复制过程中转换其中的数据
Linux系统中有一个名为/dev/zero的设备文件,每次在课堂上解释它时都充满哲学理论的色彩。因为这个文件不会占用系统存储空间,但却可以提供无穷无尽的数据,因此可以使用它作为dd命令的输入文件,来生成一个指定大小的文件。

if	输入的文件名称
of	输出的文件名称
bs	设置每个“块”的大小
count	设置要复制“块”的个数

例如我们可以用dd命令从/dev/zero设备文件中取出一个大小为560MB的数据块,然后保存成名为560_file的文件。在理解了这个命令后,以后就能随意创建任意大小的文件了:

在这里插入图片描述

在这里插入图片描述

7.file命令 : 用于查看文件的类型 “file 文件名”

在这里插入图片描述

2.8 打包压缩与搜索命令

1.tar命令 : 用于对文件进行打包压缩或解压 “tar [选项] [文件]”

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

在这里插入图片描述

在这里插入图片描述

2.grep命令 : 用于在文本中执行关键词搜索 并显示匹配的结果 “grep [选项] [文件]”

将可执行文件(binary)当作文本文件(text)来搜索 -b
仅显示找到的行数 -c
忽略大小写 -i
显示搜索到信息的行号 -n
参数用于反选信息(即没有包含关键词的所有信息行) -v

在Linux系统中,/etc/passwd文件是保存着所有的用户信息,而一旦用户的登录终端被设置成/sbin/nologin,则不再允许登录系统,因此可以使用grep命令来查找出当前系统中不允许登录系统的所有用户信息:

在这里插入图片描述

3.find命令 : 用于按照指定条件来查找文件 “find [查找路径] 寻找条件 操作”

匹配名称 -name
匹配权限(mode为完全匹配,-mode为包含即可) -perm
匹配所有者 -user
匹配所有组 -group
匹配修改内容的时间(-n指n天以内,+n指n天以前) -mtime -n +n
匹配访问文件的时间(-n指n天以内,+n指n天以前)-atime -n +n
匹配修改文件权限的时间(-n指n天以内,+n指n天以前) -ctime -n +n
匹配无所有者的文件 -nouser
匹配无所有组的文件 -nogroup
匹配比文件f1新但比f2旧的文件 -newer f1 !f2
匹配文件类型(后面的字幕字母依次表示块设备、目录、字符设备、管道、链接文件、文本文件) --type b/d/c/p/l/f
匹配文件的大小(+50KB为查找超过50KB的文件,而-50KB为查找小于50KB的文件) -size
忽略某个目录 -prune

根据文件系统层次标准(Filesystem Hierarchy Standard)协议,Linux系统中的配置文件会保存到/etc目录中
如果要想获取到该目录中所有以host开头的文件列表,可以执行如下命令:

如果要在整个系统中搜索权限中包括SUID权限的所有文件 只需使用-4000即可:

在这里插入图片描述

进阶实验:在整个文件系统中找出所有归属于linuxprobe用户的文件并复制到/root/findresults目录。

该实验的重点是“-exec {} ;”参数,其中的{}表示find命令搜索出的每一个文件,并且命令的结尾必须是“;”。完成该实验的具体命令如下:

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值