Linux常用命令

文章目录

  • 1. 查找字符串
  • 2. 替换字符串
  • 3. 查看当前文件夹中各文件的大小
  • 4. 设置定时任务

1. 查找字符串

在指定文件夹的文件中查找字符串,并输出所在文件以及行数:
可以使用 grep 命令在指定文件夹的文件中查找字符串,并输出匹配的文件名和行号。下面是一个例子:

grep -rwn /path/to/folder -e "search_string"

解释:

  • -r 表示递归地查找子文件夹。
  • -w 表示只匹配整个单词,避免部分匹配。
  • -n 表示输出匹配行的行号。
  • /path/to/folder 是你要查找的指定文件夹的路径。
  • "search_string" 是你要查找的字符串。

例如,如果你要在 /home/user/documents 文件夹中查找字符串 “example”,可以运行以下命令:

grep -rwn /home/user/documents -e "example"

这样,grep 将在指定文件夹中查找所有包含 “example” 的文件,并输出匹配的文件名和行号。

2. 替换字符串

在指定文件夹的文件中替换字符串:
你可以使用 sed 命令来在指定文件夹的文件中替换字符串。sed 是一个流编辑器,它可以用来进行文本替换和编辑。

以下是一个例子:

sed -i 's/old_string/new_string/g' /path/to/folder/*

解释:

  • -i 表示直接在原始文件中进行替换。如果你想在替换前备份原始文件,可以使用 -i.bak,这样原始文件会被备份为 filename.bak
  • 's/old_string/new_string/g'sed 的替换表达式,其中 old_string 是要被替换的字符串,new_string 是要替换成的新字符串,g 表示全局替换,即一行中所有匹配的地方都会被替换。
  • /path/to/folder/* 是指定文件夹中所有文件的通配符,* 表示匹配所有文件。

请注意,在使用 -i 参数时,请确保在替换之前备份重要的文件,以免意外的数据损失。

例如,如果你要将 /home/user/documents 文件夹中所有文件中的 “old_string” 替换为 “new_string”,可以运行以下命令:

sed -i 's/old_string/new_string/g' /home/user/documents/*

这样,sed 将在指定文件夹中的所有文件中进行字符串替换。

3. 查看当前文件夹中各文件的大小

使用 du 命令来查看当前文件夹中每个文件和子文件夹的大小:

du -h

这将以适合阅读的格式显示当前文件夹中每个文件和子文件夹的大小。

如果你只想查看某个特定的文件大小,可以在命令后面加上文件名,如下所示:

du -h filename

如果你只想查当前文件夹中所有文件和子文件夹的总大小:

du -sh 

这样,du 命令将只显示指定文件的大小。

4. 设置定时任务

一个linux系统在每天的上午9点半到晚上8点每隔半小时拷贝文件夹到另一个文件夹,其余时间不拷贝的脚本:

#!/bin/bash

# 源文件夹路径
SOURCE_DIR="/path/to/source_folder"

# 目标文件夹路径
TARGET_DIR="/path/to/target_folder"

# 拷贝操作
rsync -av "$SOURCE_DIR/" "$TARGET_DIR/"
echo "Copied files at $(date)" >> /path/to/logfile.log

将上面的代码保存为一个脚本文件,比如 copy_files.sh。然后,你可以通过添加定时任务来实现在每天上午9点半到晚上8点之间每隔半小时执行脚本。

打开终端并输入以下命令来编辑 cron 表:

crontab -e

然后在打开的编辑器中添加以下行,用于设置每隔半小时执行脚本:

*/30 9-20 * * * /bin/bash /path/to/copy_files.sh

上述命令表示在每天上午9点半到晚上8点之间的每隔半小时执行一次脚本 copy_files.sh

请确保将 /path/to/source_folder/path/to/target_folder 替换为你实际的源文件夹和目标文件夹路径,并将 /path/to/logfile.log 替换为记录日志的文件路径。

要每个月删除一次log文件,你可以使用 cron 定时任务来定期执行删除操作。首先,打开终端并输入以下命令来编辑 cron 定时任务:

crontab -e

在打开的编辑器中,添加以下行来设置每月删除 log 文件的定时任务:

0 0 1 * * rm /path/to/log/files/*.log

解释:

  • 0 0 1 * * 表示定时任务在每个月的第一天(即1号)的午夜零点(00:00)执行。
  • rm /path/to/log/files/*.log 是实际的删除命令,它将删除指定目录下所有的以 .log 结尾的 log 文件。

请确保将 /path/to/log/files/ 替换为实际的 log 文件所在的路径。

保存并退出编辑器。现在,cron 将每个月的第一天(1号)的午夜零点自动执行删除 log 文件的操作。

你可能感兴趣的:(Linux,数字IC设计,linux)