Linux常用命令和快捷键
bash特性:
变量、快捷键、命令别名、命令行展开:{},~、管道、输入/输出重定向、编程、命令行补全、路径补全
常用快捷键
快捷键 | 作用 |
---|---|
ctrl + l | 清屏 |
ctrl + c | 取消或终止 |
ctrl + a | 将光标移动到行首 |
ctrl + e | 将光标移动到行尾 |
ctrl + z | 将当前命令送至后台 |
ctrl + u | 剪贴命令行首到当前光标所在处的内容 |
ctrl + k | 剪贴当前光标所在处到命令行尾的内容 |
命令补齐
teb键:搜索PATH环境变量所指定的路径下的每一个可执行文件,如果命令的部分字符能唯一标识某命令,则直接补全;如果不能唯一标识,再敲一次tab键,会显示所有以命令的部分字符开头的命令
路径补齐
teb键:字符串打头的路径下找寻
管道重定向|
可以将一条命令的标准输出内容,重定向到另一条命令的标准输入内容。注意:命令必须支持管道
ls -al | grep "root"
命令别名alias
alias 别名='正常命令'
unalias 别名
当别名和命令的名字相同时,如果要使用原有的命令别名,则需要使用“\命令”
作用范围为当前shell,除非写在bash配置文件中
alias cls='clear'
unalias cls
文本处理工具
文件查看:cat tac more less head tail
wc统计单词个数命令
wc:word count
wc [option] FILE
-l 行数
-w 单词数
-c 字符数
例如:统计当前目录下txt格式的文件个数
ls *.txt | wc -l
tr转换字符命令
tr:translate 将文件或管道中一类字符转换为另一类字符
注意:只能从标准输入中读取数据,必须通过管道或重定向
tr '原来字符的集合' '转换为的字符集合'
tr '123' 'abc'
把1转换为a,2转换为a,3转换为c
-d '字符集合' 把出现的文件中的,属于字符集合中的字符统统删除
示例:
把单词小写转换成大写
echo "hello world" | tr 'a-z' 'A-Z'
HELLO WORLD
删除单词中的abcde
echo "hello world" | tr -d 'abcde'
hllo worl
不能直接操作文件,必须重定向或者管
tr 'a-z' 'A-Z' < /etc/fstab
cut文本切割
最常用的功能是能能够指定的符号作为行中内容的分隔符,将每一行切片,而只取出某些片;
cut [option] FILE
-d 分隔符 默认分隔符 ‘ ’ 空白字符
-f 取第几个字段
-f 1 取第一片
-f 1,5 取一和五片
-f 1-5 取第一和第三段
注意:
join命令可以连接行
cut 只取某些特殊字段,在关系型数据库中叫投影操作(根据指定分隔符取一行中的某一列或某几列)
grep 只去某些行,在关系型数据库中叫选择操作(筛选出需要的行)
例如:
[root@node1 ~]# grep "/bin/bash" /etc/passwd | cut -d ":" -f 1 | head -1
root
先筛选出在/etc/passwd
文件中,包含/bin/bash
的行,将其以:
分割,并且取出分割后的第一个部分,然后取出第一个元素
设置变量
bash为解释性语言,弱类型语言,具体设置变量有以下特点
- 不强制区分变量类型,无论存储什么类型的数据,默认均存储为ascii
- 不需要事先声明
set 定义变量
set Var_NAME = Value
set可以省略
unset撤销变量
unset Var_NAME
使用变量
-
方法一
NAME="Open Stack" echo $NAME unset NAME
-
方法二
echo "There are some ${animal}s."
注意:
必须为双引号,单引号不会将转义${animal}
如果变量中间有空格,则必须用花括号,否则花括号可以省略
变量类型
本地变量:NAME="Open Stack"
,只对当前shell进程有效,对子shell和其他shell无效
局部变量:local VAR_NAME=Value
只对代码段有效,仅对局部代码有效,不包括当前shell
环境变量:export VAR_NAME
,对当前shell及其子shell有效,例如:export LANG=en
位置变量:$1,$2,...
特殊变量:$$,$!,$#,$?
声明变量declare
bash也可以用declare声明变量
declara [option] var_name
option:
- -i 整形变量
- -x 环境环境变量
- -a 声明一个数组
显示当前系统所有环境变量的命令:
- printenv
- export
查看所有变量命令:
- set
使用变量
变量引用 :${VAR_NAME}
双引号:弱引用,可以进行变量替换
单引号:强引用,不可以进行变量替换,显示字符串本身
反引号:命令引用,``,$(),显示命令执行的结果
echo "My name is $NAME"
echo "The time is `data +%T`"
echo "The time is $(data +%T)"
例如:创建以当前日期为文件名的文件
touch file-`data +%F`.txt
touch file-$(data +%F).txt