linux基本介绍

码农天地 -
linux基本介绍


Shell(终端或壳):人与内核(硬件)之间的翻译官,用户把一些命令“告诉”终端,它就会调用相应的程序服务去完成某些工作。现在包括[红帽]系统在内的许多主流Linux系统默认使用的终端是Bash(Bourne-Again SHell)解释器。

Linux命令结构

命令名称 [命令参数] [命令对象]
PS:命令名称、命令参数、命令对象之间用空格分隔

命令对象一般是指要处理的文件、目录、用户等资源命令参数可以用长格式(完整的选项名称),也可以用短格式(单个字母的缩写),两者分别用--与-作为前缀 例:--help -hLinux必知必会的命令man
快捷键
    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

*结构:uname [-a]
*场景:查看系统内核与系统版本等信息

1、uname -a

2、cat /etc/redhat-release   #系统详细详细
uptime

*结构:uptime
*场景:查看系统负载信息,显示当前系统时间、系统已运行时间、启用终端数量以及平均负载值等信息。平均负载值指的是系统在最近1分钟、5分钟、15分钟内的压力情况;负载值越低越好,尽量不要长期超过1,在生产环境中不要超过5。

free

*结构:free [-h]
*场景:查看当前系统中内存的使用量信息

who

*结构:who [参数]
*场景:查看当前登入主机的用户终端信息

last

*结构:last [参数]
*场景:查看所有系统的登录记录

history

*结构: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 
特别申明:本文内容来源网络,版权归原作者所有,如有侵权请立即与我们联系(cy198701067573@163.com),我们将及时处理。
下一篇: shell脚本实例

Tags 标签

加个好友,技术交流

1628738909466805.jpg