./和. 的区别
1.点斜杠执行脚本是启动了另一个Shell去执行脚本(另一个进程),所以点斜杠执行脚本时,设置的环境变量会随着进程的退出而结束,其中的环境变量设置对当前Shell不起作用。
2.点空格点斜杠执行脚本,是相当于source 执行脚本,source是执行脚本当中的命令,也就是说在当前进程中执行命令,所以其中的环境变量的设置会对当前Shell其作用。
也就是说设置环境变量的时候我们使用source或者说. 空格可以直接生效。
uname -a 查看当前系统版本
Linux VM-0-8-centos 3.10.0-1160.71.1.el7.x86_64 #1 SMP Tue Jun 28 15:37:28 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
发行版本
du -sh
查看当前目录占用空间
alias
查看当前命令别名比如ll 是ls -l
who
sync
将数据写入硬盘
shutdown
关机(root)
shutdown -h +10
会通知所有用户10分钟后关机
reboot
重启
ll -h
显示文件大小以人类易读方式
ll -a
显示隐藏文件
ll -i
前面显示inode号
cp [opt] src1 src2 src3.... dest
拷贝的东西可能权限属性会有所不同,所以如果想要属性都拷贝过来,加-a。
cp -s src dst
创建符号连接(快捷方式)
cp -l src dst
创建硬链接
rm [opt] 文件或目录
-r 递归删除目录
-f 强制删除不提示
mv src dst
-f 直接移动覆盖
-u 如果src比较新才覆盖
进程
ps -a
ps -l
top 监控进程信息
kill 【pid】 结束进程
pkill [http*] 终止名字为http加后缀的进程
jobs 显示当前运行在后台模式中的进程
查看文件内容
cat file
-n 打印行号
nl file 直接打印行号cat 文件
more file 查看文件只在一个屏幕显示并显示当前百分比,空格下翻页,箭头向下走, q离开。
less file 这个命令更有用,他更像一个小型的vim,快捷键也和vim类似,只不过他只能查看,所以要查看和查找的时候使用less是不错的选择。
head -n num file
查看文件开头几行
tail -n num file
查看文件末尾几行
将当前目录及其子目录下所有文件后缀为 .c 的文件列出来:
find . -name “*.c”
硬盘操作
df -h
列出文件系统整体磁盘不同分区的使用量
/dev/shm是虚拟出来的他使用的是物理内存,通常为物理内存的一半。所以存在这个目录下的数据如果关机就会消失。
du -sh 文件或目录名称
显示某个文件或者目录的大小,如果无最后一个参数则显示的是当前目录大小
### 内部命令和外部命令
外部命令:开销大,在执行时会产生一个子进程,然后执行外部命令,比如ps命令就是一个外部命令。当执行时,他会创建一个子进程,可以看到它的PPID为父进程的shell
cd是内建命令:开销低,不会产生子进程。
可以用type命令看查看某个命令是内部命令还是外部命令。
history是一个实用的内部命令,可以查看你之前所有执行过的命令
环境变量
shell常用命令
替换目录下的所有文件中某个关键字
#!/bin/bash
# find path and replace all .c file keywords is "while" to "for"
find ./ -name "*.c" -exec sed -i 's/hip/mc/g' {} \;
删除关键字所在行
find ./ -name "*.c" -exec sed -i '/load_json_helper/d' {} \;