hosts file
- 编辑
/etc/hosts
- flush DNS cache:
systemctl restart systemd-resolved
linux 开机运行 shell 脚本
方式一、将脚本添加到 /etc/rc.local 文件中
只适用于使用 SysVinit 或 Systemd 的 Linux 系统。
当 Linux 开机时,/etc/rc.local
文件中的命令将被自动执行
- 将脚本设置为可执行文件:
chmod +x /usr/local/bin/myscript.sh
- 编辑
/etc/rc.local
文件,追加行如:/usr/local/bin/myscript.sh &
并保存。这里的&
符号表示在后台运行该脚本。
方式二、将脚本添加到 systemd 启动项中
适用于大多数现代 Linux 发行版,但是一些较老的发行版可能不支持 systemd。此时可以尝试使用 SysVinit 或其他类似的启动项管理器。
-
创建 systemd 服务文件:
sudo nano /etc/systemd/system/myscript.service
-
在文件中添加以下内容并保存:
[Unit] Description=My Script Service After=network.target [Service] Type=simple ExecStart=/usr/local/bin/myscript.sh Restart=on-failure [Install] WantedBy=multi-user.target
注意:这里的
ExecStart
行指定了要运行的脚本的路径。 -
启用该服务:
bashsudo systemctl enable myscript.servicesudo systemctl start myscript.service
date
可以使用 date
命令来获取当前日期和时间
bash
#!/bin/bash# 获取当前日期时间并存储在变量中datetime=$(date '+%Y-%m-%d %H:%M:%S')
在此示例中,date
命令使用格式字符串 '+%Y-%m-%d %H:%M:%S'
来获取当前日期和时间,该格式字符串将日期和时间格式化为 YYYY-MM-DD HH:MM:SS
的形式。
常用 linux 命令
cp 命令
用法 | 效果 |
---|---|
cp ./source ./dest | 将 source 目录复制到 dest 目录下,创建名为 source 的子目录。 |
cp ./source* ./dest | 将 source 目录下的所有文件和子目录复制到 dest 目录下,不会创建名为 source 的子目录。 |
磁盘空间
使用 du 命令来查看某个文件夹占用的磁盘空间大小,常用的 du 命令选项:
- -h:以人类可读的格式显示磁盘空间大小。
- -s:仅显示总计大小,不显示子目录的大小。
- -c:同时显示所有目录的总计大小。 例如:
- du -h myfolder 查看当前目录下的 myfolder 文件夹占用的磁盘空间大小
- du -h -c myfolder 查看 myfolder 文件夹及其子目录的总计大小
按占用存储空间的大小降序排序
du 命令默认按照文件夹名称的字母顺序对结果进行排序。可以使用 -h 和 -s 选项配合 sort 命令来实现按占用存储空间的大小降序排序:du -sh * | sort -hr
:
- -s 选项表示只显示每个目录的总大小。
- sort:排序命令;
- -h:按照“人类可读”的方式进行排序。即将数字单位转换为更大的单位(例如:1K 转换为 1024),再进行排序;
- -r:倒序排序。
程序输出追加到文件的新行
使用 >>
如 ls >> example.txt
。如果文件不存在,则将创建一个新文件。如果文件已经存在,则输出将被追加到文件的末尾。
tree 命令打印目录结构
bash
tree -L 2 -d -I node_modules .
后台运行脚本
nohup ./test > myout.txt 2>&1 &
使用了nohup命令,也使用了&符号,同时把标准输出/错误重定向到指定目录下。
使用了nohup之后,有可能在当前账户非正常退出或者结束的时候,命令还是自己结束了。所以在需要使用exit正常退出当前账户,才能保证命令一直在后台运行。