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. SQL Server中【case...end】的用法

    在SQL Server中 case...end 语句,一般有如下两种用法: 1.相当于C#中if...else,例: select CName,头衔=case when CLevel='A1' the ...

  2. IE和DOM事件的区别

    1.事件流的区别 IE采用冒泡型事件 Netscape使用捕获型事件 DOM使用先捕获后冒泡型事件 示例: <body> <div> <button>点击这里< ...

  3. Sql server字段排序,如果字段是字符型的数字

    SELECT id , rownum FROM test ))),) ASC 1.如果想要根据字符型的数字排序,不建议转换成数字类型在order by,因为数据存在字符时,可能转换失败. 2.使用RI ...

  4. jQuery中index()方法用法实例

    本文实例讲述了jQuery中index()方法用法.分享给大家供大家参考.具体分析如下: 此方法可以搜索匹配元素,并返回元素的索引值.索引值是从0开始的. 语法结构一: 当此方法没有参数的时候,返回值 ...

  5. 译文 [ROM][多国语言][2015.06.11] Lenovo S750 (MTK6589) - andrea_d86-lenovos750-4.2.2

    ************************************************** andrea_d86-lenovos750-4.2.2-150530 ************** ...

  6. Effective C++(4) 确定对象被使用前已先被初始化

    危害:读取未初始化的值会导致不明确甚至是半随机化的行为. 最佳处理办法:永远在使用对象之前先将它初始化:确保每一个构造函数都将对象的每一个成员初始化. 1 注意区分赋值和初始化: 从初始化的角度而言, ...

  7. Java学习---Collection的学习

    Collection基本方法的使用 package com.huawei.ftl; import java.io.File; import java.io.FileInputStream; impor ...

  8. Excel开发之旅(三)——添加侧边工具栏

    1. 添加自定义用户控件:选择项目添加新建项用户控件.修改文件名,点击添加即可. 2. 重复步骤1,再添加3个自定义控件,接下来我们在自定义用户控件上面添加一些工具箱组件 3. 由于我们添加的是侧边工 ...

  9. phpMyAdmin提示“无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装。”

    这是以前学生在使用phpwamp时遇到的一个问题(其他环境或是自己搭建时遇到此问题,解决方式同理) 其实这个问题与PHPWAMP本身无关,是电脑设置的问题,一般正常情况下不会出现这个问题. 现在把学生 ...

  10. August 06th 2017 Week 32nd Sunday

    No words are necessary between two loving hearts. 两颗相爱的心之间不需要言语. No, I don't think so. Words may be ...