Linux 零基础速查:看完就能上手的基础命令合集4
Linux 零基础速查:看完就能上手的基础命令合集4
变量定义和查看
Linux 使用变量临时字符串值,便于后续引用。变量值存储在当前会话内存中。
变量名只能包含:字母、数字、下划线。注 变量名不能以数字开头。
shell中变量的类型,一般不需要明确指明。
变量定义 标准格式如下 declare可以省略 [gzk@centos7 ~ 14:53:42]$ declare var1=key1 使用$引用变量值 [gzk@centos7 ~ 14:54:04]$ echo $var1 key1示例2 [gzk@centos7 ~ 15:00:42]$ A1=AAA [gzk@centos7 ~ 15:04:30]$ B1=BBB [gzk@centos7 ~ 15:04:32]$ echo $A1 $B1 AAA BBB输出变量时使用多个空格,效果一样 [gzk@centos7 ~ 15:00:42]$ A1=AAA [gzk@centos7 ~ 15:04:30]$ B1=BBB [gzk@centos7 ~ 15:04:32]$ echo $A1 $B1 AAA BBB [gzk@centos7 ~ 15:04:52]$ echo $A1 $B1 AAA BBB 如果这时想要保留这些空格长度,需要用引号括起来 [gzk@centos7 ~ 15:05:58]$ echo "$A1 $B1" AAA BBB使用{}限定变量范围 [gzk@centos7 ~ 15:06:47]$ echo ${A1}_$B1 AAA_BBB [gzk@centos7 ~ 15:11:49]$ echo $A1_$B1 BBB 这里的第二条命令只显示了BBB,是因为它把前面的A1_当成了变量名,但是因为我们没有对A1_设置变量,所有他就不会被输出取消变量定义 unset 变量名 [gzk@centos7 ~ 15:19:50]$ unset A1 [gzk@centos7 ~ 15:20:03]$ echo $A1 [gzk@centos7 ~ 15:20:18]$ echo $B1 BBB定义变量时候,转换变量大小写 -l 全部转小写 [gzk@centos7 ~ 16:50:13]$ declare -l name=JAMES [gzk@centos7 ~ 16:50:39]$ echo $name james -u 转大写 [gzk@centos7 ~ 16:50:48]$ declare -u name=james [gzk@centos7 ~ 16:52:22]$ echo $name JAMESlang命令
常见 LANG代码:
- 英语:en_US.utf8
- 简体中文:zh_CN.utf8
- 繁体中文:zh_TW.utf8
[gzk@centos7 ~ 17:02:48]$ date 2026年 07月 17日 星期五 17:06:21 CST [gzk@centos7 ~ 17:06:21]$ export LANG=en_US.utf8 [gzk@centos7 ~ 17:06:37]$ date Fri Jul 17 17:06:41 CST 2026 [gzk@centos7 ~ 17:06:41]$ export LANG=zh_CN.utf8 [gzk@centos7 ~ 17:07:04]$ date 2026年 07月 17日 星期五 17:07:05 CSTPATH
linux中的这些命令是存在目录中的,当命令被我们使用的时候,他会通过去寻找PATH下的路径找到对应的命令路径 [root@centos7 ~ 17:14:26]# echo $PATH /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin [root@centos7 ~ 17:14:43]# mv /usr/bin/ls . [root@centos7 ~ 17:15:28]# ls -bash: /bin/ls: 没有那个文件或目录 [root@centos7 ~ 17:15:30]# which ls alias ls='ls --color=auto' [root@centos7 ~ 17:15:38]# echo $PATH /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin [root@centos7 ~ 17:16:11]# PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin [root@centos7 ~ 17:17:07]# export PATH=$PATH:/root [root@centos7 ~ 17:17:23]# ls anaconda-ks.cfg ls 模板 图片 下载 桌面 initial-setup-ks.cfg 公共 视频 文档 音乐 [root@centos7 ~ 17:17:25]# which ls alias ls='ls --color=auto' /root/ls [root@centos7 ~ 17:17:34]# mv ./ls /usr/bin命令替换
格式如下:
- $(COMMAND)
COMMAND
[gzk@centos7 ~ 17:19:36]$ echo Today is $(date +%A) Today is 星期五计算数值 计算1+2+3 [gzk@centos7 ~ 17:27:24]$ echo $[1+2+3] 6 计算1+2+3+....+100 首先,获取它的序列 [gzk@centos7 ~ 17:27:30]$ echo {1..100} 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 然后使用tr将空格替换成加号 [gzk@centos7 ~ 17:29:40]$ echo {1..100} | tr ' ' '+' 1+2+3+4+5+6+7+8+9+10+11+12+13+14+15+16+17+18+19+20+21+22+23+24+25+26+27+28+29+30+31+32+33+34+35+36+37+38+39+40+41+42+43+44+45+46+47+48+49+50+51+52+53+54+55+56+57+58+59+60+61+62+63+64+65+66+67+68+69+70+71+72+73+74+75+76+77+78+79+80+81+82+83+84+85+86+87+88+89+90+91+92+93+94+95+96+97+98+99+100 最后将这个结果带入计算 [gzk@centos7 ~ 17:31:19]$ echo $[ $(echo {1..100} | tr ' ' '+') ] 5050保留字符字面含义(转义符)
许多字符在bash中有特殊的意义,忽略这些含义,使用引号和转义字符。
- \,取消后面单个字符的特殊含义。
- 双引号(“”),压缩shell扩展含义,不压缩命令替换、变量替换和转义字符(\)。
- 单引号(‘’),可以压缩单引号内部的所有字符含义。
使用\对$进行转义 [gzk@centos7 ~ 17:37:30]$ echo $PATH /usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/gzk/.local/bin:/home/gzk/bin [gzk@centos7 ~ 17:37:40]$ echo \$PATH $PATH