SHELL
pcntl一台完整的计算机是由运算器、控制器、存储器、输入输出等多种硬件设备共同组成的,而能让各种硬件设备各司其职且又能协同运行的东西就是系统内核,Linux系统的内核负责完成对硬件资源的分配、调度等管理任务,对系统的正常运行起着十分重要的作用。
Shell就是终端程序的统称,它担当起了人与内核(硬件)之间的翻译工作,用户把一些命令“告诉”终端程序,它就会调用相应的程序服务去完成某些工作。现在许多主流Linux系统默认使用的终端是Bash(Bourne-Again SHell)解释器,主要有以下4项优势:
1:通过上下方向键来调取过往执行过的Linux命令;
2:命令或参数仅需输入前几位就可以用Tab键补全;
3:强大的批处理脚本;
4:实用的环境变量功能。
命令格式
命令名称 [命令参数] [命令对象]
命令名称:就是我们语法中的“动词”,表达的是想要做的事情,例如创建用户、查看文件、重启系统等等的操作。
命令参数:用于对命令进行调整,让“修改”过的命令能更好的贴合于工作需求,达到事半功倍的效果。参数可以用长格式(完整单词),也可以用短格式(单个字母缩写),两者分别用“--”与“-”作为前缀。
命令对象:一般指要处理的文件、目录、用户等资源名称,也就是命令执行后的“承受方”,例如创建一名叫小明的用户、查看一个叫工资表的文件、重启一个IP为192.168.10.10的系统等等。
注:命令名称、命令参数与命令对象之间要用空格进行分隔,且严格区分大小写字母。
Linux 命令
man:(单词manual的缩写,即使用手册的意思)该命令会列出一份完整的说明。 其内容包括命令语法、各选项的意义及相关命令 。更为强大的是,不仅可以查看Linux中命令的使用帮助,还可以查看软件服务配置文件、系统调用、库函数等帮助信息,man手册页文件存放在/usr/share/man目录下,语法格式:man [命令]。
常用系统工作命令
echo:用于在终端设备上输出字符串或变量提取后的值,这是在Linux系统中最常用的几个命令之一,但操作却非常简单,语法格式:echo [参数] [字符串]。
date:用于显示或设置系统的时间与日期,语法格式为:“ date [+指定的格式]”。 "+%Y-%m-%d %H:%M:%S"
reboot:用于重启系统,输入后回车执行即可。
poweroff:于关闭系统,输入后回车执行即可。(halt \ init \ init 0)
wget:用于在终端命令行里下载网络文件,英文全称为:“web get”,语法格式为:“wget [参数] 网址”。 -c 断点续传
ps:用于查看系统中的进程状态,英文全称为:“processes”,语法格式为:“ps [参数]”。
R: 正在运行
S: 等待服务(休眠状态)
D: 不可被中断进程
Z: 僵死进程 \ 没有服务状态
T: stopped 被停止的服务
例:
ps aux all user 显示没有终端的进程,指系统所开启的进程或后台进程
ps aux | wc -l 查看行数
ps aux | grep ssh 过滤
top:用于动态地监视进程活动及系统负载等信息,输入后回车执行即可,语法格式为:“top [参数]”。
5,6,7版本中 1 user 为终端数量, 8版本中代表登录用户数量
负载 1分钟 5分钟 15分钟 # 核心数*5 有超负载需要注意cpu有可能不够用了 cpu队列
Tasks: 430 total, 2 running, 428 sleeping, 0 stopped, 0 zombie
总进程: 430 2 运行 428 休眠等待 0 被关闭 0 个僵死进程
cpu 0.0 us, 99.0 id
使用值 cpu空闲值
MiB Mem: 1966.1 total, 146.5 free, 1374.2 used, 445.5 buff/cache
物理内存 M 空闲内存 已使用 和硬盘交互的值 调优的时候用到
MiB Swap: 2048.0 total,
交换分区(将一部分的硬盘空间拿来充当内存使用)
pid user PR NI
唯一值 用户 优先级越小越好
pidof:用于查询某个指定服务进程的PID号码值,语法格式为:“pidof [参数] 服务名称”。
kill:用于终止某个指定PID值的服务进程,语法格式为:“kill [参数] 进程的PID”。
killall:用于终止某个指定名称的服务所对应的全部进程,语法格式为:“killall [参数] 服务名称”。
系统状态检测命令
ifconfig:用于获取网卡配置与网络状态等信息,英文全称为:“interface config”,语法格式为:“ifconfig [参数] [网络设备]”。
Rhel5\6版本 eth0 eth1 eth2
Rhel7 ens16777728 ens16777728
Rhe8 ens160
iftop是一款实时流量监控工具,监控TCP/IP连接等,缺点就是无报表功能。必须以root身份才能运行。
uname:用于查看系统内核版本与系统架构等信息,英文全称为:“Unix name”,语法格式为:“uname [-a]”。
linux 主机系统 主机名称 内核版本号 系统发现时间 系统架构硬件 内核 系统 系统名称
uptime:用于获取主机运行时间和查询Linux系统负载等信息。,输入后回车执行即可,语法格式:uptime [参数]。
free:用于显示系统中物理上的空闲和已用内存,还有交换内存,同时,也能显示被内核使用的缓冲和缓存。这些信息是通过解析文件 /proc/meminfo 而收集到的。语法格式为:“free [-h]”。
who:用于查看当前登入主机的用户终端信息,输入后回车执行即可,语法格式: who [参数] [选项]。who命令的输出信息默认来自文件“/var/log/utmp”和“/var/log/wtmp”。
last:用于调取主机的被访记录,输入后回车执行即可,语法格式:last [选项]。执行last命令时,它会读取/var/log目录下名称为wtmp的文件,并把该文件记录的登录系统或终端的用户名单全部显示出来。默认显示wtmp的记录,btmp能显示的更详细,可以显示远程登录。
history:用于显示执行过的命令历史,语法格式为:“history [-c]”。 !编号 快速使用已使用的命令
sosreport:用于收集系统配置及架构信息并输出诊断文档,输入后回车执行即可。
工作目录切换命令
pwd:用于显示用户当前所处的工作目录,英文全称为:“print working directory”,输入后回车执行即可,语法格式: pwd [参数]。
cd:用于切换当前的工作路径,英文全称为:“change directory”,语法格式为:“cd [参数] [目录]”。
cd ~ 跳转到用户家目录
cd .. 跳转到上一级目录
cd - 跳转到上一次目录
ls:用于显示目录中的文件信息,英文全称为:“list”,语法格式为:“ls [参数] [文件名称]”。
文本文件编辑命令
cat:用于查看纯文本文件(内容较少的),英文全称为:“concatenate”,语法格式为:“cat [参数] 文件名称”。
more:用于查看纯文本文件(内容较多的),语法格式为:“more [参数] 文件名称”。
按 空格 下一屏
B键 上-屏
按 Enter 向下一行
head:用于查看纯文本文件的前N行,语法格式为:“head [参数] 文件名称”。
tail:用于查看纯文本文件的后N行或持续刷新文件的最新内容,语法格式为:“tail [参数] 文件名称”。 -f 实时刷新
tr:用于替换文本内容中的字符,英文全称为:“translate”,语法格式为:“tr [原始字符] [目标字符]”。
例 小写字转大写 cat 文件名 | tr [a-z] [A-Z]
wc:用于统计指定文本文件的行数、字数或字节数,英文全称为:“word counts”,语法格式为:“wc [参数] 文件名称”。
stat:用于查看文件的具体存储细节和时间等信息,英文全称为:“status”,语法格式为:“stat 文件名称”。
Atime 最后一次访问文件内容的时间 Access
Mtime 最后一次修改文件内容的时间 Modify
Ctime 最后一次修改文件属性的时间 Change
cut:用于按列提取文本内容,语法格式为:“cut [参数] 文件名称”。
diff:用于比较多个文件之间内容的差异,英文全称为:“different”,语法格式为:“diff [参数] 文件名称A 文件名称B”。
diff --brief a.txt b.txt 比较两个文件是否有不同
diff -c a.txt b.txt 列出两个文件不同的地方
查看10 - 30 的数据 head -n 30 文件名 | tail -n 20
文件目录管理命令
touch:用于创建空白文件或设置文件的时间,语法格式为:“touch [参数] 文件名称”。
touch -d "00:00" 对象名称 修改文件的最后访问时间 和修改时间
mkdir:用于创建空白的目录,英文全称为:“make directory”,语法格式为:“mkdir [参数] 目录名称”。
创建递归目录 -p
cp:用于复制文件或目录,英文全称为:“copy”,语法格式为:“cp [参数] 源文件名称 目标文件名称”。
复制目录 -r
保留属性权限 -a
mv:用于剪切或重命名文件,英文全称为:“move”,语法格式为:“mv [参数] 源文件名称 目标文件名称”。
rename 重命名
rm:用于删除文件或目录,英文全称为:“remove”,语法格式为:“rm [参数] 文件名称”。
-f false 忽略提醒
-r Recursion 递归
dd:用于按照指定大小的数据块个数来复制文件或转换文件,语法格式为:“dd if=参数值 of=参数值 count=参数值 bs=参数值”。
if input file
ofoutput file
count
bs
dd if=文件名 of=新文件名 bs=大小字节 count=份数数字
硬盘目录 /dev/sda
前边第一扇区里面512字节保存的是
446 ibml 主电脑记录
64 4份 每份16字节分区表的指针
2 结束符
备份分区表 dd if=/dev/sda of=backup count=1 bs=512
file:用于查看文件的类型,语法格式为:“file 文件名称”。
打包压缩与搜索命令
tar:用于对文件进行打包压缩或解压,语法格式为:“tar 参数 文件名称”。
grep:用于按行提取文本内容,语法格式为:“grep [参数] 文件名称”。
grep 关键词 文件
例:
grep /bin/bash /etc/passwd #提取可登录系统的用户
find:用于按照指定条件来查找文件所对应的位置,语法格式为:“find [查找范围] 寻找条件”。
find / -user 用户名 #查找出系统中所有关于该用户的文件
find / -mtime -1 1天内被修改的文件
passwd:用于设置用户的认证信息,包括用户密码、账户锁定、密码失效等。直接运行passwd命令修改当前的用户密码,对其他用户的密码操作需要管理员权限,语法格式为:“passwd 用户名”。