linux、SMART、Shell的学习
Linux指令
useradd 添加用户
- 添加用户
- -d 添加用户路径
- -e 制定密码有效时间
- -G -g 指定用户所属组
- -c 指定一段用户描述
- -s Shell文件指定用户的登录Shell
- -u 指定用户的用户号 如果同时有-o选项 可以重复使用别人的用户号
usermod 修改账号
- 修改账号
- 与useradd有同样的配置
userdel 删除用户
- 删除用户
passwd 修改密码
- 修改用户密码
- -l 锁定口令,即禁用账号
- -u 口令解锁
- -d 账号无口令
- -f 强迫用户下次登陆时修改口令
groupadd 添加用户组
添加一个组
- -g 指定一个新用户组的组织标示号(GID)
- -o 一般与-g同时使用,标示新用户组的GID可以与系统已有用户组的GID相同。
groupadd -g 101 group2
groupdel 删除用户组
- 删除用户组
groupmod 修改小组属性
- 修改用户组的属性
- -g 修改GID
- -o 参考groupadd指令
- -n 新用户组 将用户组的名字改为这个
newgrp 切换小组
- 当用户属于多个小组时可以通过这个指令进行切换
su 切换用户
- 切换用户
exit 退出连接
- 退出连接(ssh连接,screen)
touch 新建文件
- 新建一个文件
mkdir 新建文件夹
- 新建一个文件夹
ls 显示当前目录
- 显示当前目录
- -l显示当前目录的详细信息等同于ll
pwd 显示当前位置
- 当前位置的定位如
/home/demo
cd 位置移动
进行位置移动
- 特殊移动
cd .. 退回上一层目录; cd - 回到之前所在目录; cd ~ 回到主目录;
mv 文件移动/重命名
- 文件移动
mv 文件名 文件夹名
- 文件重命名
mv 文件名 新的文件名
cp 复制
- 复制文件
df 检查磁盘空间占用
- 检查文件系统的磁盘空间占用情况。
- -a 列出所有的文件系统,包括/proc等文件系统
- -k 以KBytes的熔炼显示各文件系统
- -m 以MBytes的容量显示各文件系统
- -h 以 GBytes,Mbytes,Kbytes等格式显示
- -H 以1M=1000k取代1M=1024k的进位方式
- -T 显示文件系统类型
- -i 不用自盘容量,而以inode的数量来显示
df [指令] [目录或文件名]
du 查看磁盘使用空间
- du命令也是查看使用空间的,但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间的查看
- -a :列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已。
- -h :以人们较易读的容量格式 (G/M) 显示;
- -s :列出总量而已,而不列出每个各别的目录占用容量;
- -S :不包括子目录下的总计,与 -s 有点差别。
- -k :以 KBytes 列出容量显示;
- -m :以 MBytes 列出容量显示;
fdisk 磁盘分区
- 是Linux的磁盘分区表操作工具
- -l :输出后面接的装置所有的分区内容。若仅有 fdisk -l 时, 则系统将会把整个系统内能够搜寻到的装置的分区均列出来。
fdisk [-l] 装置名称
mkfs 磁盘格式化
分区完成后要进行磁盘的格式化
- -t :可以接文件系统格式,例如 ext3, ext2, vfat 等(系统有支持才会生效)
mkfs [-t 文件系统格式] 装置文件名
fsck 磁盘检验
用来检查和维护不一致的文件系统。若系统掉电或磁盘发生问题,可利用fsck命令对文件系统进行检查。
- -t : 给定档案系统的型式,若在 /etc/fstab 中已有定义或 kernel 本身已支援的则不需加上此参数
- -s : 依序一个一个地执行 fsck 的指令来检查
- -A : 对/etc/fstab 中所有列出来的 分区(partition)做检查
- -C : 显示完整的检查进度
- -d : 打印出 e2fsck 的 debug 结果
- -p : 同时有 -A 条件时,同时有多个 fsck 的检查一起执行
- -R : 同时有 -A 条件时,省略 / 不检查
- -V : 详细显示模式
- -a : 如果检查有错则自动修复
- -r : 如果检查有错则由使用者回答是否修复
- -y : 选项指定检测每个文件是自动输入yes,在不确定那些是不正常的时候,可以执行 # fsck -y 全部检查修复。
fsck [-t 文件系统] [-ACay] 装置名称
mount 磁盘挂载
- umount磁盘卸载
mount [-t 文件系统] [-L Label名] [-o 额外选项] [-n] 装置文件名 挂载点
hostnamectl 修改服务器名字
- 修改服务器的名字
hostnamectl set-hostname <hostname>
shutdown 关机指令
- 关机指令
- -h 10 "10 mins shutdown" 提示信息十分钟后关机
- -h now 现在关机
- -h 20:25 今天20:25关机
- -h +10 十分钟后关机
- -r now 立刻重启
reboot 系统重启
- 系统重启
halt 关闭系统
- 关闭系统
sync 数据写入磁盘
- 将数据同步到硬盘中
- 关闭机器前要执行该指令
rm 删除文件
- 删除文件
- 删除文件夹需要加-r
- 强制删除加-rf
rmdir 删除文件夹
- 删除空白文件夹
chmod 改变文件权限
- 改变文件权限
- w 可写
- r 可续
- x 可执行
chmod 777 文件名 #给与所有人该文件的可读可写可执行权限
chown 改变文件所属
- 改变文件所属
chown [-cfhvR] [--help] [--version] user[:group] file...
- user 新的文件拥有者
- group 新的文件拥有者使用者组
- -c 显示更改的部分信息
- -f 忽略错误信息
- -h 修复符号链接
- -v 显示详细的处理信息
- -R 处理指定目录以及其子目录下的所有文件
cat 查看文件内容
- 查看文件内容
head 从文件头部开始获取
- 从头部开始获取文件
head -5 #获取前5行数据
tail 从文件尾部开始获取
- 从尾部开始获取文件
tail -5 #获取后5行数据
sort 排序
排序
sort -k1 #对第一列进行排序
sort -k1 -n #对第一列按数字进行排列
sort -k1 -r #降序排列
uniq 去除重复
- 去除重复数据
grep 匹配
- 抽出所匹配的数据
top 资源管理器
- 查看当前系统的运行情况(cpu、内存、负载等)
ps 程序运行查看
- 查看当前运行的程序情况
- -ef查看更全面的运行信息
wall 全局发送广播
- 服务器全局发送信息
write 单体发送信息
- 单体发送信息
write root pts/1
kill 杀死进程
- 杀死相关进程
kill pid #pid可以通过ps或者top进行查看
pkill 进程终止命令
- -kill 结束进程
- -t 关闭远程连接
scp 远程拷贝文件
- 远程拷贝文件
scp **.**.**.**:/**.txt ./
SMART指令
toh
- 行转列
- -n 转成多少行
- -k 加主键
- -l 把数据用l指定的连接起来
toh -n -k -l
tov
- 列转行
- -n 转成多少列
- -k 以指定列作为主键进行排列
tov -n -k [FILE]
selcol
- -c 获取文件第几行数据
delcol
- -c 删除文件第几行数据
rowc
- 获取文件的行数
colc
- 获取文件的列数
ssort
- -k 对第k行进行排序
fmtfixed
- 数据格式化
- -w格式化长度
- -c格式化哪一列
fmtfixed -w<N> -cCOL1[,COL2]...[FILE]
sumup
- 求和
- -n
- -k
- -c
subtotal
- -s -c s代表这一列是在求和的部分被隐藏,c代表求和的一列
- -k 代表取出一列与s列进行比较
total
- 对数据进行求和
- -s 忽略的数据
- -c求和的数据
kcount
- -k 查看第k列的数据出现次数
hsum
- -c 对被c选中的数据进行求和
- -v 反选被c选中的
insseq
- 给已有数据加上行号
- -k 标记给多少行加行号
insrank
- 数据相同的加同样的行号
- -k 列
- -c 行
addup
- 累加计算
- -k
- -c
insratio
- -k -c 计算数据出现的频率
- -s 计算频率的小数位数[15位以下]
commano master tran #命令的使用方式
- 要求(master)
- 排好序的
- 唯一的
- 从第一个字段开始的
- 要求(tran)不带h开头的
- 排好序的
- 要求(tran)带h开头的
- 无需排好序
- master文件尽量要小(因为要存放至内存中使用)
ejoin
- 抽出tran中在master中存在的数据
- -a 把不符合要求的数据作为错误数据输出 2> 文件名 可以输出出来
ejoin -v -k MASTER #v是反选 k是选中比较的列
ijoin
- 抽出匹配的字段,同时会把master中后续字段连接到tran的后续字段中去
ijoin -k MASTER
rjoin
- 对数据进行连接 把MATER中匹配的数据填写到tran中去
- -i 对master中不存在的字段进行补足时符号的指定
rjoin -kCOL1[,COL2] RIGHT[LEFT]
hejoin
hijoin
hrjoin
- 用法与不带h的指令相同只是要求不太一样
crossjoin
- 什么都不加就是把master中的每一条数据都添加tran数据(这个命令的master数据不唯一)
- -k 对主键进行连接
- -a 把不符合的数据通过error输出
crossjoin -a -kCOL1[,COL2] LEFT[RIGHT]
ojoin
- 全连接可以连接多个文件k字段全部保留 右边的文件会依次放在左边的文件后面
- -i 对其他文件中中不存在的字段进行补足时符号的指定
- -k key对主键指定
- 当文件中的主键重复时按不同数据来计算(最好主键不重复)
ojoin -i<String> -k[,COL] FILE...
fstrow
- -k 输出第一行符合k的数据 (重复的数据中取出第一个)需要排好序
lstrow
- -k 输出最后一行符合k的数据 需要排好序
shiftrow
- 把key的下一行放在当前行的后面(重复数据整合)需要排好序
shiftrow -k1[,COL][FILE]
row2col
- 行列转换
row2col [FILE]
stail
- 删除文件的数据(行)
stail -n [FILE]
pivot
- 把重复数据进行排列 要排好序
pivot -k1 [FILE]
1 | name | test |
---|---|---|
1 | name2 | test1 |
2 | sex | test2 |
2 | sex2 | test3 |
会变成
* | name | name2 | sex | sex2 |
---|---|---|---|---|
1 | test | test1 | 0 | 0 |
2 | 0 | 0 | test2 | test3 |
unpivot
- 上面表的逻辑倒过来
fsplit
- 对文件进行分割
- -a 追记要是我写的文件名字已存在就把数据追加到改文件的最后
- -z 会把文件以gzip的压缩形式保存 **.gz
- -d 会把文件中按key分割的key给删除不再显示
fsplit [-a] NEWPATH [FILE] #fsplit ./%1/%2 data1 ps:%1%2代表第一列和第二列
sdate
SMART版的date命令 对日期进行处理
- -d 显示某年的第几周
sdate -d 201903w #显示2019年的第三个周
- -w 显示对应日期是该年的第几个周
sdate -w 20190327d #显示03月27日是第几周
- -y 显示日期 是星期几
sdate -y 20190327d
- -e 显示指定日期之间的日期打印
sdate -e 20190101d 20190327d
sdate 20190327/+1 #计算3月27日的第二天
- -lwd 计算上一年的今天(比如特别的节日)是哪一天
- thisyobi
Shell
:set numble
- 给shell加行号
ERROR_EXIT
- 错误退出
${变量名} / $变量名
- 代表变量,获取变量的值
${数组名[*]}
- 获取数组长度
while循环
while [ $iRoot -lt $lenRoot ] ; do
中间处理
let iRoot++ ##别忘记改变判断数据
done
if判断
if [ 条件式 ] ; then
处理A
else
处理B
fi
for循环
for 变数名 in 引数① 引数② ... ; do
for((i=1;i<10;i++)) do<---双括号
相关操作
done
- continue 跳出本次循环
- break 结束循环
find
- 查找文件
find . -tpe f -name "*.DISPLAY" #查找文件后缀名为DISPLAY的文件
变量
$0 当前脚本的文件名
$n 传递给脚本或函数的参数。n是一个数字,表示第几个参数。例如,第一个参数是$1。
$# 传递给脚本或函数的参数个数。
$* 传递给脚本或函数的所有参数
$@ 传递给脚本或函数的所有参数。
$? 上个命令的退出状态或函数的返回值.
- \[ 当前Shell进程ID。对于Shell脚本,就是这些脚本所在的进程ID。
\]
将指令处理的结果赋给变量
test
- 文件比较运算符
- -e filename 如果filename存在则为真
- -d filename 如果filename为目录则为真
- -f filename如果filename为常规文件则为真
- -L filename如果filename为符号链接则为真
- -r filename 如果filename可读则为真
- -w filename 如果filename可写则为真
- -x filename 如果filename可执行则为真
- filename1 -nt filename2 如果filename1比filename2新则为真
- filename1 -ot filename2如果filename1比filename2旧则为真
- 字符串比较符
- -z string 如果string 长度为零则为真
- -n string 如果string 长度非零则为真
- string1 = string2 如果string1和string2相同则为真
- string1 != string2 如果string1和string2不相同则为真
- 算数比较运算符
- num1 -eq num2 等于
- num1 -ne num2 不等于
- num1 -lt num2 小于
- num1-le num2小于或等于
- num1 -gt num2 大于
- num1 -ge num2大于或等于
连接符
- && 且 AND
- || 或 OR
- 两端要加空格
linux、SMART、Shell的学习的更多相关文章
- Linux 下shell 编程学习脚手架
linux body { font-family: Helvetica, arial, sans-serif; font-size: 14px; line-height: 1.6; padding-t ...
- Linux 下Shell的学习
1.Shell学习 1.什么是Shell shell是一个命令解析器,在操作系统的最外层,负责和用户对话,将用户的输入解释给操作系统,并处理各种各样的操作系统的输出结果.2.什么是shell脚本 ...
- Linux 下Shell的学习3-优秀demo
优秀的DEMO cat /etc/init.d/functions -->里面有颜色定义cat /etc/rc.d/rc.sysinit cat /etc/init.d/nfscat /et ...
- linux下shell脚本学习
在Linux系统中,虽然有各种各样的图形化接口工具,但是sell仍然是一个非常灵活的工具.Shell不仅仅是命令的收集,而且是一门非常棒的编程语言.您可以通过使用shell使大量的任务自动化,shel ...
- Linux 下Shell的学习2
0. 查看帮助(比如内置功能) man bash -->变量处理大全 1.-计算变量长度的不同方法及不同方法的耗时对比 尽可能的用内置的命令处理,速度快 time ...
- linux之shell脚本学习(一)
#!/bin/bash echo 'hello' your_name='longxiong' echo $your_name echo ${your_name} for i in `ls /opt`; ...
- linux和shell的学习记录
1.16条常用的命令 .文件的权限修改:(把文件1.txt的归属改为mysql的,然后ll查看) chown mysql:mysql .txt .增加当前用户的x权限,然后ll查看: chomd u+ ...
- Linux 下Shell的学习3-service编程
1. vim /etc/init.d/nginx 2. chmod 755 /etc/init.d/nginx 3. service nginx status #!/bin/bash # nginx ...
- linux之shell脚本学习篇一
此文包含脚本服务请求,字符串截取,文件读写内容,打印内容换行. #!/bin/bashretMsg="";while read LINEdo echo "t ...
- 轻松学习Linux之Shell文件和目录属性详解
轻松学习Linux之Shell文件和目录属性详解 轻松学习Linux之理解Sitcky 轻松学习Linux之理解umask 轻松学习Linux之理解SUID&SGUID 本系列多媒体教程已完成 ...
随机推荐
- 什么是J2EE
什么是J2EE 一.准备篇 1 什么是J2EE?它和普通的Java有什么不同? 答:J2EE全称为Java2 Platform Enterprise Edition. "J2EE平台本质上是 ...
- volley3--Volley类
Volley这个类,Volley作为整个框架的入口,其实就是创建了一个RequestQueue队列 public class Volley { /** * Default on-disk cache ...
- JMeter测试WEB性能入门
一.JMeter介绍 1.Apache JMeter是什么 Apache JMeter 是Apache组织的开放源代码项目,是一个100%纯Java桌面应用,用于压力测试和性能测量.它最初被设计用于W ...
- No enum constant org.apache.ibatis.type.JdbcType.Integer
同事今天在用mybatis查询时候,报了上面这个问题.上网查了下,原来是mybatis封装类型的问题.原因是在resultMap中jdbcType写为了Integer,但是在MyBatis中没有这个数 ...
- SQL创建视图
1.视图的理解 从用户角度来看,一个视图是从一个特定的角度来查看数据库中的数据 .从数据库系统内部来看,一个视图是由SELECT语句组成的查询定义的虚拟表 .从数据库系统内部来看,视图是由一张或多张表 ...
- C# 试图加载格式不正确的程序。 (异常来自 HRESULT:0x8007000B)
C# 在调用C++dll时,可能会出现 :试图加载格式不正确的程序. (异常来自 HRESULT:0x8007000B)这个错误. 一般情况下是C#目标平台跟C++dll不兼容,64位跟32位兼容性问 ...
- Linux提权后获取敏感信息的方法与途径
在本文开始之前,我想指出我不是专家.据我所知,在这个庞大的区域,没有一个“神奇”的答案.分享,共享(我的出发点).下面是一个混合的命令做同样的事情,在不同的地方,或只是一个不同的眼光来看待事物.我知道 ...
- Scala模式匹配和样例类
Scala有一个十分强大的模式匹配机制,可以应用到很多场合:如switch语句.类型检查等.并且Scala还提供了样例类,对模式匹配进行了优化,可以快速进行匹配. 1.字符匹配 def mai ...
- 9、Node.js Stream(流)
#########################################################################介绍Node.js Stream(流)Stream 是 ...
- 聊聊host中ip/域名映射记录的解析规则
今天宝叔突然在群里发了个问题; host做如下配置,a.com会指向哪里?或者说ping一下a.com结果会是什么? 127.0.0.1 a.com 192.168.4.106 a.com 192.1 ...