linux 拾遗
linux

linux 拾遗

测试摘要

更新于 2024-01-18
1857

hosts file

  1. 编辑 /etc/hosts
  2. flush DNS cache: systemctl restart systemd-resolved

linux 开机运行 shell 脚本

方式一、将脚本添加到 /etc/rc.local 文件中

只适用于使用 SysVinit 或 Systemd 的 Linux 系统。

当 Linux 开机时,/etc/rc.local 文件中的命令将被自动执行

  1. 将脚本设置为可执行文件:chmod +x /usr/local/bin/myscript.sh
  2. 编辑 /etc/rc.local 文件,追加行如:/usr/local/bin/myscript.sh & 并保存。这里的 & 符号表示在后台运行该脚本。

方式二、将脚本添加到 systemd 启动项中

适用于大多数现代 Linux 发行版,但是一些较老的发行版可能不支持 systemd。此时可以尝试使用 SysVinit 或其他类似的启动项管理器。

  1. 创建 systemd 服务文件:sudo nano /etc/systemd/system/myscript.service

  2. 在文件中添加以下内容并保存:

    [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 行指定了要运行的脚本的路径。

  3. 启用该服务:

    bash
    sudo systemctl enable myscript.service
    sudo 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正常退出当前账户,才能保证命令一直在后台运行。