Linux常用命令
Posted liangxiaochu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux常用命令相关的知识,希望对你有一定的参考价值。
Linux常用命令
1.Linux系统工作命令
1.1 echo
echo命令用于在终端输出字符串或变量提取后的值,格式为“echo[字符串|$变量]”。类似于python中的print。
echo LinuxProbe.Com
输入变量(注意要大写)
echo $SHELL
向文件中写入字符串
1 echo "xiaochu is a wisdom man" >> anaconda-ks.cfg
1.2 date
date命令用于显示及设置系统的时间或日期,格式为“date [选项][+指定的格式]”
用途:日常工作时可以把备份数据的命令与指定格式输出的时间信息结合到一起,使得文件备份时间清晰可见。
直接输出当前系统时间
date
按照指定格式查看当前系统时间(要有+号)
date "+%Y-%m-%d %H:%M:%S"
设置系统时间(注意时间格式)
date -s "20070901 8:30:30"
查看今天是今年的第几天(用于区分备份时间的新旧)
date "+%j"
1.3 reboot
重启,需root权限
1.4 poweroff
关机,需root权限
1.5 wget
用于在终端中下载网络文件,格式为“wget[参数]下载地址”,地址需完整路径。
参数 | 作用 |
-b | 后台下载模式 |
-P | 下载到指定目录 |
-t | 最大尝试次数 |
-c | 断点续传 |
-p | 下载页面内所有资源(图片、视频等) |
-r | 递归下载 |
1.6 ps
用于查看系统中的进程状态,格式为“ps[参数]“
用途:ps命令与管道符技术搭配使用,用来抓取某个指定服务进程相对应的PID号码。
参 数 | 作用 |
-a | 显示所有进程(包括其他用户的进程) |
-u | 用户以及其他详细信息 |
-x | 显示没有控制终端的进程 |
Linux系统有5种进程状态:
运行(R):进程正在运行或在运行队列中等待。
中断(S):进程处于休眠中,当某个条件形成后或者接收到信号时,则脱离该状态。
不可中断(D):进程不响应系统异步信号,即使用kill命令也不能将其中断。
僵死(Z):进程已终止,但进程描述符依然存在,直到父进程调用wait4()系统函数后将进程释放。
停止(T):进程收到停止信号后停止进行。
命令参数短格式可以合并,合并后仅保留一个-,ps命令允许参数不加-。
ps aux
进程状态注解:
USER 进程的所有者
PID 进程ID号
%CPU 运算器占用率
%MEM 内存占用率
VSZ 虚拟内存使用量(KB)
RSS 占用的固定内存量(KB)
TTY 所在终端
STAT 进程状态
START 被启动的时间
TIME 实际使用CPU的时间
COMMAND 命令名称与参数
1.7 top
top命令用于动态地监视进程活动与系统负载等信息,其格式为top。
运行界面注解:
第一行:系统时间、运行时间、登录终端数、系统负载(三个数值分别为1分钟、5分钟、15分钟)
第二行:total 进程总数,running 运行中的进程数,sleeping 睡眠中的进程数,stopped 停止的进程数,zombie 僵死的进程数
第三行:us 用户占用资源百分比,sy 系统内核占用资源百分比,ni 改变过优先级的进程资源占比,id 空闲资源占比,wa IO等待资源占比,hi 硬中断资源占比,si 软中断资源占比,st
第四行:total 物理内存总量, used 内存使用量,free 内存空闲量,buffers 作为内核缓存的内存量
第五行:total 虚拟内存总量,used 虚拟内存使用量,free 虚拟内存空闲量,cached Mem 已被提前加载的内存量
1.8 pidof
pidof命令用于查询某个指定服务进程的PID值,格式为”pidof[参数][服务名称]“
pidof sshd
1.9 kill
kill命令用来终止某个指定PID的服务进程,格式为”kill[参数][进程PID]“
kill 2156
1.10 killall
killall命令用来终止某个指定名称的服务所对应的全部进程,格式为”killall[参数][服务名称]“,一般用于批量终止软件的所有服务进程。
tips:如果在系统终端中运行一个命令后想立即停止,”Ctrl + C“
如果有些命令在执行时不断在屏幕上输出信息,影响到后续命令输入,则可以在执行命令时末尾加上&,这样命令将进入后台来执行。
2.系统状态检测命令
2.1 ifconfig
ifconfig命令用于获取网卡配置与网络状态等信息,格式为“ifconfig [网络设备] [参数]”
使用该命令主要查看网卡名称、inet参数后面的IP地址、ether参数后面的网卡物理地址(MAC),以及RX(接收)、TX(发送)的接收数据包与发送数据包的个数及累计流量。
2.2 uname
uname命令用于查看系统内核与系统版本等信息,格式为"uname [-a]"
一般搭配-a 显示完整信息:系统的内核名称、主机名、内核发行版本、节点名、系统时间、硬件名称、硬件平台、处理器类型及操作系统名称等信息。
如查看redhat系统版本的详细信息
1 cat /etc/redhat-release
2.3 uptime
uptime命令用于查看系统的负载信息,格式为uptime。
可以显示当前系统时间、系统已运行时间、启动终端数量及平均负载值(1分钟,5分钟,15分钟)等信息。负载值越低越好,尽量不好长期超过1,在生产环境中不要超过5.
2.4.free
free命令用于显示当前系统内存的使用量信息,格式为"free [-h]",此命令运维人员需经常关注,避免linux系统因内存资源耗尽而宕机。
shared:进程共享的内存量。
buffers:缓冲,存在于RAM中,主要用于I/O操作,速度比cached慢。
cached:高速缓冲,即可存在与RAM中也可存在于磁盘中,主要用于读写操作。
2.5 who
who命令用于查看当前登入主机的用户终端信息,格式为"who [参数]"
2.6 last
last命令用于查看所有系统的登录记录,格式为"last [参数]",该命令的输出信息不能确保系统有无恶意入侵。
2.7 history
history命令用于显示历史执行过的命令,格式为"history [-c]"
可用“!编码数字"重复执行某一次的命令,-c则为清除历史记录。
2.8 sosreport
sosreport命令用于收集系统配置及架构信息并输出诊断文档,格式为sosreport。一般为需技术支援时使用。
3 工作目录切换命令
3.1 pwd
pwd命令用于显示用户当前所处的工作目录,格式为”pwd [选项]“
3.2 cd
cd命令用于切换工作路径,格式为"cd [路径]"
cd - 返回上一次所处的目录
cd ~或cd ~username 切换到当前用户的家目录
cd .. 进入上级目录
3.3 ls
ls命令用于显示目录中的文件信息,格式为"ls [选项] [文件]"
常用参数:
-l 查看文件属性、大小等详细信息
-a 查看全部文件(包括隐藏文件)
-d 查看目录属性
4 文本文件编辑命令
4.1 cat
cat命令用于查看纯文本文件(内容较少的),格式为"cat [选项] [文件]",-n参数为显示行号
4.2 more
more命令用于查看纯文本文件(内容较多的),格式为"more [选项] [文件]"
4.3 head
head命令用于查看纯文本文档的前N行,格式为"head [选项] [文件]"
查看前20行内容
1 head -n 20 intial-setup-ks.cfg
4.4 tail
tail命令用于查看纯文本文档的后N行或持续刷新内容,格式为"tail [选项] [文件]"
持续刷新命令格式:tail -f 文件名
4.5 tr
tr命令用于替换文本文件中的字符,格式为"tr [原始字符] [目标字符]"
把文本中全部换成大写
1 cat anaconda-ks.cfg | tr [a-z] [A-Z]
4.6 wc
wc命令用于统计指定文本的行数、字数、字节数,格式为"wc [参数] [文本]"
常用参数:
-l 只显示行数
-d 只显示单词数
-c 只显示字节数
4.7 stat
stat命令用于查看文件的具体存储信息和时间等信息,格式为"stat [文件名称]"
4.8 cut
cut命令用于按”列“提取文本字符,格式为"cut [参数] [文本]"
-f设置要查看的列数,-d设置间隔符号
提取passwd文件用户名信息:
1 cut -d: -f1 /etc/passwd
4.9 diff
diff命令用于比较多个文本文件的差异,格式为"diff [参数] [文件]"
--brief 用来确认两个文件是否不同,相同无返回值。
1 diff --brief diff_A.txt diff_B.txt
-c详细比较多个文件的差异之处,可用于判断文件是否被篡改。
1 diff -c diff_A.txt diff_B.txt
5 文件目录管理命令
5.1 touch
touch命令用于创建空白文件或设置文件的时间,格式为"touch [选项] [文件]"
主要参数:
-a 仅修改读取时间 atime
-m 仅修改修改时间 mtime
-d 同时修改atime与mtime
5.2 mkdir
mkdir命令用于创建空白的目录,格式为"mkdir [参数] [目录]"
主要参数:
-p 递归创建出具有潜逃叠层关系的文件目录
5.3 cp
cp目录用于复制文件或目录,格式为"cp [选项] [源文件] [目标文件]"
linux系统中文件复制有3种情况:
如果目标文件是目录,则会把源文件复制到该目录中;
如果目标文件也是普通文件,则会询问是否要覆盖它;
如果目标文件不存在,则执行正常的复制操作。
主要参数:
-p 保留原始文件的属性
-d 若对象为”链接文件“,则保留该”链接文件“的属性
-r 递归持续复制(用于目录)
-i 若目标文件存在则询问是否覆盖
-a 相当于-par(-p -a -r)
5.4 mv
mv命令用于剪切文件或将文件重命名,格式为"mv [选项] [源文件] [目标路径|目标文件名]"
剪切操作会删除源文件,只保留剪切后的文件,如果在同一目录中对一个文件进行剪切操作,其实也就是重命名。
5.5 rm
rm命令用于删除文件或目录,格式为"rm [选项] [文件]"
主要参数:
-f 强制删除
-r 删除目录,不加此参数删不掉
5.6 dd
dd命令用于按照指定大小和个数的数据块来复制文件或转换文件,格式为"dd [参数]"
主要参数:
if 输入的文件名称
of 输出的文件名称
count 设置要复制”块“的个数
bs 设置每个”块“的大小
1 dd if=/dev/zero of=560_file count=1 bs=560M
用dd命令压制iso文件
1 dd if=/dev/cdrom of=RHEL-server-7.0-x86_64-LinuxProbe.Com.iso
5.7 file
file命令用于查看文件的类型,格式为"file [文件名]"
目前已知3种文件类型:directory、ASCII text、block special
6 打包压缩与搜索命令
6.1 tar
tar命令用于对文件进行打包压缩或解压,格式为"tar [选项] [文件]"
linux系统常用3种压缩格式:.tar .tar.gz .tar.bz2
常用参数:
-c 创建压缩文件
-x 解开压缩文件
-t 查看压缩包内有哪些文件
-z 用Gzip压缩或解压
-j 用bzip2压缩或解压
-v 显示压缩或解压过程
-f 目标文件名,必须放到参数的最后一位
-p 保留原始的权限与属性
-P 使用绝对路径来压缩
-C 指定解压到的目录
压缩文件(-czvf)
1 tar -czvf diff_A.txt.tar.gz /etc/home
解压文件(-xzvf)
1 tar -xzvf diff_A.txt.tar.gz -C /etc
6.2 grep
grep命令用于在文本中执行关键词搜索,并显示匹配的结果,格式为"grep [选项] [文件]"
主要参数:
-b 将可执行文件(binary)当作文本文件(text)来搜索
-c 仅显示找到的行数
-i 忽略大小写
-n 显示行号
-v 反向选择,仅列出没有关键词的行
6.3 find
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 匹配文件类型(后面的字母参数依次表示块设备(b)、目录(d)、字符设备(c)、管道(p)、链接文件(l)、文本文件(f))
-size 匹配文件的大小(+50KB为查找超过50KB的文件,-50KB为查找小于50KB的文件)
-prune 忽略某个目录
-exec …… {} ;
在整个文件系统中找出所有归属于linuxprobe用户的文件并复制到/root/findresults目录
find / -user linuxprobe -exec cp -a {} /root/findresults/ ;
以上是关于Linux常用命令的主要内容,如果未能解决你的问题,请参考以下文章
markdown [Docker] Docker片段列表和命令#linux #docker #snippets
Android 逆向Linux 文件权限 ( Linux 权限简介 | 系统权限 | 用户权限 | 匿名用户权限 | 读 | 写 | 执行 | 更改组 | 更改用户 | 粘滞 )(代码片段