之前一次登陆使用过的命令会在./bash_history文件中记录
###################################################
alias
为指令设置一个别名
alias vi='vim'用vim来代替vi开启文本文件
##################################################
*:为通配符
可以替代任何字符,常用语批量操作
rm -rf filePartName*
#####################################################
type
可以查询命令是否为bash shell 内建命令
####################################################################
C+u: 删除光标到开始处的所有命令
C+k: 删除光标到末尾处的所有指令
C+a: 将光标移动到最前面
C+e: 将光标移动到最后面
在\后面接上enter,可以让命令换行编写
###################################################################
shell变量
输入类似于
TEST=test
的命令时将会称为shell变量,使用echo $TEST可以显示变量的具体值
在编写变量时可以使用单引号和双引号
双引号: TEST_0="$TEST is a" 当双引号引用其他变量时,可以将其他变量的值传递到改变量内
单引号: TEST_1='$TEST is b' 当单引号试图引用其他变量时,是不会有该效果,
当不使用单双引号时如果需要空格,引号,等指令符号,需要在前面填写\
unset: 取消变量设定
export 可以将变量导入当前环境变量里
###################################################################
export 和 env
可以查看当前系统中的环境变量
echo $?可以查看上一个命令的返回值
set内的PS1可以更改bash标题的内容
locale可以查看当前系统所使用的语言
######################################################################
read name
shell输入该指令后会等待用户输入,将输入后的值赋值给name
-t 等待时间
-p 命令提示
######################################################################
declare
不带任何参数会将当前所有的变量显示出来
-a 将后面名为variable的变量定义称为数组类型
-i: 将后面名为variable的变量定义为整数数字类型
-x: 用法与export一样,就是将后面的变量设置称为环境变量
-r: 将变量设定称为 readonly模式,不能更改,不能unset
###################################################
ulimit
对当前登陆的用户做限制,防止电脑资源的枯竭
-a 查看当前限制设置
-H hard limit: 严格的设定,不能超过该设定的数值
-S soft limit: 宽松的设定,在其与hard limit登陆的用户会收到一个通知
-c 当程序发生错误时,.系统可能会将该程序在内存中的信息写成文件来排查错误,该设置为每个核心文件的最大容量
-f: 此shell可以建立的最大文件容量
-d: 程序可使用的最大断裂内存容量
-l: 可用于锁定的内存量
-t: 可使用的最大CPU时间
-u: 单一用户可以使用的最大程序数量
#############################################
echo ${path#/*:}
################################################################
当echo设定变量时,不确定是否存在该变量
echo ${val-content}
当val不存时,会被设定为content
echo ${val:-content}
当val未被设定或为空字符串时,会被设定为content
###########################################################################
history
查看当前用户操作的历史记录
n: 查看最近的n条记录
-c: 将当前shell中的历史记录清楚
-a histfiles: 将新增的history指令加入histfiles中,若没有填写histfiles,将会默认写入~/.bash_history里
-r: 将histfiles的内容读到目前这个shell的history记忆中
-w: 将目前的histroy内容写入histfiles中
!number: 运行第number 的指令
!command: 运行最近与command相符的指令
###############################################################
type -a ls
可以查看指令搜索的顺序
一般来说alias所声明的指令是默认搜索的第一顺位
###########################################################
在/etc/issue可以填写本地登陆时显示内容
\d: 显示本地端时间
\l显示第几个终端机接口
\m: 显示硬件的等级
\n: 显示主机的网络名称;
\O 显示domain name:
\r 操作系统的版本
\t 显示本地短时间的时间
\S 操作系统的名称
\v 操作系统的版本
在/etc/issue可以设置远程端登陆的显示内容
##################################################################
~/.brahrc
定义当前控制台的命令提示字符
如果不小心删除,可以复制/etc/skel/.bashrc恢复
~/.bash_history
当前历史操作记录会在退出登录时写入该文件
~/.bash_logout
当用户退出时会执行该文件,可以设置一些用户想在退出后执行的重复工作
################################################################
stty与set
对当前终端机的命令行快捷键进行设置
stty -a可以查看当前的快捷键设置
^表示Ctrl
^C则表示Ctrl+C
######################################################################
通配符:
*,表示0个到无穷多个任意字符
?: 代表一定有一个任意字符
[]:同样代表一定有一个在括号内的任意字符,如[abcd]则表示,abcd中的一个
[-],:括号内减号表示连续字符[0-9]表示0-9中的一个
[^]:表示除了^中的字符都可以匹配
特殊符号:
#:表示后面的数据均为注释,不运行
\:将后面的特殊符号或者通配符还原成一般字符
|: 分隔两个管线命令的界定
;:连续指令下达分隔符
~:用户的家目录
$:取用变量的符号,如需使用变量需要加上该符号
&:工作控制:将指令变成背景下工作
!:逻辑非
/:路径分隔的符号
>,>>:数据流重导向:输出导向,分别是[取代]与[累加]
<,<<: 数据流重导向
'':单引号,不具有变量置换的功能
"":具有变量置换的功能,$可以调用变量
``:类似于$()
():在中间为子shell的起始与结束
{}在中间为逻辑块或命令区块
文件名不要使用上述的组合
##########################################################################
>:将正确输出导入到一个文件内,如果文件内有内容,将会被替换掉
>>:以累加的方式将输出导出到文件
2>: 将错误输出导出到一个文件
2>>:以累加的方式将错误输出导出到一个文件
#####################################################################
如果不想显示错误输出,且不想保存,可以将文件导出到
/dev/null
里,可以丢弃所有导入的数据
#################################################################
如果想将多个输出导入到同一个文件里
可以使用
2>&1
来达到排序的目的
1>&2 意思是把标准输出重定向到标准错误.
2>&1 意思是把标准错误输出重定向到标准输出。
&>filename 意思是把标准输出和标准错误输出都重定向到文件filename中
(https://www.cnblogs.com/liuchaogege/p/6124669.html)
####################################################################
<,将原本输入用文件导入,遇到C+d退出
<<,将原本的输入用文件导入,遇到eof表示输入结束
###############################################################
首先当一个指令成功执行时,会返回0作为成功标示
可以理解为0为true,而其他值为false,与c++正好相反
cmd1&&cmd2 : 可以理解为当cmd1成功执行,即返回值$?==0时,才执行cmd2
cmd1||cmd2:可以理解为当cmd1执行失败,即返回值$?!=0时,才执行cmd2
#################################################################
|
管道线,
cmd1 | cmd2
将cmd1的执行结果使用cmd2执行
##################################################################
cut
处理显示数据
-d 分割符号
-f 取出第几段
-c 以字符位单位取出固定字符区间
##########################################################
last:
查看最后登陆的用户
#############################################################
grep
将筛选出满足条件的内容进行显示
-a 将二进制文件以文本形式进行搜索
-c 计算查找到的字符串的次数
-i: 忽略大小写
-n 输出行号
-v 进行反向选择
--color=auto 将关键字加上颜色标示
##############################################################
将结果进行规则排序
-f: 忽略大小写的差异
-b: 忽略最前面的空格符部分
-M: 以月份的名字来排序
-n: 使用纯数字进行排序(默认是文本形态)
-r:反向排序
-u: uniq, 相同的数据,仅出现一次
-t 分隔符,预设是用tab来分隔
-k 以第几区间进行排序的意思
##################################################################
uniq
将不显示重复的结果
-i: 忽略大小写
-c: 计算重复的数量
#######################################################
wc
计算当前文本的数量
-l: 计算一共有多少行
-w: 计算一共有多少英文单字
-m: 计算一共有多少字符
########################################################
tee
将当前的输出内容分流到文件
-a
以累加的形式将数据加入文件中
#################################################
tr
删除一段讯息当中的文字,或进行文字讯息的替换
-d content: 删除讯息中的 content
-s: 取代掉重复的字符
########################################################
col
将tab转换为空格
#################################################
join
将指定文件按给定的条件进行合并
-t: 给定一个分隔符
-i: 忽略大小写的差异
-1: 代表第一个文件使用那个字段作为条件
-2: 表示第二个文件使用那个字段作为条件
##################################################################
paste
-d: 可以接分隔字符,预设是用tab来分隔
- 如果file 部分写成-,表示来自standard input的 意思
简单的将连个文件链接在一起,中间用设定分割符分隔
##################################################################
expand
将文件中的tab转换成空格来代替
-t: 设定用几个空格取代
##################################################################
split 将大文件分解成多个小文件
-b: 设定分区文件的大小
-l: 以行数来进行分区
cd /tmp; split -b 300k /etc/services services
将文件分成多个小文件
在需要集合时
cat services* > services
就可以复原
####################################################################
xargs
当某些指令不支持管道时,可以使用该指令调用指令
将前面的结果以参数的形式传递过来使用
echo "test.txt" | xargs cat
将会打开 test.txt显示内容,而不是输出test.txt文本
###################################################################
-: 减号
可以替代成stdin或者stdout
例如
tar -cvf - /home | tar -xvf - -C /tmp/homeback
可以将打包文件通过管道传输给后面的指令进行解压缩,从而达到不用输入文件名的效果
#######################################################################