代码编织梦想

前言

shell是一种脚本语言, 需要有编译器执行
即:应用程序->shell->操作系统->硬件

bash是linux下默认的shell
sh是unix下默认的shell

多命令执行:
xx && xx: 前面执行成功才会执行后面的命令
xx || xx: 前面执行失败才会执行后面的命令
xx ; xx : 前后无关联,按顺序执行

与操作:
xx | xx: 对前面执行结果继续后面命令操作

重定向输入/输出:< , >
stdin:  标准输入,代码:0
stdout: 标准输出,代码:1
stderr:标准错误输出,代码:2
> file:  覆盖输出正确信息
>> file: 追加输出正确信息
2> file: 覆盖输出错误信息
> file 2>&1: 合并覆盖输出错误和正确信息到一个文件

api文档

系统操作类指令

mkdir
作用新建文件夹
格式mkdir [option]... DIRECTORY...
示例rm -rf /xx/xx
option-p递归创建
-m设置目录访问权限mode,如777
rm
作用删除
格式rm [option]... FILE...
示例rm -rf /xx/xx
option-f强制删除
-r递归删除
-i|-l删除前确认|删除超过3个文件以下或递归删除需要确认
-d删除空目录
-v列出详细信息
chmod
作用权限赋予
格式chmod [option] [权限] [目录或文件]
示例chmod -R 777 /xxx/xxx
option-R给目录下所有文件(递归)授予权限
权限777所有权限
groupadd
作用新增用户组
格式groupadd [option]
示例groupadd -g 8888 gadmin
option-g指定组id
-p使用加密过的密码
-r建立系统工作组,id必须小于500
useradd
作用新增用户
格式useradd [option]
示例useradd admin -g gadmin -G root
option-g指定用户所属组
-G附加群组
-d指定用户登入的起始目录
-u指定用户id
-r建立系统账号
-s指定用户登入后使用的shell
-p设置密码
chown
作用设置文件用户和用户组
格式chown [option]... [OWNER][:[GROUP]] FILE...
示例chown -R admin:gadmin /xxx/xx
option-R递归修改
-c显示更改部分信息
-f忽略错误信息
-h修复符号链接
-v显示详细处理信息
-H命令行参数是指向目录的符号链接,则遍历它
-L遍历遇到的每个指向目录的符号链接
-P不遍历任何符号链接(默认)

文件文本相关指令

stat
作用查看文件状态
格式stat [option] /xx/xx
示例stat /xx/xx
option-L跟踪软连接文件原始文件状态信息
-f查看文件的文件系统状态信息
-t简洁打印文件状态信息
-c指定格式打印文件状态信息
-c %i: inode
%u: 用户ID
%U: 用户
%g: 用户组ID
%G: 用户组
%m: 磁盘挂载点
%x|y|z: 文件访问|修改|更改时间
%A|a: 文件权限
其余查看stat --help自行翻译
cat
作用查看文件内容
格式cat [option] /xx/xx
示例cat /xx/xx
option-A展示所有
-b对非空输出行编号
-n对所有输出行编号
-s连续空行转换为一个空行
-e等价与 -vE
-v除了LFD和TAB之外不可打印的字符用^和M-标记方式显示
-E每行结束地方显示$
-t|-TTAB显示为^|
tail
作用查看文件末尾内容
格式tail [option] /xx/xx
示例tail -f /xx/xx
option-f循环读取
-q不显示处理信息
-v显示详细处理信息
-c显示的字节数
-n显示行数
-q从不输出文件的头部
-s-f下每次休眠间隔s秒
--pid=PID-f下在pid进程死掉后结束
vi | vim
作用编辑文件
格式vi /xx/xx
示例vi /xx/xx
内部操作移动光标0: 文章开头
G: 文章末尾
$: 行尾
^: 行首
w: 下个字开头
e: 下个字结尾
b: 上个字开头
#|: 该行第#个位置
删除[#]dd: 从光标开始删除[#]行
[#]x|X: 删除光标后面|前面的[#]个字符
复制[#]yy: 从光标往下数复制[#]行
[#]yw: 复制光标到字尾[#]个字
p: 粘贴
替换r: 替换光标所在处字符
R: 替换光标所到之处字符,按esc结束
撤回u: 撤回到上一个操作
更改c[#]w: 更改[#]个字
跳转ctrl+g: 列出光标所在行号
#G: 移动光标到第#行行首
last line mode
按esc键后输入
格式:[xxx]
set nu展示行号
set ff[?|=unix|=dos][查看|修改]文件格式[为unix|dos]
#跳到#行
/关键字查找关键字,n往后,N往前
?关键字查找关键字,n往前,N往后
w保存
q[!][放弃修改]退出
wq保存后退出
sort
作用排序显示文本(默认升序)
格式sort [option] [目录或文件]
示例sort -u /xxx/xxx
option-u去重
-r降序
-o输出结果到文件
-n数值排序
-h以人类可读的数值排序
-t :按:分列
-k N按第几列排序
-f忽略大小写
-c检查文件排序,输出第一个乱序行的信息,最后返回1
-C与-c一样,只是不输出内容只返回1
-M月份排序
-b忽略空白部分,从第一个可见字符排序
awk
作用抽取文件或字符串中的信息
格式awk [option] '[condition]COMMAND' FILE
示例awk -F 'print $1,$3' /etc/passwd
option-F '<分隔符>'|fs='<分隔符>'指定分隔符,如:,默认是空格或tab
-f FILE指定文件中读取awk脚本指令
-v var=val执行处理之前设置变量var初始值val

查找匹配指令

find
作用目录中搜索文件
格式find [path...] [expression]
expression=[operators|options|tests|actions]
示例find / -xdev -size 100M -exec ls -l {} \;
operators(!|-not)expr; expr1 (-a|-and) expr2; expr1 (-o|-or) expr2; expr1,expr2
options-xdev不会进入到挂载点目录执行但仍然会列出,如/dev,/sys
就是把其他文件系统目录当成整体搜索,而不会搜索到目录里面
-maxdepth最多搜索几层
-depth查看目录之前先搜索目录的内容
-follow遇到符号链接文件,跟踪链接指向文件搜索
tests-amin/-atime N查找最后N分钟/天访问的文件
-cmin/-ctime N查找最后N分钟/天被需修改文件状态的文件
-mmin/-mtime N查找最后N分钟/天被修改文件数据的文件
-name pattern按文件名查找
-path pattern指定目录查找
-perm xx按文件权限查找
-user name按文件归属用户查找
-group name按文件归属组查找
-nouser|-nogroup按没有归属[用户|组]查找
-newer file按比file修改时间新查找
-type [bcdpflsD]查找某类型文件
b:块设备文件
c:字符设备文件
d:目录
p:管道文件
f:普通文件
l:符号链接文件
s:socket套接字
-size N[bcwkMG]按文件大小为N个单位查找
b:512位元组的区块
c:字元数
k:kilo bytes
w:2个位元组
actions-prune在指定目录之外查找
-print|-print0查找到的文件标准打印(末尾加换行符)|末尾加null字符
-exec command {} ;对所有查找结果(这里{}指的是当前一个查找结果)执行shell指令
;是列表操作符,需要转义(\;)
-ok command {} ;更安全的exec操作,每次执行命令前都会提示用户是否执行
grep
作用文本搜索工具
格式grep [option] [pattern] /xx/xx
示例grep -i -n "^x" xx.txt
option-i不区分大小写
-n显示匹配行号
-v排除匹配结果
-c只统计匹配行数
-E使用egrep命令
-w只匹配过滤的单词
-o只显示匹配的内容,不显示整行
--color=auto过滤结果添加颜色
whereis
作用定位某个命令使用的二进制文件、源文件、手册文件
格式whereis [option]
示例whereis docker
option-b找二进制文件
-m找手册文件
-s找源文件
-f不显示文件的目录名
-u找不包含指定类型的文件
-B 指定目录下找二进制文件
-M 指定目录下找手册文件
-S 指定目录下找源文件
which
作用查找某个命令的位置
格式which command [args]
示例which docker
option-n 文件名长度大于num
-p 绝对路径长度大于num
-w指定输出栏位宽度

进程相关指令

nohup
作用不挂起运行命令(加&则是挂起)
格式nohup [COMMAND] [ARG] [&]
示例nohuo java -jar xx.jar &
ps
作用展示当前进程信息
格式ps [option]
示例ps -ef|grep 9090
打印格式USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
STATD:无法中断的休眠状态(通常IO的进程)
R:正在执行中
S:静止
T:暂停
Z:不存在但暂时无法消除
W:没有足够的记忆体分页可分配
<:高优先序的行程
N:低优先序的行程
option-e|-A所有进程
-f全格式显示
-a除了会话主持进程外的所有进程显示tty
-d显示除了会话主持进程之外所有进程
-u有效的用户id或名字
-x显示没有控制终端的进程
netstat
作用显示网络连接、路由表和网络接口信息
格式netstat [option]
示例netstat -anp|grep docker
打印格式Proto
Recv-Q
Send-Q
Local Address
Foreign Address
State
PID/Program name
协议
网络接收队列
网络发送队列
内网IP地址
外网IP地址
状态
进程ID和应用程序名
StateLISTEN:侦听远程tcp端口连接请求
SYN_SENT:tcp第一次握手等待服务器确认的状态
SYN_RECV:tcp第二次握手服务端等待客户端确认的状态
ESTABLISHED:tcp三次握手成功状态
FIN-WAIT-1:主动关闭端关闭应用端程序,tcp发出FIN请求主动关闭连接后进入的状态
FIN-WAIT-2:主动关闭端接到ACK后进入的状态
CLOSE-WAIT:被动关闭端接到FIN后,发出ACK回应FIN请求后进入的状态
CLOSING:等待远程TCP对连接中断请求的确认
LAST-ACK:被动关闭端一段时间后接收到文件结束符的应用程序调用CLOSE,也发送FIN等待对方的ACK后进入的状态
TIME-WAIT:主动关闭端接收到FIN后,TCP发送ACK包后进入的状态
CLOSED:被动关闭端接收到ACK后进入的状态
option-a所有连接
-n显示ip地址而不是域名
-p显示PID和应用程序名
-r显示路由表
-i显示网络接口表
-g显示多重广播功能群组组员名单
-s显示网络工作信息统计表
-M显示伪装的网络连线
-v显示指令执行过程
-W显示ip地址且不截断
-N显示网络硬件外围设备的符号连接名称
-e显示网络其他相关信息
-o显示计时器
-c持续列出网络状态(每隔一秒)
-l显示所有监控中服务器的socket(一般关注端口)
-F显示FIB
-C显示路由器配置的快取信息而不是FIB
-t显示tcp协议的连线状况
-u显示udp协议的连线状况
-x显示unix类型的连线状况,相当于-A unix
--ip显示inet类型的连线状况,相当于-A inet
-A |--networktype列出网络类型连线中的相关地址

工具类指令

tar
作用解压缩
格式tar [function] [option] /xxx/xx
示例压缩:tar -zcvf /xx/xx.tar.gz /xxx
解压缩: tar -zxvpf /xx/xx.tar.gz /xxx
function(-c|--create)|--delete|(-u|--update)|(-t|--list)增删改查tar文件
删除功能不能用于已保存在磁带上的文件
-x|--extract|--get解开tar文件
-r|--append附加新文件到tar文件
-A|--catenate|--concatenate追加tar文件作为一个整体到另一个tar文件
-d|--diff|--compare将文件系统里的文件和tar文件里的文件比较
option-v|--verbose列出每一步处理的文件信息
v: 仅文件名
vv: 权限、文件名等·详细信息
-k|--keep-old-files不覆盖已有文件
-f|--file指定要处理的文件名
-P|--absolute-names绝对路径
-j|--bzip2使用bizp2解压缩
-J|--xz|--lzma调用XZ Utils解压缩
-z|--gzip|--gunzip|--unzip调用gzip解压缩
-Z|--compress|--uncompress调用compress解压缩
zip|unzip
作用zip解压缩
格式zip [option] /xx/xx.zip /xx/xx.txt
示例压缩: zip -r /xx/xx.zip /xx/xx
解压缩: unzip /xx/xx.zip /xx/xx
option-r递归处理,即目录下所有目录和文件
-b指定存放文件的目录
-d删除压缩内指定文件
-f更新压缩包文件
-m压缩并加入压缩文件,后删除原始文件
-q不显示执行过程
-v显示执行过程或版本信息
-sf显示文件
scp
作用基于ssh协议的远程拷贝
格式scp [option] /xxx user@ip:/xx/xx
示例scp -r /xx/xx root@x.x.x.x:/xx/xx
option-r递归拷贝
-C复制过程中压缩文件或目录
-P指定ssh端口
-p保留文件访问和修改时间
date
作用时间操作
格式date [option] [参数]
示例date -s '2022-10-21 00:00:00'
option没参数显示系统时间
+%F显示日期
+%Y|m|d显示系统年|月|日
+%w显示星期几
+%z|Z显示时区
-s|--set [日期]设置系统时间
hwclock
作用操作硬件时钟
格式hwclock [functions] [option]
示例hwclock --show
functions-r|--show显示系统硬件时间
--set --date ['08/02/2012 12:00:00']设置硬件时间为date指定的时间
-s|--hctosys同步到系统时间
tzselect
作用修改时区
格式tzselect
示例tzselect, 界面中选择时区
再链接ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
再修改时间配置文件:/etc/sysconfig/clock

磁盘相关指令

df
作用显示整个磁盘分区的使用情况
格式df [option] [目录或文件]
示例df -h /xxx/xxx
option-h显示空间大小
du
作用递归查看当前目录的大小(默认kb单位)
格式du [option] [目录或文件]
示例du -h /xxx/xxx
option-h递归显示当前目录空间大小(MB为单位)
-sh [*]只查看当前目录大小[及包含目录]
--time递归查看当前目录的大小和时间
mount
作用挂载系统
格式mount [option]
示例mount /dev/sdb /xxx/xx
option-f模拟挂载过程,用于检错,和-v一起用
-v显示执行信息
-a将/etc/fstab定义的所有档案系统挂上
实现开机自动挂载,也可单独编辑/etc/fstab实现
UUID=xxxxx /d /nfts(这里来自第二步) defaults 0 0
-F为每个挂载设备分叉执行,与-a一起用
用于挂载大量NFS系统时加速
-n不在/etc/mtab写入挂载资料,因此mount或df无法查看挂载信息
-r|-w只读|只写
source-L挂载指定标签的硬盘,相当于LABEL=
-U挂载指定uuid的系统
-U|-L前提是/proc/partition存在
umount
作用卸载系统
格式umount [option] |
示例umount /dev/sdb
option-f强制卸载
比如无法访问NFS系统的情况下
-v显示执行信息
-a卸载所有系统(/etc/mtab中记录的系统)
-n不在/etc/mtab写入卸载资料
-l分离文件系统,稍后清除
-r无法卸载情况下以只读方式重新挂载
lvdisplay | pvdisplay
作用显示[逻辑|物理]卷信息
格式[lvdisplay|pvdisplay] [option] [逻辑卷|物理卷路径]
示例[lvdisplay|pvdisplay] -m /xxx
option-m显示映射关系
lvremove | pvremove
作用删除逻辑卷|物理卷信息
格式lvremove|pvremove [option] [逻辑卷路径]
示例lvremove|pvdisplay -f /xxx
option-f强制删除
--noudevsync(lvremove)禁用udev同步
-y(pvremove)所有问题都回yes
lvextend
作用扩容
格式lvextend [option] [逻辑卷路径]
示例lvextend -L +100G /xxx
option-L +N[MGTP]扩容逻辑卷大小N,单位(MGTP)
-l +num扩容逻辑盘区数
--noudevsync禁用udev同步
-f扩容不提示
-r使用fsadm调整与逻辑卷相关的文件系统
-n扩展前不要执行fsck
xfs_growfs
作用扩展xfs文件系统
格式xfs_growfs [option] [挂载点]
示例xfs_growfs /xxx/xx
option-L [size]指定日志区域大小
-D [size]指定扩展文件系统数据部分的大小
-d将文件系统数据部分扩展到底层设备最大的大小
-m指定文件系统中可分配为inode的最大空间百分比新值

致力于分享API风格式的技术笔记,只求快速查阅知识点,不求绝对准确和多余扩展,欢迎留言讨论
有帮助到你的话,关注点赞收藏一键三连哦,博主会不断分享更多技术API笔记

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_40390237/article/details/127215323

Linux常用指令(小结)-爱代码爱编程

Linux常用指令 前言对目录或文件操作的基本指令ls指令pwd指令cd指令touch指令mkdir指令rm指令cp指令mv指令man 对文件操作的基本指令vi指令cat指令less指令head 命令tail指

嵌入式linux常用shell指令-爱代码爱编程

嵌入式linux常用shell指令 注:以上是较常用的指令的简单用法,在此记录备用,更多指令及详细用法:http://www.ourlinux.net 1,mkdir 作用:创建文件夹 用法:mkdir foldername                    创建文件夹foldername 2,rm 作用:删除文件或文件夹

linux 常用shell指令之tar(文件打包) 【学习笔记】-爱代码爱编程

文档声明: 以下资料均属于本人在学习过程中产出的学习笔记,如果错误或者遗漏之处,请多多指正。并且该文档在后期会随着学习的深入不断补充完善。 资料仅供学习交流使用。 作者:Aliven888 简述: tar是linux中比较常用的一个打包工具,这个工具会读取多个文件或者文件夹将他们打包成一个文件。 格式: tar + 空格 + 【选项】 +

Linux常用shell命令总结-爱代码爱编程

Linux常用shell命令总结 原创 dudu 目录 常用文件shell命令常用网络shell命令常用进程shell命令常用文本shell命令小结 一、常用文件shell命令### 改变目录 1、cd # 进入到/tmp目录下$ cd /tmp/# 回退一个路径$ cd …# 回退到自己的 home 目录$

Linux中shell的ls,linux系统shell中ls指令-爱代码爱编程

英文全名:List即列表的意思。 1. ls -a 列出文件下所有的文件,包括以“.“开头的隐藏文件(linux下文件隐藏文件是以.开头的,如果存在..代表存在着父目录)。 2. ls -l 列出文件的详细信息,如创建者,创建时间,文件的读写权限列表等等。 3. ls -F 在每一个文件的末尾加上一个字符说明该文件的类型。"@"表示符号链接

10分钟就能学会,Linux操作系统21个shell常用命令-爱代码爱编程

目录 一、shell的基本形式  1.shell的种类 :sh、bash、csh、tcsh、ash 等。  (1).sh  shell       (2). csh shell     (3). tcsh  shell     (4). ash shell     (5). bash shell     2. shell命令的基本格式 3

Linux 常用 shell 命令-爱代码爱编程

Linux 常用 shell 命令 1、目录查看命令 ls 显示指定目录或当前目录下的文件格式 ls [选项] [路径] 参数选项 -a:显示所有的文件夹及文件,包括以 “.” 开头的文件-l:显示文件的详细信息,比如文件的形态、权限、所有者、大小等信息-t:将文件按照创建时间排序列出-A:和 -a 一样,但是不列出 “.” ()当前目录和 “

linux常用shell命令合集-爱代码爱编程

systemctl start firewalld 打开防火墙systemctl stop firewalld 关闭防火墙systemctl enable firewalld 再次开机时打开防火墙systemctl disable firewalld 再次开机时关闭防火墙systemctl restart firewalld 重启防火墙reboot 系统重

linux常用命令大全——赶紧收藏_少糖加水的博客-爱代码爱编程

史上最全的Linux常用命令都在这里啦! 全是干货!建议收藏起来,反复观看! 一、登录与注销 1) sudo useradd lilei //添加用户 (不能被立即使用,需设置密码 sudo passwd lilei) 2) sudo adduser lilei //添加用户 3) login //登录或切换用户 4) logo

linux常用指令_linux下一个命令就是一个程序-爱代码爱编程

文章目录 Linux常用指令ls指令which指令alias指令ll指令pwd指令cd指令echo指令touch指令stat指令mkdir指令rmdir指令rm 指令man指令help指令cp指令mv指令cat

linux学习入门: shell脚本常用命令汇总_shell脚本基本命令大全-爱代码爱编程

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 前言 Linux学习最初就是要掌握shell脚本的基本命令语句,这个也是我们操作Linux操作系统的关键步骤,但是Linux的shell命令语句十分多而且杂,我们无需死记硬背,只需要记住大体的用法,在用的时候查找即可。 一、Linux的she

linux下的常见shell指令及用法_简述linux系统用于目录操作的的常用shell命令及其使用方法。-爱代码爱编程

1、pwd命令 命令格式:pwd 功能:显示当前工作目录的完整路径 2、cd命令 命令格式:cd [目录] 功能:切换到指定目录 目录可以是绝对路径,也可以是相对路径。cd的几种特殊用法: (1)不跟参数直接执行cd命