个人笔记
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

143 lines
5.4 KiB

3 years ago
# 常用shell列表
3 years ago
| 命令 | 作用 |
| ------------------------------------------------------------ | ------------------------------ |
| yum install --installroot=/usr/local | 表示指定自定义的安装目录 |
| free -hm | 查看内存使用情况 |
| netstat –apn | 查看所有端口占用情况 |
| lsof -i:80 | 查看占用端口程序 |
| df -lh | 查看磁盘用量 |
| > text.txt | 清空文件 |
| echo $LANG | 查看字符集 |
| export LANG=zh_CN.UTF-8 | 临时修改字符集 |
| vim /etc/locale.conf | 修改centos7.5字符配置文件 |
| source /etc/locale.conf | 配置生效 |
| tar -zxvf xxx.tar.gz -C /dest | tar文件解压到指定目录 |
| ln -s /xxx/xxx.jar /etc/init.d/xxx | jar包注册service服务 |
| cd /etc/rc.d/init.d<br/>chkconfig --add monitor<br/>chkconfig monitor on | 开机启动service |
| find /home/ -name xxx | 查找/home目录下名字为xxx的文件 |
| ssh 192.168.0.1 -l root -p 22 | 远程登录到另一台主机 |
| scp root@192.16.0.1:/path/name /path | 从服务器上下载文件 |
| scp /path/name root@192.16.0.1:/path | 上传本地文件到服务器 |
| scp -r root@192.16.0.1:/path /path | 从服务器下载整个目录 |
| scp -r /path root@192.16.0.1:/path | 上传目录到服务器 |
| chown user:user file | 修改文件用户组和用户 |
| systemctl stop firewalld | 关闭防火墙 |
| | |
| | |
## 其他shell相关知识
### 开机自启程序或脚本
- 在`/etc/profile`文件中添加启动命令
### 后台执行命令或脚本
- `nohup command &`
如果使用nohup命令提交任务,在默认情况下该任务的所有输出都被重定向到一个名为nohup.out的文件中,除非另外指定了输出文件,如:
`nohup command > myout.file 2>&1`
输出被重定向到myout.file文件中
如果不想做任何输出,可以将输出文件指定为/dev/null,`/dev/null`代表linux的空设备文件,所有往这个文件里面写入的内容都会丢失,俗称“黑洞”。
`nohup command > /dev/null 2>&1`
### shell操作字符串
- 判断字符串是否包含另一个字符串
- 使用~
`if [[ $A =~ $B ]]`
- 使用通配符*
`if [[ $A == *$B* ]]`
- 截取字符串
- ${A:B:C}
`${foo:3:2}` //从下标为3的字符开始截取,共截取2个
- ${A#B}/${A##B}
清除字符串中符合pattern的字符,从字符串最前匹配
```shell
foo=“file.txt.zip”
echo ${foo#*.} //一个#号代表按照最短匹配清除
txt.zip
echo ${foo##*.} //2个#号代表按照最长匹配清除
zip
```
- ${A%B}/${A%%B}
清除字符串中符合pattern的字符,从字符串最后匹配
```shell
foo=“file.txt.zip”
echo ${foo%.*} //一个%号代表按照最短匹配清除
file.txt
echo ${foo%%.*} //2个%号代表按照最长匹配清除
file
```
- 字符串替换操作
- ${A/B/C}
```shell
foo="mp3.txt.txt.mp3.avi"
echo ${foo/txt/TXT}
mp3.TXT.txt.mp3.avi
echo ${foo//txt/TXT}
mp3.TXT.TXT.mp3.avi
foo="txt.txt.txt"
echo ${foo/#txt/TXT}
TXT.txt.txt
echo ${foo/%txt/TXT}
txt.txt.TXT
```
- 大小写转换
```shell
foo="ABcd"
echo ${foo,}
aBcd
echo ${foo,,}
abcd
echo ${foo^}
ABcd
echo ${foo^^}
ABCD
```
### shell算术运算命令
| (()) | 用于整数之间常用的运算符,效率高 |
| ------- | ---------------------------------------------------- |
| let | 用于整数运算,类似于(()) |
| expr | 用于整数运算,但是还有其他功能 |
| bc | Linux下的一个计算程序,适合整数及小数运算 |
| $[] | 用于整数运算 |
| awk | awk既可以整数运算,也可以小数运算 |
| declare | 定义变量值和属性,-i参数可以用于定义整形变量,做运算 |
| | |
## ubuntu系统相关知识
- 非root用户无法使用1024以下端口
- /etc/profile中配置的环境变量重启失效,需要在/etc/environment中配置
- 执行shell需要用bash