linux常用命令整理分类

快捷入口

命令帮助指令

命令格式说明: 指令 [-选项] 参数1 参数2
注意: [-选项]括号中的选项为非必须,指令和参数所示例没有用[ ]括号起来的的为必须输入选项,用[ ]括号起来的参数为非必须参数,可输入也可不输入
1、[指令] --help
说明: 在指令后面加上–help,可以查看指令用法
2、 man [指令]
**说明: ** 查看指令的详细说明,使用man指令查看的指令后带有数字,数字的意思如下表所示:

数字 含义
*1 普通用户可以操作的指令或者可执行文件
2 系统核心可调用的函数与工具
3 函数库
4 设备文件说明
*5 配置文件
6 游戏
7 linux文件系统、网络协定等
*8 系统管理员可以执行的指令
9 核心相关指令

开机关机指令

1、shutdown [-krhc] [时间] [关机警告信息]
说明: 该指令用于关闭linux系统,如果是使用的是实体机器,任何用户均可以关闭计算机,如果是使用远程工具远程登入系统,则一般情况下只有root权限可以执行该指令。
-k:不要真的关机,只是发送警告信息出去
-r:将系统服务停止后重新开机
-h:将系统服务停止后,立即关机
-c:取消已经在执行的关机指令,取消关机

示例:
1)shutdown -h 5 ‘showdown system’ 5分钟后关机,向正在使用该机器的用户发出警告信息
2)shutdown -h now 马上关该系统
3)shutdown -h 12:00 十二点关闭该计算机,如果执行指令时间已经超过该时间,则第二天12:00分执行
4)shutdown -r now 系统立马重启
4)shotdown -r 10 十分钟后重启启动
2、reboot
说明: 重启机器

linux 文件权限

linux 使用者身份与群组记录文件:
用户信息: /etc/passws
个人密码:/etc/shadow

1、ls 目录 [-alrR]
说明: 列出目录中的文件与文件夹,不指定目录则默认当前目录
-a:显示所有目录与文件,包括以.开头的隐藏文件
-l:展示更多信息
-r:逆序排列
-R:递归显示每个子目录
示例:

  1. chgrp users test.txt 改变test.txt的所属分组为users

2、chgrp [-R] 账号名称 文件或者目录
说明: 改变一个文件或者文件夹的所属分组,该分组要存在etc/gruop中
-R:递归变更,连同这个目录下的文件或者文件夹都更改为该分组

3、chown [-R] 账号名称:群组名称 文件或者目录
说明: 改变一个文件或者文件夹得所属用户,该用户要存在/etc/passws这个文件中
-R: 递归变更,连同这个目录下的文件或者文件夹都更改为该用户
示例:
1)chown root:root text.txt:text.txt 改变text.txt文件的所属分组和所属用户
2)chown root text.txt 改变text.txt文件的所属用户

3、chmod [-R] xyz 文件或者目录
说明: 改变一个文件或者目录的权限,xyz分别表示拥有者权限、所属群组权限、其他人权限
-R:递归变更,连同这个目录下的文件或者文件夹都一起更改为该权限。在linunx中,将读权限设置为4,写权限设置为2,执行权限设置为1,每个身份的权限使用数字累加。
示例:
1)chown 777 text.text   将text.text文件拥有者、所属群组、其他人均可执行读写执行操作
其中:拥有者权限=读写执行=4+2+1=7, 所属群组权限=读写执行=4+2+1=7,其他人=读写执行=4+2+1=7
2)chmod u=rwx,go=rx text.txt 设置文件拥有者权限为读写执行,所属分组和其他人权限设置为读和执行
注意事项:
1、在进行cp指令(复制)的时候,会连同复制目录或者文件的权限,可能会导致复制的文件导致其他人无法查看和修改。
2、一个文件拥有执行权限,并不代表该文件可以执行,只是拥有执行权限。
3、拥有一个目录的执行权限,可以切换到该目录中,并可删除该目录下的文件

4、 umask [-S]
说明: 创建文件或则文件夹的默认权限

linux 文件操作

1、mkdir [-mp] 目录名称
说明: 创建一个文件夹
-m 设置文件权限。
-p 递归创建
2、rmdir [-p] 目录名称
说明: 连同上层空的目录也删除。

3、cp [-adfilprsu] 来源文件 目标文件
说明: 复制文件或则目录。
-a: 和-dr使用一样,详细见dr说明
-d: 若来源文件为链接文件属性,则复制该链接文件属性,不是复制文件本身
-f: 目标文件已经存在且无法打开,移除后再尝试一次
-i: 目标文件已经存在,覆盖时在询问一次
-l: 进行硬式链接的链接文件创建,而非复制文件本身
-p:连同文件的属性(权限、用户、时间)一起复制过去,而非使用默认属性
-r: 递归连续复制,用于目录复制行为
-s:复制成为符号链接文件,即快捷方式
-u: 目标文件比来源文件旧或则不存在才进行替换或则复制
示例:
1)cp -a /var/log/wtmp /tmp 完整复制/var/log/wtmp 到/tmp下
2)cp ~/.bashrc ~/.bash_history /tem 同时复制多个目录到/tem下
注意:
(1) cp命令在复制时目标文件的群组和所属用户会变成操作人,如果操作人只拥有普通权限,即使加上-a选项复制源文件的属性,也不会起效果
(2)

4、rm [-fir] 文件或则目录
说明: 移除文件或则目录
-f: 忽略不存在的文件,不会发出警告
-i: 删除前询问
-r: 递归删除
5、 mv [-fiu] 源文件 目标文件
说明: 移动文件或则目录,或则更改名字
-f: 文件已经存在,直接覆盖,不发出询问
-i: 文件已经存在进行询问
-u: 目标文件存在而且源文件比较新时才会进行更新

5、 basename 文件或则目录
说明: 取得文件名或则目录名称,返回的名称前面带有/则是目录,没有则为文件

6、 dirname 文件或则目录
说明: 取目录名称

7、 touch [-acdmt] 文件
说明: 修改文件时间或创建文件
-a: 仅修改atime
-c: 仅修改文件的时间,若文件不存在则不创建该文件
-d:后面可以接上想要修改的日期
-m:仅修改mtime
-t:后面可以接欲修订的时间而不用目前的时间, 格式为[YYYYMMDDhhmm]

linux 文件内容查阅

1、 cat 文件
说明: 查阅有一个文件内容
2、tac 文件

说明: 逆序查看 一个文件的内容
3、more 文件
说明 一页一页查看文件内容,只能往后看,一般都用less

4、less 文件
说明: 一页一页查看文件内容
5、tail [-nf number] 文件名
说明: 查看文件后几行内容,多用于程序控制台内容打印
-n: 查看后面几行
-f: 监测文件变动,持续输出文件内容
示例:
1) tail /etc/man_db.conf 默认显示后十行
2)tail -n 20 /etc/man_db.conf 显示后面20行内容
3)tail -n +50 显示第50行后的内容
6、head [-n ] 文件
说明: 只输出文件的前面多少行文件
示例:
1) head -20 /etc/man_db.conf | tail -10 输出文件第11到20行

6、 od [-t TYPE] 文件
说明: 查看非纯文本文件
-t :
TYPE可输入内容如下:
a:使用默认字符来输出
c:使用ASCⅡ字符来输出
d[size]:使用十进制来输出,每个字符占size Bytes
f[size]:使用浮点数值来输出,每个字符占size Bytes
o[size]:利用八位二进制来输出,每个字符占size Bytes
x[size]:利用二进制来输出,每个字符占size Bytes

指令和文件的搜索

1、which [-a] 指令
说明: 根据path搜索指令的路径
-a: 将所有找到的指令都列出,而不是只列出第一个
示例:
1)which -a ls 列出path中ls的路径

2、whereis [-bmsu] 文件名或者目录名
说明: 在特定的目录中查找文件或者文件夹
-l: 列出whereis 会去搜索的几个目录
-b: 只找binary格式的文件
-m:只找在说明文档manual路径下的文件
-s:只找source文件
-u:搜寻不在上面三个项目中的的其他特殊文件

2、locate [-ir] keyword
说明: 从已创建的数据库/var/lib/mlocate/中查找文件
-i:忽略大小写差异
-r:后面可以接正则表达式
-l:仅输出几行的意思,例如输出5行则是-l 5
注意: 该指令是已经创建的数据库中查找,数据库默认每天更新,新建文件可能会查找不到,可使用updatedb指令更新数据库

3、find [PATH] [option] [action]
说明: 文件查找指令,可根据文件时间(mtime、atime、ctime)、使用者或者群组、文件权限及名称进行查找
1)与时间相关选项
-mtiem n: 其中n为数字,意义在n天之前的一天之内被动过内容的文件
-mtime +n:列出n天之前(不含n天)被动过内的文件文件名
-mtime -n:列出在n天之内被动作内容的文件文件名
-newwer file : 其中file为一个存在的文件,列出比file还要新的文件名
示例:
(1)find / -mtime 0 列出今天被修改过的文件
(2)find /etc -newer /etc/passwd 在/etc中找出比/etc/passwd还要新的文件
2) 与使用者或者群组相关选项
-uid n: 其中n为数字,这个数字是使用者的账号ID(UID),这个UID是记录中/etc/passwd里面与账号名称相对应的数字
-gid n:其中n为数字,这个数字是群主名称的ID(GID),这个id记录在/etc/group中
-user name: name为使用者账户名称
-group name:name为群组名称
-nouser: 寻找的文件不在/etc/passed中的人
-nogriuo: 寻找的文件不在/etc/group中的人

示例:
(1)find /home -user root 在/home 目录下查找root用户相关的文件文件名
(2)find / -nouser 查找不属于任何人的文件

3)与文件及名称相关的选项
-name filename :根据文件名称查找
-size [±] SEIZE :搜索比SIZE还要大或者小的文件。c: 代表Bye, k: diabao 1024Byes。大于50KB -size +50kb。
-type TYPE: 搜寻文件类型为TYPE,类型一般有正规文件(f)、设备文件(b)、目录(d)、链接文件(l)、socket(s)、FIFO§等属性
-perm mode:搜索权限刚好等于mode的文件。
-perm -mode: 搜索的文件权限必须要全部囊括mode的权限
-perm /mode:搜的文件权限包含任意一个mode权限的的文件。

示例:
(1)find / -name passwd 根据文件名称查找passwd
(2)find / -name “*passwd*” 根据文件名称查找包含passwd的文件文件夹
(3)find /run -type s 查找Socket文件类型
(4)find / -perm /7000 查找权限含s或者t的权限任意一个

文件系统

1、df [-ahikHTm] [目录或文件名]
说明: 列出文件系统整体磁盘使用量
-a : 列出所有的文件系统, 包括系统特有的 /proc 等文件系统;
-k : 以 KBytes 的容量显示各文件系统;
-m : 以 MBytes 的容量显示各文件系统;
-h : 以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
-H : 以 M=1000K 取代 M=1024K 的进位方式;
-T : 连同该 partition 的 filesystem 名称 (例如 xfs) 也列出;
-i : 不用磁盘容量, 而以 inode 的数量来显示

2、du [-ahskm] 文件或目录名称
说明: 评估文件系统的磁盘使用量(常用在推估目录所占容量)
-a : 列出所有的文件系统, 包括系统特有的 /proc 等文件系统;
-k : 以 KBytes 的容量显示各文件系统;
-m : 以 MBytes 的容量显示各文件系统;
-h : 以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
-H : 以 M=1000K 取代 M=1024K 的进位方式;
-T : 连同该 partition 的 filesystem 名称 (例如 xfs) 也列出;
-i : 不用磁盘容量, 而以 inode 的数量来显示

3、ln [-sf] 来源文件 目标文件
说明: 创建linux链接
-s : 如果不加任何参数就进行链接, 那就是hard link, 至于 -s 就是symbolic link
-f : 如果 目标文件 存在时, 就主动的将目标文件直接移除后再创建!

4、lsblk [-dfimpt] [device]
说明: 列出系统上所有得磁盘列表
-d : 仅列出磁盘本身, 并不会列出该磁盘的分区数据
-f : 同时列出该磁盘内的文件系统名称
-i : 使用 ASCII 的线段输出, 不要使用复杂的编码 (再某些环境下很有用)
-m : 同时输出该设备在 /dev 下面的权限数据 (rwx 的数据)
-p : 列出该设备的完整文件名! 而不是仅列出最后的名字而已。
-t : 列出该磁盘设备的详细数据, 包括磁盘伫列机制、 预读写的数据量大小等

5、blkid
说明: 列出设备UUID等参数

6、gdisk 设备名称
说明: GPT分区工具

7、partprobe [-s]
说明: 更新Linux分区表核心

8、mkfs.xfs [-b bsize] [-d parms] [-i parms] [-l parms] [-L label] [-f]
[-r parms] 设备名称

说明: 格式化文件系统
注意: 下面只要谈到“数值” 时, 没有加单位则为 Bytes 值, 可以用 k,m,g,t,p (小写) 等来解释
比较特殊的是 s 这个单位, 它指的是 sector 的“个数” !
-b : 后面接的是 block 容量, 可由 512 到 64k, 不过最大容量限制为 Linux 的 4k !
-d : 后面接的是重要的 data section 的相关参数值, 主要的值有:
agcount=数值 : 设置需要几个储存群组的意思(AG) , 通常与 CPU 有关
agsize=数值 : 每个 AG 设置为多少容量的意思, 通常 agcount/agsize 只选一个设置即可
file : 指的是“格式化的设备是个文件而不是个设备” 的意思! (例如虚拟磁盘)
size=数值 : data section 的容量, 亦即你可以不将全部的设备容量用完的意思
su=数值 : 当有 RAID 时, 那个 stripe 数值的意思, 与下面的 sw 搭配使用
sw=数值 : 当有 RAID 时, 用于储存数据的磁盘数量(须扣除备份碟与备用碟)
sunit=数值 : 与 su 相当, 不过单位使用的是“几个 sector(512Bytes大小) ” 的意思
swidth=数值 : 就是 su*sw 的数值, 但是以“几个 sector(512Bytes大小) ” 来设置
-f : 如果设备内已经有文件系统, 则需要使用这个 -f 来强制格式化才行!
-i : 与 inode 有较相关的设置, 主要的设置值有:
size=数值 : 最小是 256Bytes 最大是 2k, 一般保留 256 就足够使用了!
internal=[0|1]: log 设备是否为内置? 默认为 1 内置, 如果要用外部设备, 使用下面设置
logdev=device : log 设备为后面接的那个设备上头的意思, 需设置 internal=0 才可!
size=数值 : 指定这块登录区的容量, 通常最小得要有 512 个 block, 大约 2M 以上才行!
-L : 后面接这个文件系统的标头名称 Label name 的意思!
-r : 指定 realtime section 的相关设置值, 常见的有:
extsize=数值 : 就是那个重要的 extent 数值, 一般不须设置, 但有 RAID 时,
最好设置与 swidth 的数值相同较佳! 最小为 4K 最大为 1G 。

9、 xfs_repair [-fnd] 设备名称
说明: 检查xfs文件系统
-f : 后面的设备其实是个文件而不是实体设备
-n : 单纯检查并不修改文件系统的任何数据 (检查而已)
-d : 通常用在单人维护模式下面, 针对根目录 (/) 进行检查与修复的动作! 很危险! 不要随便使用

10、fsck.ext4 [-pf] [-b superblock] 设备名称
-p : 当文件系统在修复时, 若有需要回复 y 的动作时, 自动回复 y 来继续进行修复动作。
-f : 强制检查! 一般来说, 如果 fsck 没有发现任何 unclean 的旗标, 不会主动进入
细部检查的, 如果您想要强制 fsck 进入细部检查, 就得加上 -f 旗标啰!
-D : 针对文件系统下的目录进行最优化配置。
-b : 后面接 superblock 的位置! 一般来说这个选项用不到。 但是如果你的 superblock 因故损毁时,
通过这个参数即可利用文件系统内备份的 superblock 来尝试救援。 一般来说, superblock 备份在:
1K block 放在 8193, 2K block 放在 16384, 4K block 放在 32768

11、mount [-t 文件系统] UUID=’’ 挂载点
说明: linux挂载文件系统
-t 指定要挂载的文件系统类型
示例:
1)mount /dev/sr0 /data/cdrom 挂载光盘到/data/cdrom
2)mount -o codepage=950,iocharset=utf8 UUID=“35BC-6D6B” /data/usb 挂载带有中文名字的U盘
3)mount -o remount,rw,auto / 重新挂载根目录

12、umount [-fn] 设备文件名或挂载点
说明: 将设备文件卸载
-f : 强制卸载! 可用在类似网络文件系统 (NFS) 无法读取到的情况下;
-l : 立刻卸载文件系统, 比 -f 还强!
-n : 不更新 /etc/mtab 情况下卸载

示例:
1) umount 卸载所有的挂载点
2) umount /dev/sa4 卸载设备sd4
3) umount /data/usb 卸载挂载点设备
4)cat /dev/fstab 查看开机挂载的设备和挂载点

压缩文件

1、gzip [-cdtv#] 文件名
说明: 使用gizp压缩
-c : 将压缩的数据输出到屏幕上, 可通过数据流重导向来处理;
-d : 解压缩的参数;
-t : 可以用来检验一个压缩文件的一致性~看看文件有无错误;
-v : 可以显示出原文件/压缩文件的压缩比等信息;
-# : # 为数字的意思, 代表压缩等级, -1 最快, 但是压缩比最差、 -9 最慢, 但是压缩比最好! 默认是 -6
2、zcat 压缩文件
说明: 解压gzip

3、xz [-dtlkc#] 文件名
说明: 使用xz压缩
-d : 就是解压缩啊!
-t : 测试压缩文件的完整性, 看有没有错误
-l : 列出压缩文件的相关信息
-k : 保留原本的文件不删除~
-c : 同样的, 就是将数据由屏幕上输出的意思!
-# : 同样的, 也有较佳的压缩比的意思!

4、tar [-z|-j|-J] [cv] [-f 待创建的新文件名] filename… <==打包与压缩
tar [-z|-j|-J] [tv] [-f 既有的 tar文件名] <==察看文件名
tar [-z|-j|-J] [xv] [-f 既有的 tar文件名] [-C 目录] <==解压缩
说明: 打包命令,不同于gizp和xz 命令,可对多个文件进行gzip或则xz或gzip2 后进行打包
-c : 创建打包文件, 可搭配 -v 来察看过程中被打包的文件名(filename)
-t : 察看打包文件的内容含有哪些文件名, 重点在察看“文件名” 就是了;
-x : 解打包或解压缩的功能, 可以搭配 -C (大写) 在特定目录解开
特别留意的是, -c, -t, -x 不可同时出现在一串命令行中。
-z : 通过 gzip 的支持进行压缩/解压缩: 此时文件名最好为 *.tar.gz
-j : 通过 bzip2 的支持进行压缩/解压缩: 此时文件名最好为 *.tar.bz2
-J : 通过 xz 的支持进行压缩/解压缩: 此时文件名最好为 *.tar.xz
特别留意, -z, -j, -J 不可以同时出现在一串命令行中
-v : 在压缩/解压缩的过程中, 将正在处理的文件名显示出来!
-f filename: -f 后面要立刻接要被处理的文件名! 建议 -f 单独写一个选项啰! (比较不会忘记)
-C 目录 : 这个选项用在解压缩, 若要在特定目录解压缩, 可以使用这个选项。

示例:
1)tar -jxv -f /root/etc.tar.bz2 解压文件
2)tar -jxv -f /root/etc.tar.bz2 -C /tmp 解压到指定目录
3) tar -jcv -f /root/etc.newer.then.passwd.tar.bz2 --newer-mtime=“2015/06/17” /etc/* 打包更新时间比这个

5、xfsdump [-L S_label] [-M M_label] [-l #] [-f 备份文件] 待备份数据
说明: 使用xfsdump对文件系统进行备份
-L : xfsdump 会纪录每次备份的 session 标头, 这里可以填写针对此文件系统的简易说明
-M : xfsdump 可以纪录储存媒体的标头, 这里可以填写此媒体的简易说明
-l : 是 L 的小写, 就是指定等级~有 0~9 共 10 个等级喔! (默认为 0, 即完整备份)
-f : 有点类似 tar 啦! 后面接产生的文件, 亦可接例如 /dev/st0 设备文件名或其他一般文件文件名等
-I : 从 /var/lib/xfsdump/inventory 列出目前备份的信息状态

示例:
1)备份完整的文件系统
(1).先确定 /boot 是独立的文件系统:
df -h /boot
(2). 将完整备份的文件名记录成为 /srv/boot.dump :
xfsdump -l 0 -L boot_all -M boot_all -f /srv/boot.dump /boot
2)差异备份
注意: 必须进行了完整备份后才能进行差异备份
(1). 看一下有没有任何文件系统被 xfsdump 过的数据:
xfsdump -I
(2)进行差异备份
xfsdump -l 1 -L boot_2 -M boot_2 -f /srv/boot.dump1 /boot
(3)最后在看下是否记录有备份
xfsdump -I

6、xfsrestore
说明: 还原文件系统备份文件
xfsrestore -I <==用来察看备份文件数据
xfsrestore [-f 备份文件] [-L S_label] [-s] 待复原目录 <==单一文件全系统复原
xfsrestore [-f 备份文件] -r 待复原目录 <==通过累积备份文件来复原系统
xfsrestore [-f 备份文件] -i 待复原目录 <==进入互动模式

-I : 跟 xfsdump 相同的输出! 可查询备份数据, 包括 Label 名称与备份时间等
-f : 后面接的就是备份文件! 企业界很有可能会接 /dev/st0 等磁带机! 我们这里接文件名!
-L : 就是 Session 的 Label name 喔! 可用 -I 查询到的数据, 在这个选项后输入!
-s : 需要接某特定目录, 亦即仅复原某一个文件或目录之意!
-r : 如果是用文件来储存备份数据, 那这个就不需要使用。 如果是一个磁带内有多个文件,
需要这东西来达成累积复原
-i : 进入互动模式, 进阶管理员使用的! 一般我们不太需要操作它!

示例:
1)xfsrestore -f /srv/boot.dump -L boot_all /boot 直接还原level0的备份,新增的文件会保留
2)xfsrestore -f /srv/boot.dump -L boot_all -s grub2 /tmp/boot2 仅还原grub2到/tem/boot2

Shell script

1、alias lm=‘ls -al’ 设置别名

2、type [-tpa] name
说明: 查看一个命令是否是bash内置的命令
: 不加任何选项与参数时, type 会显示出 name 是外部指令还是 bash 内置指令
-t : 当加入 -t 参数时, type 会将 name 以下面这些字眼显示出他的意义:
file : 表示为外部指令;
alias : 表示该指令为命令别名所设置的名称;
builtin : 表示该指令为 bash 内置的指令功能;
-p : 如果后面接的 name 为外部指令时, 才会显示完整文件名;
-a : 会由 PATH 变量定义的路径中, 将所有含 name 的指令都列出来, 包含 alias

3、echo 变量取用,需要再变量之前加上$

4、unset 变量 取消变量的方法为使用

5、env
说明:
观察环境变量与常见环境变量说明

HOSTNAME=study.centos.vbird <== 这部主机的主机名称
TERM=xterm <== 这个终端机使用的环境是什么类型
SHELL=/bin/bash <== 目前这个环境下, 使用的 Shell 是哪一个程序?
HISTSIZE=1000 <== “记录指令的笔数” 在 CentOS 默认可记录 1000 笔
OLDPWD=/home/dmtsai <== 上一个工作目录的所在
LC_ALL=en_US.utf8 <== 由于语系的关系, 鸟哥偷偷丢上来的一个设置
USER=dmtsai <== 使用者的名称啊!
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:
or=40;31;01:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:
*.tar=01… <== 一些颜色显示
MAIL=/var/spool/mail/dmtsai <== 这个使用者所取用的 mailbox 位置
PATH=/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/dmtsai/.local/bin:/home/dmtsai/bin
PWD=/home/dmtsai <== 目前使用者所在的工作目录 (利用 pwd 取出! )
LANG=zh_TW.UTF-8 <== 这个与语系有关, 下面会再介绍!
HOME=/home/dmtsai <== 这个使用者的主文件夹啊!
LOGNAME=dmtsai <== 登陆者用来登陆的帐号名称
_=/usr/bin/env <== 上一次使用的指令的最后一个参数(或指令本身)

6、export 变量名称 导出变量为环境变量

7、read [-pt] 变量
说明: 变量内容从键盘中输入
p : 后面可以接提示字符!
-t : 后面可以接等待的“秒数! ” 这个比较有趣~不会一直等待使用者啦!

8、declare [-aixr] variable
说明: 定义变量类型
-a : 将后面名为 variable 的变量定义成为阵列 (array) 类型
-i : 将后面名为 variable 的变量定义成为整数数字 (integer) 类型-x : 用法与 export 一样, 就是将后面的 variable 变成环境变量;
-r : 将变量设置成为 readonly 类型, 该变量不可被更改内容, 也不能 unset

9、ulimit [-SHacdfltu] [配额]
说明: 限制使用者使用的系统资源
-H : hard limit , 严格的设置, 必定不能超过这个设置的数值;
-S : soft limit , 警告的设置, 可以超过这个设置值, 但是若超过则有警告讯息。
在设置上, 通常 soft 会比 hard 小, 举例来说, soft 可设置为 80 而 hard
设置为 100, 那么你可以使用到 90 (因为没有超过 100) , 但介于 80~100 之间时,
系统会有警告讯息通知你!
-a : 后面不接任何选项与参数, 可列出所有的限制额度;
-c : 当某些程序发生错误时, 系统可能会将该程序在内存中的信息写成文件(除错用) ,
这种文件就被称为核心文件(core file) 。 此为限制每个核心文件的最大容量。
-f : 此 shell 可以创建的最大文件大小(一般可能设置为 2GB) 单位为 KBytes
-d : 程序可使用的最大断裂内存(segment) 容量;
-l : 可用于锁定 (lock) 的内存量
-t : 可使用的最大 CPU 时间 (单位为秒)
-u : 单一使用者可以使用的最大程序(process) 数量

${变量#关键字}
${变量##关键字}
若变量内容从头开始的数据符合“关键字”, 则将符合的最短数
据删除
若变量内容从头开始的数据符合“关键字”, 则将符合的最长数
据删除
${变量%关键字}
${变量%%关键字}
若变量内容从尾向前的数据符合“关键字”, 则将符合的最短数
据删除
若变量内容从尾向前的数据符合“关键字”, 则将符合的最长数
据删除
${变量/旧字串/新字
串}
${变量//旧字串/新字
串}
若变量内容符合“旧字串”则“第一个旧字串会被新字串取代”
若变量内容符合“旧字串”则“全部的旧字串会被新字串取代

10、username=${username-root} 如果username没有设置就设置root内容

变量量设置方式 str 没有设置 str 为空字串 str 已设置非为空字串

var= s t r − e x p r v a r = e x p r v a r = v a r = {str-expr} var=expr var= var= strexprvar=exprvar=var=str
var= s t r : − e x p r v a r = e x p r v a r = e x p r v a r = {str:-expr} var=expr var=expr var= str:exprvar=exprvar=exprvar=str
var= s t r + e x p r v a r = v a r = e x p r v a r = e x p r v a r = {str+expr} var= var=expr var=expr var= str+exprvar=var=exprvar=exprvar={str:+expr} var= var= var=exprvar= s t r = e x p r s t r = e x p r v a r = e x p r s t r 不 变 v a r = s t r 不 变 v a r = {str=expr} str=expr var=expr str 不变 var= str 不变 var= str=exprstr=exprvar=exprstrvar=strvar=str
var= s t r : = e x p r s t r = e x p r v a r = e x p r s t r = e x p r v a r = e x p r s t r 不 变 v a r = {str:=expr} str=expr var=expr str=expr var=expr str 不变 var= str:=exprstr=exprvar=exprstr=exprvar=exprstrvar=str
var= s t r ? e x p r e x p r 输 出 至 s t d e r r v a r = v a r = {str?expr} expr 输出至 stderr var= var= str?exprexprstderrvar=var=str
var= s t r : ? e x p r e x p r 输 出 至 s t d e r r e x p r 输 出 至 s t d e r r v a r = {str:?expr} expr 输出至 stderr expr 输出至 stderr var= str:?exprexprstderrexprstderrvar=str

11、history [n]
history [-c]
history [-raw] histfiles
说明: 查看下达命令历史记录
n : 数字, 意思是“要列出最近的 n 笔命令列表” 的意思!
-c : 将目前的 shell 中的所有 history 内容全部消除
-a : 将目前新增的 history 指令新增入 histfiles 中, 若没有加 histfiles ,
则默认写入 ~/.bash_history
-r : 将 histfiles 的内容读到目前这个 shell 的 history 记忆中;
-w : 将目前的 history 记忆内容写入 histfiles 中!

  1. /etc/profile: 这是系统整体的设置, 你最好不要修改这个文件;
  2. ~/.bash_profile 或 ~/.bash_login 或 ~/.profile: 属于使用者个人设置, 你要改自己的
    数据, 就写入这里!

BASH

1、cut -d’分隔字符’ -f fields
2、cut -c 字符区间
3、grep [-acinv] [–color=auto] ‘搜寻字串’ filename
说明: 取出自己想要的行信息
-a : 将 binary 文件以 text 文件的方式搜寻数据
-c : 计算找到 ‘搜寻字串’ 的次数
-i : 忽略大小写的不同, 所以大小写视为相同
-n : 顺便输出行号
-v : 反向选择, 亦即显示出没有 ‘搜寻字串’ 内容的那一行!
–color=auto : 可以将找到的关键字部分加上颜色的显示喔!
4、sort [-fbMnrtuk] [file or stdin]
说明: 排序命令
-f : 忽略大小写的差异, 例如 A 与 a 视为编码相同;
-b : 忽略最前面的空白字符部分;
-M : 以月份的名字来排序, 例如 JAN, DEC 等等的排序方法;
-n : 使用“纯数字” 进行排序(默认是以文字体态来排序的) ;
-r : 反向排序;
-u : 就是 uniq , 相同的数据中, 仅出现一行代表;
-t : 分隔符号, 默认是用 [tab] 键来分隔;
-k : 以那个区间 (field) 来进行排序的意思
5、uniq [-ic]
说明: 让结果去重
-i : 忽略大小写字符的不同;
-c : 进行计数

5、 tr [-ds] SET1 …
说明: tr 可以用来删除一段信息当中的文字, 或者是进行文字信息的替换
-d : 删除讯息当中的 SET1 这个字串;
-s : 取代掉重复的字符!

示例:
1) last | tr ‘[a-z]’ ‘[A-Z]’ last输出信息中,所有的小写转换为大写
2) cat /etc/passwd | tr -d ‘:’ 删除passwd中的冒号

6、col [-xb]
说明:
-x : 将 tab 键转换成对等的空白键

6、join [-ti12] file1 file2
说明: 处理两个文件之间的数
据, 而且, 主要是在处理“两个文件当中, 有 “相同数据” 的那一行, 才将他加在一
起”的意思
-t : join 默认以空白字符分隔数据, 并且比对“第一个字段” 的数据,
如果两个文件相同, 则将两笔数据联成一行, 且第一个字段放在第一个!
-i : 忽略大小写的差异;
-1 : 这个是数字的 1 , 代表“第一个文件要用那个字段来分析” 的意思;
-2 : 代表“第二个文件要用那个字段来分析” 的意思。

7、paste [-d] file1 file2
说明:
-d : 后面可以接分隔字符。 默认是以 [tab] 来分隔的!

  • : 如果 file 部分写成 - , 表示来自 standard input 的数据的意思
    8、expand [-t] file
    说明: 将 [tab] 按键转成空白键
    t : 后面可以接数字。 一般来说, 一个 tab 按键可以用 8 个空白键取代。
    我们也可以自行定义一个 [tab] 按键代表多少个字符!

9、split [-bl] file PREFIX
说明: 分区命令
-b : 后面可接欲分区成的文件大小, 可加单位, 例如 b, k, m 等;
-l : 以行数来进行分区。
PREFIX : 代表前置字符的意思, 可作为分区文件的前导文字。

10、 xargs [-0epn] command
说明: 参数替换
-0 : 如果输入的 stdin 含有特殊字符, 例如 `, , 空白键等等字符时, 这个 -0 参数
可以将他还原成一般字符。 这个参数可以用于特殊状态喔!
-e : 这个是 EOF (end of file) 的意思。 后面可以接一个字串, 当 xargs 分析到这个字串时,
就会停止继续工作!
-p : 在执行每个指令的 argument 时, 都会询问使用者的意思;
-n : 后面接次数, 每次 command 指令执行时, 要使用几个参数的意思。

Guess you like

Origin blog.csdn.net/yuwusheng18/article/details/120379720