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的学习的更多相关文章

  1. Linux 下shell 编程学习脚手架

    linux body { font-family: Helvetica, arial, sans-serif; font-size: 14px; line-height: 1.6; padding-t ...

  2. Linux 下Shell的学习

    1.Shell学习 1.什么是Shell    shell是一个命令解析器,在操作系统的最外层,负责和用户对话,将用户的输入解释给操作系统,并处理各种各样的操作系统的输出结果.2.什么是shell脚本 ...

  3. Linux 下Shell的学习3-优秀demo

    优秀的DEMO cat /etc/init.d/functions   -->里面有颜色定义cat /etc/rc.d/rc.sysinit cat /etc/init.d/nfscat /et ...

  4. linux下shell脚本学习

    在Linux系统中,虽然有各种各样的图形化接口工具,但是sell仍然是一个非常灵活的工具.Shell不仅仅是命令的收集,而且是一门非常棒的编程语言.您可以通过使用shell使大量的任务自动化,shel ...

  5. Linux 下Shell的学习2

    0. 查看帮助(比如内置功能)    man bash    -->变量处理大全 1.-计算变量长度的不同方法及不同方法的耗时对比    尽可能的用内置的命令处理,速度快        time ...

  6. linux之shell脚本学习(一)

    #!/bin/bash echo 'hello' your_name='longxiong' echo $your_name echo ${your_name} for i in `ls /opt`; ...

  7. linux和shell的学习记录

    1.16条常用的命令 .文件的权限修改:(把文件1.txt的归属改为mysql的,然后ll查看) chown mysql:mysql .txt .增加当前用户的x权限,然后ll查看: chomd u+ ...

  8. Linux 下Shell的学习3-service编程

    1. vim /etc/init.d/nginx 2. chmod 755 /etc/init.d/nginx 3. service nginx status #!/bin/bash # nginx ...

  9. linux之shell脚本学习篇一

    此文包含脚本服务请求,字符串截取,文件读写内容,打印内容换行. #!/bin/bashretMsg="";while read LINEdo        echo "t ...

  10. 轻松学习Linux之Shell文件和目录属性详解

    轻松学习Linux之Shell文件和目录属性详解 轻松学习Linux之理解Sitcky 轻松学习Linux之理解umask 轻松学习Linux之理解SUID&SGUID 本系列多媒体教程已完成 ...

随机推荐

  1. 什么是J2EE

    什么是J2EE 一.准备篇 1 什么是J2EE?它和普通的Java有什么不同? 答:J2EE全称为Java2 Platform Enterprise Edition. "J2EE平台本质上是 ...

  2. volley3--Volley类

    Volley这个类,Volley作为整个框架的入口,其实就是创建了一个RequestQueue队列 public class Volley { /** * Default on-disk cache ...

  3. JMeter测试WEB性能入门

    一.JMeter介绍 1.Apache JMeter是什么 Apache JMeter 是Apache组织的开放源代码项目,是一个100%纯Java桌面应用,用于压力测试和性能测量.它最初被设计用于W ...

  4. No enum constant org.apache.ibatis.type.JdbcType.Integer

    同事今天在用mybatis查询时候,报了上面这个问题.上网查了下,原来是mybatis封装类型的问题.原因是在resultMap中jdbcType写为了Integer,但是在MyBatis中没有这个数 ...

  5. SQL创建视图

    1.视图的理解 从用户角度来看,一个视图是从一个特定的角度来查看数据库中的数据 .从数据库系统内部来看,一个视图是由SELECT语句组成的查询定义的虚拟表 .从数据库系统内部来看,视图是由一张或多张表 ...

  6. C# 试图加载格式不正确的程序。 (异常来自 HRESULT:0x8007000B)

    C# 在调用C++dll时,可能会出现 :试图加载格式不正确的程序. (异常来自 HRESULT:0x8007000B)这个错误. 一般情况下是C#目标平台跟C++dll不兼容,64位跟32位兼容性问 ...

  7. Linux提权后获取敏感信息的方法与途径

    在本文开始之前,我想指出我不是专家.据我所知,在这个庞大的区域,没有一个“神奇”的答案.分享,共享(我的出发点).下面是一个混合的命令做同样的事情,在不同的地方,或只是一个不同的眼光来看待事物.我知道 ...

  8. Scala模式匹配和样例类

    Scala有一个十分强大的模式匹配机制,可以应用到很多场合:如switch语句.类型检查等.并且Scala还提供了样例类,对模式匹配进行了优化,可以快速进行匹配. 1.字符匹配     def mai ...

  9. 9、Node.js Stream(流)

    #########################################################################介绍Node.js Stream(流)Stream 是 ...

  10. 聊聊host中ip/域名映射记录的解析规则

    今天宝叔突然在群里发了个问题; host做如下配置,a.com会指向哪里?或者说ping一下a.com结果会是什么? 127.0.0.1 a.com 192.168.4.106 a.com 192.1 ...