首页 > 技术文章 > lll

quzq 2018-11-28 22:50 原文

 

第一章 20181002
echo
man
date "+%Y+%m+%d %H:%M:%S"
date -s "20181002 21:42:00"
date "+%j" 查看这是一年的第几天
poweroff 关闭电脑 只有root用户才可以使用
wget命令
-b 后台下载模式
-P 下载到指定目录
-t 最大尝试次数
-c 断点续传
-p 下载页面内的所有资源,包括图片、视频
-r 递归下载

ps命令
-a 显示所有进程
-u 用户以及其他详细信息
-x 显示没有控制终端的进程

有5种常见的进程状态 分为:运行、中断、不可中断、僵死、与停止
R(运行)进程正在运行或者运行队列中等待
S(中断) 处于休眠。
D(不可中断)kill杀不掉
Z(僵死)进程已经终止,单进程描述符依然存在,知道进程调用wait4系统函数将进程释放
T(停止)进程收到停止信号后停止运行
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
进程的所有者 进程ID号 运算器占用率 内存占用率 虚拟内存使用量(单位是KB)占用的固定内存量(单位是KB)所在终端 进程状态 被启动的时间 实际使用CPU的时间 命令名称与参数

top命令
第1行:系统时间、运行时间、登录终端数、系统负载(三个数值分别为1分钟、5分钟、15分钟内的平均值,数值越小意味着负载越低)。

第2行:进程总数、运行中的进程数、睡眠中的进程数、停止的进程数、僵死的进程数。

第3行:用户占用资源百分比、系统内核占用资源百分比、改变过优先级的进程资源百分比、空闲的资源百分比等。其中数据均为CPU数据并以百分比格式显示,例如“97.1 id”意味着有97.1%的CPU处理器资源处于空

闲。

第4行:物理内存总量、内存使用量、内存空闲量、作为内核缓存的内存量。

第5行:虚拟内存总量、虚拟内存使用量、虚拟内存空闲量、已被提前加载的内存量。

pidof 查询某个指定服务进程的PID值 pidof -s单个进程pid值 pidof -x 脚本 脚本pid值

kill命令 加-9 pid号

killall命令用于终止某个指定名称的服务对应的全部进程 通常来讲,复杂软件的服务程序会有多个进程协同为用户提供服务,如果逐个去结束这些进程会比较麻烦
#pidof httpd
#13581 17283
#killall httpd
#pidof httpd 已杀掉

ifconfig
使用ifconfig命令来查看本机当前网卡配置与网络状态信息 其实主要就是网卡名称 inet参数后面IP地址 ether参数后面的网卡物理地址(MAC地址) 以及RX、TX的接收数据包与发送数据包的个数及累计流量
uname -a
cat /etc/redhat-release

uptime用于查看系统的负载信息,格式为uptime
uptime命令真的很棒,它可以显示当前系统时间、系统已运行时间、启用终端数量以及平均负载值等信息。平均负载值指的是系统在最近1分钟、5分钟、15分钟内的压力情况(下面加粗的信息部分);负载值越低越

好,尽量不要长期超过1,在生产环境中不要超过5

free -h 查看内存

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

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

history 历史命令 自定义/etc/profile文件中的HISTSIZE

history -c清空当前用户在本机执行的命令

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

/ / 这个下面有root目录
~ /root目录

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

cd ..返回上级目录
cd ~ 去/root
cd - 返回上次所处的目录

ls
-a 使用ls命令的“-a”参数看到全部文件(包括隐藏文件)
-l 使用“-l”参数可以查看文件的属性、大小等详细信息。
#ls -al 查看当前目录中的所有文件并输出这些文件的属性值

使用“-l”参数可以查看文件的属性、大小等详细信息。
#ls -ld /etc

cat
-n 进行显示行号
#cat -n initial-setup-ks.cfg

more命令用于查看纯文本文件 (内容较多) 您还可以使用空格键或回车键向下翻页

head 查看前N行
#head -n 20 initial-setup-ks.cfg

tail命令 后N行
tail -fn 20 后面20行 动态获取 -f参数为动态获取

tr命令用于替换文本文件中的字符 格式为tr [原始字符] [目录字符]
#cat anaconda-ks.cfg | tr [a-z] [A-Z]

wc命令用于统计指定文本的行数、字数、字节数,格式为“wc [参数] 文本
-l 只显示行数
-w 只显示单词数
-c 只显示字节数 一个英文字符代表两个字节

stat命令用于查看文件的具体存储信息和时间等信息
#stat test.txt

cut 分割
#cut -d: -f1 /etc/passwd

diff 用于比较多个文本文件的差异
在使用diff命令时,不仅可以使用--brief参数来确认两个文件是否不同,还可以使用-c参数来详细比较出多个文件的差异之处,这绝对是判断文件是否被篡改的有力神器
相同则为空 不同则显示有值diff
最后使用带有-c参数的diff命令来描述文件内容具体的不同
#diff --brief a.txt b.txt
#diff -c a.txt b.txt

touch 创建空白文件 设置文件的时间
touch命令来讲,有难度的操作主要是体现在设置文件内容的修改时间(mtime)、文件权限或属性的更改时间(ctime)与文件的读取时间(atime)上面。touch命令的参数及其作用如表2-11所示
-a 仅修改读取时间 atime
-m 仅修改修改时间 mtime
-d 同时修改atime与mtime
此时可以用stat来对比
#touch -d "2018-02-22 15:11" test.txt

mkdir -p 来递归创建具有层级关系的文件目录

cp命令 源文件 目标文件
-p 保留原始文件的属性
-d 若对象为链接文件,则保留该链接文件的属性
-r 递归持续复制(用于目录)
-i 若目标文件存在则询问是否覆盖
-a 相当于-pdr
一般使用
#cp -ra

mv移动和改名
#mv x.log test.log

rm 命令 删除文件或目录
-r 如果有删除一个目录,则需要在rm命令后面加个-r否则删除不掉
-f 直接删除,不询问

dd命令 用于按照指定大小和个数的数据块来赋值文件或转换文件 dd [参数]
dd命令是一个比较重要而且比较有特色的命令,它能够让用户按照指定大小和个数的数据块来赋值文件的内容
if 输入的文件名称
of 输出的文件名称
bs 设置每个块的大小
count 设置要复制块的个数
#。Linux系统中有一个名为/dev/zero的设备文件,每次在课堂上解释它时都充满哲学理论的色彩。因为这个文件不会占用系统存储空间
#用dd命令从/dev/zero设备文件中取出一个大小为560MB的数据块 命名为560_file
#dd if=/dev/zero of=560_file count=1 bs=560M
#如果您想把光驱设备中的光盘制作成iso格式的镜像文件,在Windows系统中需要借助于第三方软件才能做到,但在Linux系统中可以直接使用dd命令来压制出光盘镜像文件,将它变成一个可立即使用的iso镜像4
#dd if=/dev/cdrom of=RHEL-server-7.0-x86_64-LinuxProbe.Com.iso

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

tar命令 主要涉及.tar tar.gz tar.bz2
-c 创建压缩文件
-x 解开压缩文件
-t 查看压缩包内有哪些文件
-z 用Gzip压缩或者解压
-j 用bzip压缩或者解压
-v 显示压缩或解压过程
-f 目标文件名
-p 保留原始的权限与属性
-P 使用绝对路径来压缩
-C 指定解压到的目录
#tar czvf etc.tar.gz /etc 压缩为gz文件
#将打包后的压缩包文件解压到/root/etc目录下
#tar xzvf etc.tar.gz -C /root/etc
#tar cjvf etc.tag.gz2 /etc 压缩为gz2文件

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

fing命令用于按照指定条件来查找文件(文件名,大小,修改时间,权限)
-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 匹配文件类型 如file 查看文件类型 (块设备,目录,字符设备,管道,链接文件,文本文件)
-size 匹配文件的大小(+50KB为查找超过50Kb的文件, -50KB查找小于50KB的文件)
-prune 忽略某个目录
-exec ...{} \; 后面可以跟用于进一步处理搜索出来的文件
PS:Linux系统中的配置文件会保存到/etc目录中
#想获取/etc下所有以host开头的文件列表
#find /etc -name "host*" -print
#如果要在整个系统中搜索权限中包括SUID权限的所有文件,只需使用-4000即可
find / -perm -4000 -print
#进阶 将整个文件系统所有属于linuxprobe用户的文件并复制到/root/findresults目录下
#mkdir /root/findresults && find / -user linuprobe -exec cp -a {} /root/findresults/ \;

练习
1最常使用的终端解释器是Bash解释器
2命令及命令对象以一个或者多个空格
3echo命令把SHELL变量复制输出到屏幕终端的命令 echo $SHELL
45种进程的名称及含义 R运行 S中断 D不可中断 Z僵死 T停止
5关闭PID5529的服务进程 kill -9 5529
ifconfig查看4项信息 网卡名称 IP地址 网卡物理地址 RX、TX收发浏览数据大小
7使用uptime查看系统负载 0.91 0.56 0.32 1分钟 5分钟 15分钟 平均负载压力最大位1分钟
8内容较长,使用more命令,反之cat命令 (cat more head tail)
mkdir 命令创建嵌套关系目录 应该添加参数 -p
rm -rf 可以避免二次确然 慎用
11一个名为backup.tar.gz 压缩包文件,解压命令为 tar -zxvf backup.tar.gz
grep进行关键字

推荐阅读