linux基本介绍
码农天地 -
Shell(终端或壳):人与内核(硬件)之间的翻译官,用户把一些命令“告诉”终端,它就会调用相应的程序服务去完成某些工作。现在包括[红帽]系统在内的许多主流Linux系统默认使用的终端是Bash(Bourne-Again SHell)解释器。
命令名称 [命令参数] [命令对象]
PS:命令名称、命令参数、命令对象之间用空格分隔
快捷键
1、空格键 #向下翻一页
2、PaGe down #向下翻一页
3、PaGe up #向上翻一页
4、home #直接前往首页
5、end #直接前往尾页
6、/ #从上至下搜索某个关键词,如“/linux”
7、? #从下至上搜索某个关键词,如“?linux”
8、n #定位到下一个搜索到的关键词
9、N #定位到上一个搜索到的关键词
10、q #退出帮助文档
2、帮助信息
1、NAME 命令的名称
2、SYNOPSIS 参数的大致使用方法
3、DESCRIPTION 介绍说明
4、EXAMPLES 演示(附带简单说明)
5、OVERVIEW 概述
6、DEFAULTS 默认的功能
7、OPTIONS 具体的可用选项(带介绍)
8、ENVIRONMENT 环境变量
9、FILES 用到的文件
10、SEE ALSO 相关的资料
11、HISTORY 维护历史与联系方式
echo*结构:echo [字符串 | $变量]
1、echo "helloWorld"
2、echo $PATH
date*结构:date [选项] [+指定的格式]
*场景:日志、备份数据等
date命令中的参数以及作用
%S 秒(00~59)
%M 分钟(00~59)
%H 小时(00~23)
%I 小时(00~12)
%m 月份(1~12)
%p 显示出AM或PM
%a 缩写的工作日名称(例如:Sun)
%A 完整的工作日名称(例如:Sunday)
%b 缩写的月份名称(例如:Jan)
%B 完整的月份名称(例如:January)
%q 季度(1~4)
%y 简写年份(例如:20)
%Y 完整年份(例如:2020)
%d 本月中的第几天
%j 今年中的第几天
%n 换行符(相当于按下回车键)
%t 跳格(相当于按下Tab键)
1、date
2、date "+%Y-%m-%d %H:%M:%S"
wget*结构:wget [参数] 下载地址
wget命令的参数以及作用
-b 后台下载模式
-P 下载到指定目录
-t 最大尝试次数
-c 断点续传
-p 下载页面内所有资源,包括图片、视频等
-r 递归下载
1、wget命令递归下载网站内的所有页面数据以及文件
wget -r -p http://www.baicu.com
ps*结构:ps [参数]
*场景:搭配管道符,用来抓取与某个指定服务进程相对应的PID号码
ps命令的参数以及作用
-a 显示所有进程(包括其他用户的进程)
-u 用户以及其他详细信息
-x 显示没有控制终端的进程
Linux系统中,5种常见的进程状态:
**R(运行):进程正在运行或在运行队列中等待。
**S(中断):进程处于休眠中,当某个条件形成后或者接收到信号时,则脱离该状态。
**D(不可中断):进程不响应系统异步信号,即便用kill命令也不能将其中断。
**Z(僵死):进程已经终止,但进程描述符依然存在, 直到父进程调用wait4()系统函数后将进程释放。
**T(停止):进程收到停止信号后停止运行。
top*结构:top
*场景:动态地监视进程活动与系统负载等信息,顶配版Windows任务管理器
第1行:系统时间、运行时间、登录终端数、系统负载(三个数值分别为1分钟、5分钟、15分钟内的平均值,数值越小负载越低)。
第2行:进程总数、运行中的进程数、睡眠中的进程数、停止的进程数、僵死的进程数。
第3行:用户占用资源百分比、系统内核占用资源百分比、改变过优先级的进程资源百分比、空闲的资源百分比等。其中数据均为CPU数据并以百分比格式显示,例如“88.2 id”意味着有88.2%的CPU处理器资源处于空闲。
第4行:物理内存总量、内存空闲量、内存使用量、作为内核缓存的内存量。
第5行:虚拟内存总量、虚拟内存空闲量、虚拟内存使用量、已被提前加载的内存量。
pidof*结构:pidof [参数] [服务名称]
*场景:查询某个指定服务进程的PID值
1、pidof sshd
kill*结构:kill [参数] [进程PID]
*场景:终止某个指定PID的服务进程
1、kill 123
killall*结构:killall [参数] [服务名称]
*场景:终止某个指定名称的服务所对应的全部进程
1、pidof httpd killall httpd #终止所有httpd服务的进程
ifconfig*结构:ifconfig [网络设备] [参数]
*场景:查看本机当前的网卡配置与网络状态,主要查看:网卡名称、inet参数后面的IP地址、ether参数后面的网卡物理地址(又称为MAC地址),以及RX、TX的接收数据包与发送数据包的个数及累计流量
*结构:uname [-a]
*场景:查看系统内核与系统版本等信息
1、uname -a
2、cat /etc/redhat-release #系统详细详细
uptime*结构:uptime
*场景:查看系统负载信息,显示当前系统时间、系统已运行时间、启用终端数量以及平均负载值等信息。平均负载值指的是系统在最近1分钟、5分钟、15分钟内的压力情况;负载值越低越好,尽量不要长期超过1,在生产环境中不要超过5。
*结构:free [-h]
*场景:查看当前系统中内存的使用量信息
*结构:who [参数]
*场景:查看当前登入主机的用户终端信息
*结构:last [参数]
*场景:查看所有系统的登录记录
*结构:history [-c]
*场景:查看显示历史执行过的命令
历史命令会被保存到用户家目录中的.bash_history文件中
1、ctrl+r #搜索命令
2、!12 #执行第12个命令
3、!! #执行上一个命令
4、history -c #清空当前用户在本机上执行的Linux命令历史记录信息
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 匹配文件类型(后面的字幕字母依次表示块设备、目录、字符设备、管道、链接文件、文本文件)
-size 匹配文件的大小(+50KB为查找超过50KB的文件,而-50KB为查找小于50KB的文件)
-prune 忽略某个目录
-exec …… {}\; 后面可跟用于进一步处理搜索结果的命令
1、find /etc/ -name "host*" -print #获取host开头的文件
2、find / -perm -4000 -print #在整个系统中搜索权限中包括SUID权限的所有文件
3、find / -user www -exec cp -a {} /root/findresults/ \; #找出所有归属于www用户的文件并复制到/root/findresults目录
PS:“-exec {} \;”参数,其中的{}表示find命令搜索出的每一个文件,并且命令的结尾必须是“\;”
grep*结构:grep [选项] [文件]
*场景:在文本中执行关键词搜索
grep命令的参数及其作用
-b 将可执行文件(binary)当作文本文件(text)来搜索
-c 仅显示找到的行数
-i 忽略大小写
-n 显示行号
-v 反向选择——仅列出没有“关键词”的行。
1、grep /sbin/nologin /etc/passwd #查找出当前系统中不允许登录系统的所有用户信息
tar*结构:tar [选项] [文件]
*场景:对文件进行打包压缩或解压
tar命令的参数及其作用
-c 创建压缩文件
-x 解开压缩文件
-t 查看压缩包内有哪些文件
-z 用Gzip压缩或解压
-j 用bzip2压缩或解压
-v 显示压缩或解压的过程
-f 目标文件名(必须放到参数最后)
-p 保留原始的权限与属性
-P 使用绝对路径来压缩
-C 指定解压到的目录
1、tar -czvf 压缩包名称.tar.gz 要打包的目录
2、tar -xzvf 压缩包名称.tar.gz 解压的目录
file*结构:file 文件名
*场景:查看文件的类型
1、file test.txt
dd*结构:dd [参数]
*场景:按照指定大小和个数的数据块来复制文件或转换文件
/dev/zero设备文件,这个文件不会占用系统存储空间,但却可以提供无穷无尽的数据
dd命令的参数及其作用
if 输入的文件名称
of 输出的文件名称
bs 设置每个“块”的大小
count 设置要复制“块”的个数
1、dd if=/dev/zero of=560_file count=1 bs=560M #取出一个大小为560MB的数据块,然后保存成名为560_file的文件
2、 dd if=/dev/cdrom of=RHEl-server-7.com.iso #把光驱设备中的光盘制作成iso格式的镜像文件
rm*结构:rm [选项] 文件
*场景:删除文件或目录
rm -rf 123
mv*结构:mv [选项] 源文件 [目标路径|目标文件名]
*场景:剪切文件或将文件重命名
mv 123 123
cp*结构:cp [选项] 源文件 目标文件
*场景:复制文件或目录
cp命令的参数及其作用
-p 保留原始文件的属性
-d 若对象为“链接文件”,则保留该“链接文件”的属性
-r 递归持续复制(用于目录)
-i 若目标文件存在则询问是否覆盖
-a 相当于-pdr(p、d、r为上述参数)
Linux系统中,复制操作具体分为3种情况:
> 如果目标文件是目录,则会把源文件复制到该目录中;
> 如果目标文件也是普通文件,则会询问是否要覆盖它;
> 如果目标文件不存在,则执行正常的复制操作。
1、cp 123 456
mkdir*结构:mkdir [选项] 目录
*场景:创建空白的目录
mkdir -p 123
touch*结构:touch [选项] [文件]
*场景:创建空白文件或设置文件的时间
touch命令的参数及其作用
-a 仅修改“读取时间”(atime)
-m 仅修改“修改时间”(mtime)
-d 同时修改atime与mtime
1、touch 123
diff*结构:diff [参数] 文件
*场景:比较多个文本文件的差异
1、diff -c 123 345
cut*结构:cut [参数] 文本
*场景:按“列”提取文本字符
1、cut -d: -f1 /etc/passed #提取出passwd文件中的用户名信息,即提取以冒号(:)为间隔符号的第一列内容
stat*结构:stat 文件名称
*场景:查看文件的具体存储信息和时间等信息
1、stat 123
wc*结构:wc [参数] 文本
*场景:统计指定文本的行数、字数、字节数
wc的参数以及作用
-l 只显示行数
-w 只显示单词数
-c 只显示字节数
1、wc -l /etc/passwd
tr*结构:tr [原始字符] [目标字符]
*场景:替换文本文件中的字符
1、cat 123 | tr [a-z][A-Z] #把某个文本内容中的英文全部替换为大写
tail*结构:tail [选项] [文件]
*场景:查看纯文本文档的后N行或持续刷新内容
1、tail -f 123.log
head*结构:head [选项] [文件]
*场景:查看纯文本文档的前N行
1、head -n 20 123.log
more*结构:more [选项]文件
*场景:查看纯文本文件(内容较多的);空格键或回车键向下翻页
1、more 123.log
cat*结构:cat [选项] [文件]
*场景:查看纯文本文件(内容较少的)
1、cat -n 123.log #显示行号
ls*结构:ls [选项] [文件]
*场景:显示目录中的文件信息
1、ls -al #显示所有文件的详细信息
cd*结构:cd [目录名称]
*场景:切换工作路径
1、cd /etc/123
pwd*结构:pwd [选项]
*场景:切换工作路径
1、pwd
sosreport*结构:sosreport
*场景:收集系统配置及架构信息并输出诊断文档
1、sosreport
sed*结构:sed:字符流编辑=====每次修改一行数据,擅长“行”操作
*场景:
*功能【增、删、改、查】:擅长行操作+修改文件内容
*原理:将行内容读取到内存中处理,不是直接操作文件,源文件还是放在硬盘的block里,更新的内容可以利用参数刷新到磁盘中
1、sed -i "s#123#112#g" #123替换为112
awk*结构:awk
*场景:字符流编辑=====每次修改一列数据,擅长“列”操作
1、awk -F, '{print $1,$2}' log.txt
xargs*结构:xargs
*场景:给命令传递参数的一个过滤器,可以将管道或标准输入(stdin)数据转换成命令行参数,也能够从文件的输出中读取数据;可以将单行或多行文本输入转换为其他格式,例如多行变单行,单行变多行。
1、find /sbin -perm +700 |xargs ls -l