当前位置: 首页 > 工具软件 > bash-insulter > 使用案例 >

linux --> shell --> alias,bash,pipe

林亦
2023-12-01


linux下的shell命令学习笔记007
# ---------------------------------------
# alias
# (举例就不用了,太常用了)
# unalias
#


# ---------------------------------------
# history 
# -c #将目前shell中的所有History清除
# -w #将当前shell中的history写入到文件.bash_history中
# [n] #即history 3  #显示最新的3条历史记录
#
# echo $HISTSIZE #显示历史记录的最大条数
#
# !! #执行上一次的命令
# !number #用history查看,number=命令编号
# !command #执行最近的开头为command的的那个命令
#


# ---------------------------------------
# 命令的执行顺序(我个人认为分为2类)
# A.用相对/绝对路径执行命令的,例如:/bin/ls
# B.直接执行命令 ls
# 执行顺序:
# 1.alias找该命令
# 2.bash内置的(builtin)命令执行
# 3.通过$PATH的顺序找到第一个命令的绝对路径执行
#
# type -a ls #查看ls命令的执行顺序


# ---------------------------------------
# bash 登录和欢迎信息
# /etc/issue 
# ...( 并未测试),什么是tty???




# --------------------------------------- 
# Ctrl + s #暂停输入
# Ctrl + q #恢复输入



# --------------------------------------- 
# bash 通配符
# * #0到无穷多个任意字符
# ? #代表一定有一个任意字符
# [] #一定有一个中括号内的任意字符
# #例如:[abc] 此处可能是a,b,c之中的任何一个
# #我的理解是“或”关系
# [-] #编码顺序内的所有字符
# #例如[0-9]表示0-9之间的所有数据
# [^] #中括号内第一个字符为指数符号,表示取反
# #例如[^a-z]非小写字符即可
# #例如[^abc]非a,b,c的字符即可
#


# --------------------------------------- 
# 重定向
# 0.标准输入 <, <<
# 1.标准输出 >, >> (前者覆盖,后者追加)
# 2.标准错误 2>, 2>> (同上)
#
# 若想让正确和错误数据放在同一个文件下:
# find home   >list 2>&1

# 键盘输入:
# cat > 1.txt #将键盘输入的内容,写入到1.txt
# 用文件来代替键盘的输入
# cat >1.txt <.bashrc #将.bashrc文件中的内容写入到1.txt

# cat >1.txt <<"eof" #当用键盘输入eof之后,该次输入就结束了
#


# 双向重定向 tee ---- 一份重定向,一份stdout
# ls -l /home | tee list | more
# 用于将数据流的执行过程中,将数据记录下来
# 上面例子的含义是,将/home下的文件信息显示,并记录到list文件中




# --------------------------------------- 
# 命令执行判断依据
# $?  #命令传回码 0.表示成功

# && #可以类比"与",若前者失败,则后者不执行。
# || #可以类比"或",若前者成功,则后者不执行。

# 举例:
# ls -al 1.txt 2>/dev/null || touch 1.txt
# # 列出1.txt文件的信息
# #若1.txt不存在,直接创建
# · #若已经存在,则显示文件信息
#
# 注:命令从左至右执行
# ls /tmp/abc || mkdir /tmp/abc && touch /tmp/abc/Hehe
# #试着分析一下以上命令的含义?


# --------------------------------------- 
# 管道命令
# ls /bin | less #方便查看/bin下的文件
##说明:cmd1 | cmd2 #cmd1的stdout作了cmd2的stdin
#


# --------------------------------------- 
# 选取命令:
# cut   ----- 用于同一行里面的数据的分解
# echo $PATH | cut -d ':' -f 3,5
# # PATH变量中的内容,用:分割,显示第3条和第5条
# echo $PATH | cut -d ':' -f 3-5
# # ...,显示3,4,5条(即含义是3到5)
# echo $PATH | cut -d '/' -f 1
# #此时显示一个空白,想想为什么? ---- 请理解分割的含义
#


# grep  ----- 分析一行的信息
# grep [-acinv] [--color=auto] '查找字符串' filename
# -a 将binary文件以text文件方式查找数据
# -c 计算找到的'查找字符串'次数
# -i 忽略大小写
# -n 顺便输出行号
# -v 方向选择
# 支持正则表达式


# --------------------------------------- 
# sort 排序
# uniq (排序完毕之后)重复的数据仅仅显示一个

# 举例:
# cat 1.txt | sort | uniq
#
# wc [-lwm]
# #显示文件行数-l,字数(英文单词)-w,字符数-m

 类似资料: