Linux bash基础特性[补全,快捷键,命令历史,命令别名,变量,特殊符号,重定向,通配符]

本文介绍了Linux Bash的基础特性,包括命令补全以提高效率和准确性,常用的快捷键,命令历史的管理,如何创建和使用命令别名,理解变量的用途,特殊符号的功能,输入输出重定向的操作,以及通配符在命令行中的应用。通过学习这些内容,用户可以更高效地在Linux环境中工作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

补全

补全机制
命令补全shell会把最左侧的字符串当作命令识别,补全时会在通过PATH环境变量设定的目录中从左到右逐个搜索,若能唯一标识,则直接补全,若不能,再按一次,给出列表
路径补全在给定的起始路径下,能唯一标识直接补全,否则再按一次给出列表

补全提高了速度的同时也可以提高命令以及路径的正确率

快捷键

快捷键功能
ctrl+c终止前台运行的程序
ctrl+d退出
ctrl+l清屏
ctrl+r搜索历史命令,利用关键词
编辑命令快捷键功能
ctrl+a光标移到命令行的最前端
ctrl+e光标移到命令行的最后
ctrl+u删除光标前的所有字符
ctrl+k删除光标后的所有字符

命令历史

$HISTSIZE 记录shell进程可以保留的命令历史的条数

$HISTFILE 持久保存命令历史的文件

$HISTFILESIZE 命令历史文件的大小

每个用户在自己的家目录下使用ls -a都可以看到有个.bash_history文件,存储着上一次退出shell之前用过的命令历史

history: 查看命令历史

选项功能
-c清空命令历史
-r从命令历史文件读取命令历史至命令历史列表中
-d offset删除历史命令列表中指定序号的命令
-w把历史列表中的命令追加到历史文件中
命令功能
history #显示最近#条命令
!#再次执行历史列表中第#条命令
!!再次执行上一条命令
!STRING再次执行命令历史列表中最近一个以STRING开头的命令
esc+.调用上一条命令的最后一个参数
!$调用上一条命令最后一个参数

命令别名

将一个命令或一条长命令定义为简短,好记的其它词句,方便使用。
bash中有系统自己定义的命令别名,输入alias查看

[root@zangqingfa ~]# alias
alias cp='cp -i'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

定义别名

[root@zangqingfa ~]# alias see='ls -a -l'
[root@zangqingfa ~]# see
总用量 60
dr-xr-x---.  2 root root  4096 11月 30 18:43 .
dr-xr-xr-x. 22 root root  4096 11月 30 18:41 ..
-rw-------.  1 root root   939 11月 22 17:24 anaconda-ks.cfg
-rw-------.  1 root root  4096 11月 30 06:42 .bash_history
-rw-r--r--.  1 root root    18 5月  20 2009 .bash_logout
-rw-r--r--.  1 root root   176 5月  20 2009 .bash_profile
-rw-r--r--.  1 root root   176 9月  23 2004 .bashrc
-rw-r--r--.  1 root root   100 9月  23 2004 .cshrc
-rw-r--r--.  1 root root 13368 11月 22 17:24 install.log
-rw-r--r--.  1 root root  3482 11月 22 17:24 install.log.syslog
-rw-r--r--.  1 root root   129 12月  4 2004 .tcshrc
-rw-------.  1 root root   168 11月 30 18:43 .Xauthority

撤销别名

[root@zangqingfa ~]# unalias see
[root@zangqingfa ~]# see
-bash: see: command not found

上面的方法仅对当前正在运行的shell有效,当机器重启时,之前的定义操作不再存在
使用 type -a ls可查看ls命令的别名信息以及命令所在目录

[root@zangqingfa ~]# type -a ls
ls is aliased to `ls --color=auto'
ls is /bin/ls

[root@zangqingfa etc]# ls 别名优先
在这里插入图片描述
[root@zangqingfa etc]# /bin/ls 跳过别名
在这里插入图片描述
永久性定义别名
vim /etc/bashrc
在此文件中写入想定义的别名,重启后会写入别名

alias see='ls -a -l'

变量

变量是计算内存的单元,其中存放的值可以改变,当Shell脚本需要保存一些信息时,如一个文件名或是一个数字,就把它存放在一个变量中。每个变量有一个名字,所以很容易引用它。使变量可以保存有用的信息,使系统获知用户相关设置,变量也可以用于保存暂时信息

在Linux系统中,变量分为了本地变量,局部变量,环境变量

本地变量生效范围为当前shell进程中的某代码片段,通常指函数
局部变量又称标准变量或普通变量,指生效范围为当前shell进程;对当前shell之外的其他shell进程,包括当前shell的子shell进程均无效
环境(全局)变量生效范围为当前shell进程及其子进程

特殊重要符号

| 管道
执行格式为 命令A | 命令B
作用:把前一个命令原本要输出到屏幕的正常数据输出当作是后一个命令的标准输入
例:

[root@zangqingfa ~]# ls /dev/ |grep sda
sda
sda1
sda2
sda3

. 点号
… 双点号
输入ls -a 可查看当前目录下的所有文件

[root@zangqingfa ~]# ls -a
.   anaconda-ks.cfg  .bash_logout   .bashrc  install.log         .tcshrc   .Xauthority
..  .bash_history    .bash_profile  .cshrc   install.log.syslog  .viminfo

点号代表当前目录
双点号代表上一级目录
; 分号
Linux在执行多条命令时,用分号分开,按照顺序独立的执行各条命令,不论其他命令正确错误,所有命令都会执行
’ ’ 单引号
强引用,不做变量替换
" " 双引号
弱引用,可以实现变量和命令的替换
{ }大括号
做扩展,或者构建代码块

输入输出重定向

Linux提供了三种I/O设备

标准输入-0默认接受来自键盘的输入
标准输出-1默认输出到终端窗口
标准错误-2默认输出到终端窗口

重定向即改变系统默认的标准输入输出错误端口,而由自己指定
输出重定向

正确输出
1>或 >正确输出重定向,后面的内容会覆盖以前的内容
1>>或 >>正确输出重定向,后面的内容会追加到以前内容之后
错误输出
2>错误输出重定向,后面的内容会覆盖以前的内容
2>>错误输出重定向,后面的内容会追加到以前内容之后

<实现输入重定向,使用比较少
混合输出重定向:&>
正确错误输出重定向到相同位置: 2>&1
一般用于查看脚本执行状态或记录定时任务执行结果

命令行通配符

通配符含义
*匹配任意长度的任意字符
?匹配任意长度单个字符
[ ]匹配指定范围内的任意单个字符,如[a-z],[A-Z],[0-9]
[^]匹配指定范围外的任意单个字符
[[:upper:]]所有大写字母
[[:lower:]]所有小写字母
[[:alpha:]]所有字母
[[:digit:]]所有数字
[[:alnum:]]所有字母和数字
[[:space:]]所有空白字符
[[:punct:]]所有标点符号

例:

[root@zangqingfa ~]# ls /etc/s*[[:punct:]][[:alnum:]]
/etc/statetab.d:

/etc/sudoers.d:

/etc/sysctl.d:

这是查看/etc/以s开头,后面有标点符号,后面有任意字符的文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值