强大好用的Shell
图形化工作相较于Linux命令行界面会更加消耗系统资源,需要运维工作时直接通过命令行模式远程连接过去,这样比较高效
Shell就是这样的一个命令行工具.Shell称作为终端或者壳,充当的是用户和内核之间的翻译官,用户输入相关的命令就会调用相应的程序服务去完成工作
执行帮助文档命令
常见执行Linux命令的格式是这样的
命令名称 [命令参数] [命令对象]
命令参数可以使用长格式或者短格式
长格式 | man --help |
短格式 | man -h |
常用系统工作命令
echo命令
echo用于在终端输出字符串或变量提取后的值,格式为"echo[字符串|$变量]"
echo yeyufan.cn
date命令
date命令用于设置系统的时间或日期,格式为"date[选项][+指定的格式]"
--查看当前时间
date
--以"年-月-日 小时:分钟:秒"的格式查看时间
date "+%Y-%m-%d %H:%M:%S"
--将当前时间设置为2020年1月1日8点30分
date -s"20200101 8:30:00"
--查看今天是当年中第几天
date "+%j"
reboot命令
reboot命令用于重启系统
reboot
poweroff命令
poweroff命令用于关闭系统
wget命令
wget命令用于在终端中下载网络文件,格式为wget[参数]下载地址
参数 | 作用 |
-b | 后台下载模式 |
-P | 下载到指定目录 |
-t | 最大尝试次数 |
-c | 断点续传 |
-p | 下载页面内所有资源 |
-r | 递归下载 |
--把baidu.com的内容下载到website目录下
wget -P website baidu.com
ps命令
ps命令用于查看系统中的进程状态,格式为"ps[参数]"
参数 | 作用 |
-a | 显示所有进程 |
-u | 用户以及其他详细信息 |
-x | 现实没有控制终端的进程 |
ps aux
--Linux系统中 命令参数有长短之分,长格式之间不能合并,短格式之间可以合并,合并后只保留一个-符号,PS命令特殊一点,-符号也可以省略掉
linux上进程有5种常见的进程状态:
- R运行(正在运行或在运行队列中等待)
- S中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号)
- D不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生)
- Z僵死(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放)
- T停止(进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行)
- USER:进程所有者
- PID:进程的ID号
- %CPU:进程占用的CPU百分比
- %MEM:占用内存的百分比
- VSZ:进程使用的虚拟內存量
- RSS:该进程占用的固定內存量
- TTY:所在终端
- STAT:进程状态
- START:被启动时间
- TIME:实际使用CPU的时间
- COMMAND:命令名称与参数
top命令
top命令用于动态监控进程活动与系统负载等信息,加强版任务管理器
系统时间,运行时间.登陆终端数,系统负载(三个数值分别为1分钟,5分钟,15分钟内的平均值,数值越小负载越低)
进程总数,运行中的进程数,睡眠中的进程数,停止的进程数,僵死的进程数
用户占用资源百分比,系统内核占用资源百分比,改变过优先级的进程资源百分比,空闲的资源百分比
物理内存总量,内存使用量,内存空闲量,作为内核缓存的内存量
虚拟内存总量,虚拟内存使用量,虚拟内存空闲量,已被提前加载的内存量
pidof命令
pidof命令用于查询某个指定服务进程的PID值,格式为"pidof[参数][服务名称]"
pidof sshd
kill命令
kill命令用于终止某个指定PID 的服务进程,格式为"kill[参数][进程PID]"
kill 3506
killall命令
killall命令用于终止某个指定名称的服务所对应的全部进程,格式为"killall[参数][进程名称]"
killall sshd
系统状态检测命令
ifconfig命令
ifconfig命令用于获取网卡配置与网络状态等信息,格式为"ifconfig[网络设备][参数]"
ifconfig
uname命令
uname命令用于查看系统内核与系统版本信息,格式为"uname[-a]"
uname -a
若需要查看当前系统版本的详细信息,则需要查看 redhat-release文件
cat /etc/redhat-release
uptime命令
uptime命令用于查看系统负载信息
uptime
free命令
free命令用于显示当前系统中内存的使用量信息,格式为"free[-h]"
free -h
who命令
who命令可以查看当前登入主机的用户终端信息,格式为"who[参数]"
who
last命令
last命令用于查看所有系统的登陆记录,格式为"last[参数]"
history命令
history命令用于显示历史执行过的命令,格式为"history[-c]"
history
history -c 则会清空所有的命令历史记录
sosreport命令
sosreport命令用于收集系统配置以及架构信息并输出诊断文档
工作目录切换命令
pwd命令
pwd命令用于显示用户当前所处的工作目录
pwd
cd命令
cd命令用于切换工作路径
cd /etc
cd -
cd ..
ls命令
ls命令用于显示目录中的文件信息
ls -al
文本文件编辑命令
cat命令
cat命令用于查看纯文本文件(内容较少)
cd ~
cat -n initial-setup-ks.cfg
more命令
more命令用于查看纯文本文件(内容较多)
cd ~
more initial-setup-ks.cfg
head命令
head命令用于查看纯文本文件的前N行,格式为"head[选项][文件]"
cd ~
head -n 20 initial-setup-ks.cfg
tail命令
tail命令用用于查看纯文本文件的后N行或者持续刷新内容,格式为"tail[选项][文件]"
tail -f /var/log/messages
tr命令
tr命令用于替换文本中的字符,格式为"tr[原始字符][目标字符]"
cat anaconda-ks.cfg |tr [a-z] [A-Z]
wc命令
wc命令用于统计指定文本的行数,字数,字节数
wc -l /etc/passwd
stat命令
stat命令用于查看文件的具体存储信息和时间等信息,格式为"stat 文件名称"
stat anaconda-ks.cfg
cut命令
cut命令用于按"列"提取文本字符,格式为"cut[参数] 文本"
cut -d: -f1 /etc/passwd
diff命令
diff命令用于比较多个文本文件的差异,格式为"diff[参数] 文件"
文件目录管理命令
touch命令
touch命令用于创建空白文件或设置文件的时间
touch -d "2017-01-01 14:22" anaconda-ks.cfg
mkdir命令
mkdir命令用于创建空白的目录
mkdir linuxstudy
cd linuxstudy/
cp命令
cp命令用于复制文件或目录
cp install.log xx.log
mv命令
mv命令用于剪切文件或重命名
mv test.txt test2.txt
rm命令
rm命令用于删除文件或目录
rm install.log
rm -f install.log
dd命令
dd命令用于按照指定大小和个数的数据块来复制文件或转换文件
dd if=/dev/zero of=560_file count=1 bs=560M
--从/dev/zero设备文件中取出一个大小为560MB的数据块,然后保存为名为560_file的文件
file命令
file命令用于查看文件的类型
file anaconda-ks.cfg
打包压缩与搜索命令
tar 命令
tar 命令用于对文件进行打包压缩或解压
tar -czvf test.tar.gz 1.txt
tar -xzvf test.tar.gz
grep命令
grep命令用于在文本中执行关键词搜索并显示匹配的结果
grep /sbin/nologin /etc/passwd
find命令
find命令用于按照指定条件来查找文件
find /etc -name "host*" -print
在整个文件系统中找出所有归属于 linuxprobe 用户的文件并复制到
/root/findresults 目录。
该实验的重点是“-exec {} \;”参数,其中的{}表示 find 命令搜索出的每一个文
件,并且命令的结尾必须是“\;” 。完成该实验的具体命令如下:
find / -user linuxprobe -exec cp -a {} /root/findresults/ \;
Comments | NOTHING