美的实习遇到的问题

目录

1.shell脚本问题

10.08

10.09


1.shell脚本问题

10.08

   问题1    -f "$file"

  • [ -f "$file" ]:如果变量 $file 引用的文件存在并且是一个普通文件,则返回 true
  • [ ! -f "$file" ]:如果变量 $file 引用的文件不存在或者不是一个普通文件,则返回 true

3.    basename "$file_path" 提取了 report.txt。
       basename "$file_path" .txt 提取了不带 .txt 后缀的文件名。

10.09

rm -rf /path/to/folder/*        删除目录下所有内容

删除一个目录下所有包含 "hash_frame" 的文件夹 :

find /sdb/dengsj/home/yolov7/yolov7-sc/sc_hash_frame_zip -type d -name "*hash_frame*" -exec rm -rf {} +
  • find:这是 Linux 系统中用于查找文件的命令。

  • /sdb/dengsj/home/yolov7/yolov7-sc/sc_hash_frame_zip:这是查找操作的起始目录。

  • -type d:这个选项告诉 find 命令只查找目录(文件夹)。

  • -type f:查找普通文件(不包括目录)。
  • -type d:查找目录。
  • -name "*hash_frame*":这个选项指定了查找文件的名称模式。*hash_frame* 表示查找所有文件名中包含 "hash_frame" 的文件或目录。

  • -exec:这个选项允许对 find 命令找到的每个文件执行指定的命令。

  • rm -rf {} +:这是 -exec 选项指定的命令。rm 是删除文件的命令,-r 表示递归删除(用于目录),-f 表示强制删除(不提示确认)。大括号 {} 是一个占位符,代表 find 命令找到的每个文件的名称。加号 + 表示 find 命令会将所有找到的文件名作为参数一次性传递给 rm 命令。

find   /sdb/dengsj/home/yolov7/yolov7-sc/sc_hash_frame_zip  -type  d  -name "*hash_frame*"      这将列出所有匹配的文件夹

find /sdb/dengsj/home/yolov7/yolov7-sc/sc_hash_frame_zip -type f -name "*hash_frame*" -exec rm {} +         删除文件含有hash_frame字符的所有文件

指令 du

指令 du -ah /sdb/dengsj/home/yolov7/yolov7-sc/sc | sort -rh

  1. du -ah /sdb/dengsj/home/yolov7/yolov7-sc/sc

    • du:磁盘使用情况的命令。
    • -a--all:显示所有文件和目录的大小。
    • -h--human-readable:以易读的格式显示文件大小(例如 KB、MB、GB)。
    • /sdb/dengsj/home/yolov7/yolov7-sc/sc:指定要检查的目录路径。

    这个命令会列出 /sdb/dengsj/home/yolov7/yolov7-sc/sc 目录下所有文件和子目录的大小。

  2.  |

    • 管道符号,将前一个命令的输出作为后一个命令的输入。
  3. sort -rh

    • sort:排序命令。
    • -r--reverse:反向排序,从大到小。
    • -h--human-numeric-sort:按照人类可读的数字大小排序。

组合后的命令会输出 /sdb/dengsj/home/yolov7/yolov7-sc/sc 目录下所有文件和子目录的大小,并按照大小从大到小排序。

find及其zip指令使用

# 使用find命令查找所有包含'hash_frame'的文件夹
FOLDERS=$(find "$DIR_PATH" -type d -name "*hash_frame*")

# 遍历文件夹路径
for FOLDER in $FOLDERS
do
    # 定义压缩文件的完整路径
    ZIP_FILE="${FOLDER}.zip"

    # 检查文件夹是否存在
    if [ -d "$FOLDER" ]; then
        # 压缩文件夹
        echo "Compressing $FOLDER into $ZIP_FILE..."
        zip -r "$ZIP_FILE" "$FOLDER"
        echo "Compression complete."
    else
        # 文件夹不存在时打印错误信息
        echo "Error: Folder $FOLDER does not exist."
    fi
done

find  ${remote_dir}  -type  f  \(  -name  '*.zip'  -o  -name  '*.7z'  \)中的  转义字符知识:

在命令行和脚本中,转义(escaping)是一种机制,用于告诉解释器(如shell)将随后的字符解释为字面意义,而不是它的特殊含义。

在Unix和Linux的shell中,某些字符具有特殊的意义,比如:

  • *:匹配任意数量的字符。
  • ?:匹配任意单个字符。
  • $:表示变量。
  • `:引用命令的输出。
  • ():用于命令的分组。

当你需要使用这些特殊字符的字面意义时,就需要使用反斜杠 \ 来转义它们,这样shell就不会把它们解释为特殊字符,而是按照原样处理。

unzip

unzip -l filename.zip 

unzip 命令是一个用于解压缩 .zip 格式压缩文件的实用工具。以下是一些常用的 unzip 命令选项:

  • -l:列出压缩文件中的文件列表,但不解     
  • -d <directory>:将解压缩的文件放入指定的

screen

screen -ls   查看会话列表

Ctrl + a + d然后按 d 来分离会话

screen -r 1234.mysession 连接会话列表

screen  -d    mingzi  远程detach会话

10.10

问题一  :ll 指令 

你可以指定一个路径,它会列出该路径下的目录内容。

常见选项

  • -l:长格式列表,显示文件的详细信息。
  • -a:所有文件,显示所有文件,包括以点(.)开头的隐藏文件。
  • -h:人性化的文件大小,显示易于阅读的文件大小(例如,KB、MB、GB)。
  • -t:按修改时间排序,显示文件列表时,按照修改时间排序。
  • -r-R:反向或递归,-r 表示反向排序,-R 表示递归列出所有子目录的内容

问题二 列表推导表达式

images = [f for f in os.listdir(image_directory) if os.path.isfile(os.path.join(image_directory, f))]  

a = [1, 2, 3, 'a', 'b', 'c']  
# 定义一个空列表b,用于存放满足条件的元素  
b = []  
# 遍历列表a中的每一个元素  
for i in a: 
    if isinstance(i, int):  
        # 将当前整数元素i进行平方操作  
        b.append(i ** 2) 
print(b)

os.listdir()

列举一个目录下所有文件或者文件夹的名字

10.12

os.path.splitext()

os.path.splitext(f)[1].lower()从后分割路径  

dest_file01 = os.path.splitext(sour_file)[0]  # 得到   map
dest_file02 = os.path.splitext(sour_file)[1]  # 得到  .osm

如上,可以通过[0]或[1]获得需要位置上的数据。
dest_file01 为 map
dest_file02 为 .osm
并且还可以进行拼接,如下所示:

dest_file03 = os.path.splitext(sour_file)[0] + '_output.txt'

写入txt文件

 # 写入文件名到文本文件
    with open(output_file, 'w') as file:
        for image_file in image_files:
            file.write(image_file + '\n')

shutil.move 函数非常灵活,可以根据 source_pathtarget_path 的不同设置,实现不同的文件移动(source给的是目录参数,则为文件移动)和重命名(target给的是文件名字为重命名)操作。

10.21  lsof -i

lsof -i  查看端口占用情况

10.23

ps 指令

ps aux | grep xxx (功能描述:查看系统中所有进程)

PID:进程的 ID 号

%CPU:该进程占用 CPU 资源的百分比,占用越高,进程越耗费资源;

%MEM:该进程占用物理内存的百分比,占用越高,进程越耗费资源;

VSZ:该进程占用虚拟内存的大小,单位 KB;

RSS:该进程占用实际物理内存的大小,单位 KB;

TTY:该进程是在哪个终端中运行的。对于 CentOS 来说,tty1 是图形化终端,

tty2-tty6 是本地的字符界面终端。

pts/0-255 代表虚拟终端。

STAT:进程状态。常见的状态有:R:运行状态、S:睡眠状态、T:暂停状态、Z:僵尸状态、s:包含子进程、l:多线程、+:前台显示START:该进程的启动时间

ps -ef | grep xxx (功能描述:可以查看子父进程之间的关系)

UID:用户 ID

PID:进程 ID

PPID:父进程 ID

C:CPU 用于计算执行优先级的因子。数值越大,表明进程是CPU 密集型运算,执行优先级会降低;数值越小,表明进程是 I/O 密集型运算,执行优先级会提高

STIME:进程启动的时间

TTY:完整的终端名称 TIME:CPU 时间 CMD:启动进程所用的命令和参数

10.25 np.any    readline   strip   grep   挂载指令

     np.any 是 NumPy 库中的一个函数,它用来检查数组中是否有任何元素满足指定的条件。如果数组中至少有一个元素为 True(或者满足其他指定的条件),那么 np.any 函数返回 True;如果数组中所有元素都不满足条件,则返回 False

line.strip().split(' ')[0]

  1. line.strip():去除 line 字符串两端的空白字符(包括空格、换行符等)。

  2. split(' '):将去除空白字符后的字符串按照空格分割成多个部分,这将返回一个字符串列表。[0]:从列表中获取第一个元素,即类别ID。

  3. line.strip():去除 line 字符串两端的空白字符(包括空格、换行符等)。

  4. split(' '):将去除空白字符后的字符串按照空格分割成多个部分,这将返回一个字符串列表。

  5. [0]:从列表中获取第一个元素,即类别ID。

         files.readlines()    strip()

挂载指令 sudo mount -t vboxsf gongxiang /home/songchao/xiazai 挂在指令

grep 指令

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值