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 命令用于查看纯文本文档的前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/ \;
posted @ 2022-12-27 19:30  robot-Z  阅读(90)  评论(0编辑  收藏  举报