linux-常用系统工作命令
echo
echo 命令用于唉终端输出字符串或变量提取后的值
echo robot
echo $SHELL
date
date 命令用于显示及设置系统的时间或日期
date
# 按照某种格式输出
date "+%Y-%m-%d %H:%M:%S"
# 设置系统时间
date -s "20170901 8:30:00"
# 显示今天是这一年的第几天
date "+%j"
reboot
reboot computer
poweroff
close computer
wget
wget 命令用于在终端中下载网络文件
# -b 后台下载
# -P 下载到指定目录
# -t 最大尝试次数
# -c 断点续传
# -p 下载页面内所有资源,包括图片、视频
# -r 递归下载
ps
ps 命令用于查看系统中的进程系统
# -a 显示所有进程
# -u 用户以及其他详细信息
# -x 显示没有控制端的进程
# 5种常见的进程状态,分别为运行、中断、不可中断、僵死与停止
# R(运行):进程在运行或在运行队列中等待
# S(中断):进程处于休眠中
# D(不可中断):进行不响应系统异步信号,即便用kill命令也不能将其中断
# Z(僵死):进程已经终止,但进程描述符依然存在,直到父进程调用wait4()系统函数后将进程释放
# T(停止):进程收到停止信号后停止运行。
# ps 列说明
# USER:进程的所有者
# PID:进程ID号
# %CPU:CPU占用率
# %MEM:内存占用率
# VSZ:虚拟内存使用量(单位KB)
# RSS:占用的固定内存量(单位KB)
# TTY:所在终端
# STAT:进程状态
# START:被启动时间
# TIME:实际使用CPU的实际
# COMMAND:命令名称与参数
top
top 命令用于动态地监视进程活动与系统负载等信息
- top前5行为系统整体的统计信息
- 第1行:系统时间、运行时间、登录终端数、系统负载(1分钟、5分钟、15分钟)
- 第2行:进程总数、运行中的进程数、睡眠中的进程数、停止的进程数、僵死的进程数
- 第3行:用户占用资源百分比、系统内核占用资源百分比、改变过优先级的进程资源百分比、空闲的资源百分比等
- 第4行:物理内存总量、内存使用量、内存空闲量、作为内核缓存的内存量
- 第5行:虚拟内存总量、虚拟内存使用量、虚拟内存空闲量、已被提前加载的内存量。
pidof
pidof 命令用于查询某个指定服务进程的PID值
pidof sshd
kill
kill 命令用于终止某个指定PID的服务进程
kill 2156
killall
killall 命令用于终止某个指定名称的服务所对应的全部进程
killall httpd
ifconfig
ifconfig 命令用于获取网卡配置与网络状态等信息
uname
uname 命令用于查看系统内核与系统版本等信息
uname -a
cat /etc/redhat-release
uptime
uptime 用于查看系统的负载信息
# 显示当前系统时间、系统已运行时间,启用终端数量以及平均负载值等信息。
# 现在最近1分钟、5分钟、15分钟内的压力情况;
# 负载值越低越好,尽量不要长期超过1,在生产环境中不要超过5
uptime
8:00 up 4:40, 2 users, load average: 0.04, 0.03, 0.05
free
free 用于显示当前系统中内存的使用量信息
free -h
who
who 用于查看当前登入主机的用户终端信息
last
last 用于查看所有系统的登录记录
history
history 用于显示历史执行过的命令,它能够显示最近1000条信息,如果不够,可以修改、etc/profile中的HISTSIZE变量值
# 历史命令显示
history
# 清空所有的历史记录
history -c
# 使用 “!编码数字” 可以重复执行某一次的命令
!15
# 历史命令会被保存到用户家目录的.bash_history文件中
cat ~/.bash_history
sosreport
sosreport命令用于手机系统配置及架构信息并输出诊断文档,格式为sosreport
工作目录切换命令
pwd
pwd 命令用于显示用户当前所处的工作目录
cd
cd 命令用于切换工作路径
cd /bin
# 返回到上一次的目录
cd -
快速切换到用户的家目录:
cd ~
ls
ls 命令用于显示目录中的文件信息
# -a 看到全部文件
# -l 可以查看文件的属性
# -d 查看目录属性信息
ls -al
ls -ld /etc
文本文件编辑命令
cat
cat 命令用于查看纯文本文件
# 查看时显示行号
cat -n initial-setup-ks.cfg
more
more 命令用于查看纯文本文件,查看长文件,空格或回车向下翻页
more initial-setup-ks.cfg
head
head 命令用于查看纯文本文档的前N行
head -n 20 initial-setup-ks.cfg
tail
tail 命令用于查看纯文本文档的后N行或持续刷新内容
# 文本最后20行
tail -n 20
# 实时查看最新日志文件
tail -f 文件名
tr
tr 命令用于替换文本文件中的字符
cat anaconda-ks.cfg | tr [a-z] [A-Z]
wc
wc 命令用于统计指定文本的行数、字数、字节数
# -l 只显示行数
# -w 只显示单词数
# -c 只显示字节数
wc -l /etc/passwd
stat
stat 命令用于查看文件的具体存储信息和时间等信息
stat anaconda-ks.cfg
cut
cut 命令用于按“列”提取文本字符
# -f 参数来设置需要看的列数
# -d 参数来设置间隔符号
head -n 2 /etc/passwd
cut -d: -f1 /etc/passwd
diff
diff 命令用于比较多个文本文件的差异
# --brief参数来确认两个文件是否不同
diff --brief diffA.txt diffB.txt
# -c 来描述文件内容具体的不同
diff -c diffA.txt diffB.txt
文件目录管理命令
touch
touch 命令用于创建空白文件或设置文件的时间
# mtime 文件内容的修改时间
# ctime 文件权限或属性的更改时间
# atime 文件的读取时间
# touch 参数
# -a 修改atime
# -m 修改mtime
# -d 同时修改atime和mtime
touch -d "2017-05-04 15:44" anaconda-ks.cfg
cp
cp 命令用于复制文件或目录
- 如果目标文件是目录,则会把源文件复制到该目录中;
- 如果目标文件是普通文件,则会询问是否要覆盖它;
- 如果目标文件不存在,则执行正常的复制操作。
# -p 保留原始文件的属性
# -d 若对象为“链接文件”,则保留该“链接文件”的属性
# -r 递归持续复制(用于目录)
# -i 若目标文件存在则询问是否覆盖
# -a 相当于pdr(p、d、r为上述参数)
mv
mv 命令用于剪切或重命名文件
rm
rm 命令用于删除文件或目录
# -f 强制删除
# -r 删除目录,需要加上
dd
dd 命令用于按照指定大小和个数的数据块来复制文件或转换文件
/dev/zero 可以提供无穷无尽的数据
# if 输入的文件名称
# of 输出的文件名称
# bs 设置每个“块”的大小
# count 设置要复制“块”的个数
# 用dd命令从/dev/zero设备中取出一个大小为560MB的数据块,然后保存成名为560_file文件
dd if=/dev/zero of=560_file count=1 bs=560M
# 如果您想把光驱设备中的光盘制作成iso,dd 命令直接压制出光盘镜像文件,将它变成一个可立即使用的iso镜像
dd if=/dev/cdrom of=RHEL-server-7.0-x86_64-LinuxProbe.Com.iso
file
file 命令用于查看文件的类型
file anaconda-ks.cfg
tar命令
tar命令用于对文件进行打包压缩或解压
# -c 创建压缩文件
# -x 解开压缩文件
# -t 查看压缩包内有哪些文件
# -z 用Gzip压缩或解压
# -j 用bzip2压缩或解压
# -v 显示压缩或解压的过程
# -f 目标文件名
# -p 保留原始的权限与属性
# -P 使用绝对路径来压缩
# -C 指定解压到的目录
# 把/etc目录通过gzip格式进行打包压缩
tar -czvf etc.tar.gz /etc
# 打包后的压缩包文件指定解压到/root/etc
mkdir /root/etc
tar xzvf etc.tar.gz -C /root/etc
grep
grep命令用于在文本中执行关键字搜索
# -b 将可执行文件(binary)当作文本文件(text)来搜索
# -c 仅显示找到的行数
# -i 忽略大小写
# -n 显示行号
# -v 反向选择-仅列出没有“关键词”的行
grep /sbin/nologin /etc/passwd
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 ... {} \;后面可跟用于进一步搜索结果的命令
# 获取到该目录中所有以host开头的文件列表
find /etc -name "host*" -print
# 在整个系统中搜索权限中包括SUID权限的所有文件,只需要使用-4000即可
find / -perm -4000 -print
# 在整个文件系统中找出所有归属于linuxprobe用户的文件并复制到/root/findresults目录
find / -user linuxprobe -exec cp -a {} /root/findresults/ \;