• Linux就该这么学-学习笔记(二)


    0x01 强大好用的shell

    计算机硬件是由运算器、控制器、存储器、输入/输出设备等共同组成的,而让各种硬件设备各司其职且又能协同运行的东西就是系统内核。Linux系统的内核负责完成对硬件资源的分配、调度等管理任务。

    Bash解释器的四大优势:

    1.通过上下方向键来调取过往执行过的Linux命令;

    2.命令或参数仅需输入前几位就可以用Tab键来补全;

    3.具有强大的批处理脚本;

    4.具有实用的环境变量功能。

    0x02 执行查看帮助命令

    在Linux中,不清楚某个命令的具体用法,man一下即可。当然也可以用man man来查看man命令的使用方法。

    0x03 常用系统工作命令

    1.echo命令

    简单的输出命令,例如echo hello world或者echo $SHELL

    2.date命令

    date命令用于显示及设置系统的时间或日期,格式为“date [选项] [+指定的格式]”。

    date “+%Y-%m-%d %H:%M:%S”

    输出为

    2020-01-23 14:50:48

    又或者可以使用

    date -s "20200123 8:30:00"

    来设置自己想要的时间。而date “+%j”则可以知道今天是这一年的第几天。

    3.reboot命令

    用于重启系统,其格式为reboot。

    该命令的执行默认需要管理员权限才能执行,因为重启计算机会涉及硬件资源的管理权限。

    4.poweroff命令

    用于关闭系统,其格式为poweroff。

    该命令同样需要管理员权限,原因和reboot一样。

    5.wget命令

    用于在终端中下载网络文件,格式为“wget [参数] 下载地址”。

    参数如下:

    -b:后台下载模式

    -P:下载到指定目录

    -t:最大尝试次数

    -c:断点续传

    -p:下载页面内所有资源,包括图片、视频等。

    -r:递归下载。

    6.ps命令

    用于查看系统中的进程状态,格式为“ps [参数]”

    参数如下:

    -a:显示所有进程

    -u:用户以及其他详细信息

    -x:显示没有控制终端

    在Linux系统中,进程有5种状态,分别为运行、中断、不可中断、僵死与停止。

    运行(R):进程正在运行或在运行队列中等待。

    中断(S):进程处于休眠中,当某个条件形成后或者接收到信号时,则脱离该状态。

    不可中断(D):进程不响应系统异步信号,即便用kill命令也不能将其中断。

    僵死(Z):进程已经终止,但进程描述符依然存在,直到父进程调用wait4()系统函数后将进程释放。

    停止(T):进程收到停止信号后停止运行。

    7.top命令

    用于动态地监视进程活动与系统负载等信息,其格式为top。

    8.pidof命令

    用于查询某个指定服务进程的PID值,格式为“pidof [参数] [服务名称]”。

    每个进程的PID值是唯一的,所以可以通过PID值来区分不同的进程。

    9.kill命令

    用于终止某个指定PID的服务进程,格式为“kill [参数] [进程PID]”。

    10.killall命令

    用于终止某个指定名称的服务所对应的全部进程,格式为“killall [参数] [进程名称]”。

    注:在实际环境中,某些命令会不断地往终端屏幕上输出信息,从而影响后续命令的输入。可以在执行命令时,在末尾 加上一个&符号,命令就会进入系统后台运行。

    0x04 系统状态检测命令

    1.ifconfig命令

    用于获取网卡配置与网络状态等信息,格式为“ifconfig [网络设备] [参数]”

    2.uname命令

    用于查看系统内核与系统版本等信息,格式为“uname [-a]”

    注:使用uname命令一般会搭配上-a参数来完整地查看当前系统的内核名称、主机名、内核发行版本、节点名、系统时间、硬件名称、硬件平台、处理器类型以及操作系统名称等信息。另外就是,如果需要查看当前系统版本的详细信息,则可以通过查看redhat-release文件。

    cat /etc/redhat-release

    3.uptime命令

    用于查看系统的负载信息,格式为uptime。

    4.free命令

    用于显示当前系统中内存的使用量信息,格式为“free [-h]”

    5.who命令

    用于查看当前登入主机的用户终端信息,格式为“who [参数]”

    6.last命令

    用于查看所有系统的登录记录,格式为“last [参数]”

    这些登录记录是以日志文件的形式保存在系统中的,因此黑客可以很轻易就对内容进行修改。

    7.history命令

    用于显示历史执行过的命令,格式“history [-c]”

    注:history默认显示当前用户在本地计算机中执行过的1000条命令,如果觉得1000条不够,可以去修改/etc/profile文件中的HISTSIZE变量值。而history -c则会清空当前用户在本地计算机执行的Linux命令历史记录信息。而Linux命令的历史记录保存在home目录中的.bash_history文件中,带.点的文件都是隐藏文件,所有可以通过cat命令来查看。

    8.sosreport命令

    用于收集系统配置及架构信息并输出诊断文档,格式为“sosreport”

    0x05 工作目录切换命令

    工作目录指的是用户当前在系统中所处的位置。

    1.pwd命令

    用于显示用户当前所处的工作目录,格式为“pwd [选项]”

    2.cd命令

    用于切换工作路径,格式为“cd [目录名称]”

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

    3.ls命令

    用于显示目录中的文件信息,格式为“ls [选项] [文件]”,一般使用ls或者ls -al就可以了。

    参数:

    -a:查看全部文件(包括隐藏文件)

    -l:查看文件的属性、大小等详细信息

    -d:查看目录属性信息

    例:查看/etc目录的权限和属性信息

    ls -ld /etc

    0x06 文本文件编辑命令

    1.cat命令

    用于查看纯文本文件(内容较少的文件),格式为“cat [选项] [文件]”。如果想要在查看文件的时候顺便显示行号,可以使用-n参数。

    2.more命令

    用于查看纯文本文件(内容较多的文件),格式为“more [选项] 文件”。如果使用了more命令,可以使用空格或回车键进行向下翻页。

    3.head命令

    用于查看纯文本文档的前N行,格式为“head [选项] [文件]”

    例:查看文件内容的前20行

    head -n 20 文件名

    4.tail命令

    用于查看纯文本文档的后N行或持续刷新内容,格式为“tail [选项] [文件]”。使用方法和head基本一样,只是tail命令是查看后N行的。

    注:tail命令最强悍的功能是可以持续刷新一个文件的内容,当想要实时查看最新日志文件时,使用“tail -f 文件名”。

    5.tr命令

    用于替换文本文件中的字符,格式为“tr [原始字符] [目标字符]”

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

    cat 文件名 | tr [a-z] [A-Z]

    6.wc命令

    用于统计指定文本的行数、字数、字节数,格式为“wc [参数] 文本”

    参数:

    -l:只显示行数

    -w:只显示单词数

    -c:只显示字节数

    例:统计passwd文件中有多少个用户

    wc -l /etc/passwd

    7.stat命令

    用于查看文件的具体存储信息和时间等信息,格式为“stat 文件名称”

    8.cut命令

    用于按“列”提取文本字符,格式为“cut [参数] 文本”

    例:提取passwd文件按以冒号(:)为间隔符号的第一列内容

    cut -d: -f1 /etc/passwd

    9.diff命令

    用于比较多个文本文件的差异,格式为“diff [参数] 文件”

    参数:

    --brief:显示比较后的结果,判断文件是否相同

    -c:显示文件内容的具体不同

    0x07 文件目录管理命令

    1.touch命令

    用于创建空白文件或设置文件的时间,格式为“touch [选项] [文件]”

    简单的touch linux,便可以创建一个名为linux的空白文件。

    参数:

    -a:仅修改“读取时间”(atime)

    -m:仅修改“修改时间”(mtime)

    -d:同时修改atime与mtime

    2.mkdir命令

    用于创建空白的目录,格式为“mkdir [选项] 目录”

    mkdir linux便可以创建一个名为linux的目录。

    使用参数-p还能创建出具有嵌套叠层关系的文件目录

    例如mkdir -p a/b/c/d/e

    3.cp命令

    用于复制文件或目录,格式为“cp [选项] 源文件 目标文件”

    复制操作有三种情况:

    a.如果目标文件是目录,则会把源文件复制到该目录

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

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

    参数:

    -p:保留原始文件的属性

    -d:若对象为“链接文件”,则保留该“链接文件”的属性

    -r:递归持续复制(用于目录)

    -i:若目标文件存在则询问是否覆盖

    -a:相当于-pdr

    4.mv命令

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

    mv命令默认会将源文件进行删除。

    5.rm命令

    用于删除文件或目录,格式为“rm [选项] 文件”

    我一般使用的是rm -rf 文件名。真的美滋滋。

    6.dd命令

    用于按照指定大小和个数的数据块来复制文件或转换文件,格式为“dd [参数]”

    参数:

    if:输入的文件名称

    of:输出的文件名称

    bs:设置每个“块”的大小

    count:设置要复制“块”的个数

    7.file命令

    用于查看文件的类型,格式为“file 文件名”

    0x08 打包压缩与搜索命令

    1.tar命令

    用于对文件进行打包压缩或解压,格式为“tar [选项] [文件]”

    参数:

    -c:创建压缩文件

    -x:解开压缩文件

    -t:查看压缩包内有哪些文件

    -z:用Gzip压缩或解压

    -j:用bzip2压缩或解压

    -v:显示压缩或解压的过程

    -f:目标文件名

    -p:保留原始的权限与属性

    -P:使用绝对路径来压缩

    -C:指定解压到的目录

    2.grep命令

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

    参数:

    -b:将可执行文件(binary)当作文本文件(text)来搜索

    -c:仅显示找到的行数

    -i:忽略大小写

    -n:显示行号

    -v:反向选择--仅列出没有“关键词”的行

    注:其他的参数在以后如果使用到,可以使用man grep来进行查询。

    3.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 ......{} ;:后面可跟用于进一步处理搜索结果的命令

    注:如果需要搜索权限中包括SUID权限的所有文件,只需要在-perm后面跟一个-4000即可。

    需要了解的问题:

    1.在RHEL7系统及众多的Linux系统中,最常使用的Shell终端是什么?

    答:Bash(Bourne-Again SHell)解释器。

    2.执行Linux系统命令时,添加参数的目的是什么?

    答:为了让Linux系统命令能够更贴合用户的实际需求进行工作。

    3.Linux系统命令、命令参数及命令对象之间,普遍应该使用什么来间隔?

    答:应该使用一个或多个空格进行间隔。

    4.请写出用echo命令把SHELL变量值输出到屏幕终端的命令。

    答:echo $SHELL。

    5.简述Linux系统中5种进程的名称及含义?

    答:在Linux系统中,进程有5种状态,分别为运行、中断、不可中断、僵死与停止。

    运行(R):进程正在运行或在运行队列中等待。

    中断(S):进程处于休眠中,当某个条件形成后或者接收到信号时,则脱离该状态。

    不可中断(D):进程不响应系统异步信号,即便用kill命令也不能将其中断。

    僵死(Z):进程已经终止,但进程描述符依然存在,直到父进程调用wait4()系统函数后将进程释放。

    停止(T):进程收到停止信号后停止运行。

    6.请尝试使用Linux系统命令关闭PID为5529的服务进程。

    答:执行kill 5529即可;若知道服务的名称,使用killall命令即可关闭。

    7.使用ifconfig命令查看网络状态信息时,需要重点查看的4项信息分别是什么?

    答:这4项重要信息分别是网卡名称、IP地址、网卡物理地址以及RX/TX的收发流量数据大小。

    8.使用uptime命令查看系统负载时,对应的负载数值如果是0.91、0.56、0.32,那么最近15分钟内负载压力最大的是哪个时间端?

    答:通过负载数值可以看出,最近1分钟内的负载压力是最大的。

    9.使用history命令查看历史命令的执行记录时,命令前面的数字除了排序外还有什么用处?

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

    10.若想查看的文件具有较长的内容,那么使用cat、more、head、tail中的哪个命令最合适?

    答:文件内容较长,使用more命令;反之使用cat命令。

    11.在使用mkdir命令创建有嵌套关系的目录时,应该加上什么参数呢?

    答:-p递归迭代参数

    12.在使用rm命令删除文件或目录时,可使用哪个参数来避免二次确认呢?

    答:-f参数。

    13.若有一个名为backup.tar.gz的压缩包文件,那么解压的命令应该是什么?

    答:tar -xzvf backup.tar.gz

    14.使用grep命令对某个文件进行关键词搜索时,若想要进行文件内容反选,应使用什么参数?

    答:-v参数。

  • 相关阅读:
    Java中Collection和Collections的区别
    网站
    window.load 和$(document).ready() 、window.load和body onload区别
    『jQuery』.html(),.text()和.val()的使用
    jQuery选择器总结
    ios开发--编码格式
    iOS开发--基于AFNetWorking3.0的图片缓存分析
    iOS开发--沙盒路径与操作文件
    ios开发--第三方整理
    iOS 网络处理注意点
  • 原文地址:https://www.cnblogs.com/-an-/p/12230364.html
Copyright © 2020-2023  润新知