bash
Bash Scripting Tutorial for Beginners
Bash Shell Scripting Definition
- Bash:Bourne-Again SHell
Bash is a command language interpreter.conclusion
Do not be afraid to break things as that is perfectly normal. Troubleshooting and fixing code is perhaps the best booster for you to enhance your understanding of bash scripting and to improve your ability.
session
- kill seesion
screen -X -S [session # you want to kill] quit
- 新建screen会话 screen -S xxx
- 恢复指定会话 screen -r xxx
- 查看所有会话 screen -ls
- 删除指定会话 screen -S xxx -X quit
- 回到终端 Ctrl-a d
firewall
check status :
sudo ufw status
enable firewall:
1
2
3$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startupdisable firewall
1
2$ sudo ufw disable
Firewall stopped and disabled on system startup
磁盘相关
查看系统磁盘占用情况
df -h
查看目录下文件大小
du -sh
查看当前目录下一级子文件和子目录占用的磁盘容量:
du -h --max-depth=1
1
2
3
4
5查看当前目录下user目录的大小,并不想看其他目录以及其子目录:
du -sh user
-s表示总结的意思,即只列出一个总结的值
du -h --max-depth=0 user
--max-depth=n表示只深入到第n层目录,此处设置为0,即表示不深入到子目录。总结du常用命令
du -h –max-depth=1 |grep ‘G’ |sort #查看上G目录并排序
du -h –max-depth=1 |grep [TG] |sort #查找上G和T的目录并排序
du -sh –max-depth=1 #查看当前目录下所有一级子目录文件夹大小清理指定目录下的文件
例如需要根据时间删除这个目录下的文件,/tmp,清理掉20天之前的无效数据。可以使用下面一条命令去完成:
1
2
3
4
5
6
7
8find /tmp -mtime +21 -name "*" -exec rm -Rf {} \;
- /tmp :准备要进行清理的任意目录
- -mtime:标准语句写法
- +10:查找10天前的文件,这里用数字代表天数,+30表示查找30天前的文件
- "*":希望查找的数据类型,".jpg"表示查找扩展名为jpg的所有文件,""表示查找所有文件
- -exec:固定写法
- rm -Rf:强制删除文件,包括目录(注意R大写,f小写)
- {} \; 固定写法,一对大括号+空格+\+;
history
查看历史命令,支持 grep过滤操作
operate
user
1 | sudo权限用户切换成root |
卸载安装的软件
1 | 浏览已安装的程序 dpkg --list |
安装deb文件出错时
使用apt-get -f -y install
修复之后,再进行安装
1 | 1.执行命令sudo dpkg -i XXX.deb 返回依赖关系错误提示 |
centos安装离线依赖
1 | rpm -ivh name.rpm |
光标
1 | Ctrl+a:光标回到命令行首。 (a:ahead) |
时区
- GMT(格林尼治标准时间)是格林尼治时间,没有夏令时调整。
- UTC(协调世界时)是国际时间标准,通常与GMT相同,但在某些情况下,UTC可能会有闰秒的调整。
grep
限定查询结果之后的前几行 grep -m 10 <pattern> <file>
限定查询结果倒数的几行 grep <pattern> <file> | tail -10
日期
判断 day of year
doy=$(date +%j)
制定日期减一天
date -d"20140101 -1 days" +"%Y%m%d"
当前时间戳(秒)
1
date +%s
剪切板
将剪切板中的内容输出到文件 echo $(xsel –clipboard) >> a.txt
将文件的内容复制到剪切板 cat a.txt | xsel –clipboard
securtCRT
1 | 下载服务器文件 sz filename |
tr命令
tr – translate or delete characters
- 大小写转换
1
2cat file | tr A-Z a-z
cat file | tr a-z A-Z
top
“1”
查看所有CPU核的使用情况
“c”
查看具体进程的路径
1 | l- 开启或关闭第一部分第一行top信息显示 |
进程CPU占用率
top显示某个进程占用cpu达到100%,则表明该进程正在使用所有可用的 CPU 资源。这通常是因为该进程执行的任务非常耗费 CPU 资源,或者该进程存在某些问题导致 CPU 使用率异常高。
在 Linux 系统中,每个进程都只能在单个 CPU 核心上运行。但是,系统可以通过调度程序(scheduler)在多个 CPU 核心之间轮换运行进程,从而达到让多个进程同时执行的效果。
1
2
3
4
5
6
7
8
9### cpu
us:用户态使用的cpu时间比
sy:系统态使用的cpu时间比
ni:用做nice加权的进程分配的用户态cpu时间比
id:空闲的cpu时间比
wa:cpu等待磁盘写入完成时间
hi:硬中断消耗时间
si:软中断消耗时间
st:虚拟机偷取时间
查看指定服务的运行情况
journalctl -u xxx.service
journalctl ex
资源占用
1 | ps -aux | grep 服务名称或pid |
system
process
Tree view all process
1
pstree -g
查看系统配置
查看系统
cat /etc/os-release
查看内核
cat /proc/version
uname -a
查看linux版本
lsb_release -a
cat /etc/issue
总核数 = 物理CPU个数 X 每颗物理CPU的核数
总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数
查看物理CPU个数
- top命令,然后输入数字1查看,各项参数如下
us
:用户空间占用 CPU 的百分比。sy
:内核空间占用 CPU 的百分比。ni
:调整过优先级的进程占用 CPU 的百分比。id
:空闲 CPU 的百分比。wa
:等待 I/O 的 CPU 时间的百分比。hi
:硬中断(hardware interrupt)占用 CPU 的时间的百分比。si
:软中断(software interrupt)占用 CPU 的时间的百分比。st
:虚拟机或者运行在它上面的虚拟 CPU 占用 CPU 的时间的百分比。
- 输入mpstat查看
- 输入以下命令
1
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
- top命令,然后输入数字1查看,各项参数如下
查看每个物理CPU中core的个数(即核数)
1
cat /proc/cpuinfo| grep "cpu cores"| uniq
查看逻辑CPU的总数
1
cat /proc/cpuinfo| grep "processor"| wc -l
清理内存
1 | sync; echo 1 > /proc/sys/vm/drop_caches |