1. grep查找含有指定字符串的所有文件

  1. 在当前目录下的多级目录中对文本进行递归搜索: 查找"text"字符串,可以这样:
grep -rn text *

或 查找指定目录/etc/acpi 及其子目录(如果存在子目录的话)下所有文件中包含字符串"update"的文件,并打印出该字符串所在行的内容,使用的命令为:

grep -r update /etc/acpi 
  • : 表示当前目录所有文件,也可以是某个文件名
    -r 是递归查找
    -n 是显示行号
    -R 查找所有文件包含子目录
    -i 忽略大小写
  1. 在多个文件中查找:
grep "match_pattern" file_1 file_2 file_3 ...
  1. 搜索多个文件并查找匹配文本在哪些文件中:
grep -l "text" file1 file2 file3...

2. find查找

1. 查找文件名

在/home目录下查找以.txt结尾的文件名

find /home -name "*.txt"

2.查看近期修改文件

  1. 查看home目录下,30分钟内修改的txt文件,并列出
find /home -name "*.txt" -mmin - 30 -ls
  1. 查看根目录下,1天内修改的文件,并列出
find / -ctime -1 -ls

3. 查看磁盘大小

  1. 查看指定目录下文件所占的空间:
 du ./*
 
144     ./alfred.png
452     ./chrome-extensions.gif
4       ./dash-icon.png
1312    ./Linux.gif
16      ./qr.png
  1. 只显示总和的大小:
du -s .

1932    .
  1. 直观显示总和的大小
du -sh .
1.9M    .
  1. 查看硬盘大小
fdisk –l

如下所示:硬盘大小为100G
在这里插入图片描述

4.查看CPU使用率

top

5. gcc编译

  1. gcc -Wall file.c
    -W,在编译中开启一些额外的警告(warning)信息。-Wall,将所有的警告信息全开。

  2. gcc -c file.c
    仅执行编译操作,不进行连接操作.

  3. gcc file.c -o file
    指定生成的输出文件.

  4. gcc -S file.c
    将c文件转换为汇编文件。生成(file.s)

  5. gcc -O1 test.c -o test
    使用编译优化级别1编译程序。级别为1~3,级别越大优化效果越好,但编译时间越长且有风险会产生Bug,一般不用超过3。

  6. gcc testfun.c test.c -o test
    多个文件一起编译。

6.查看所有用户

cat /etc/passwd

在这里插入图片描述
从左到右依次为(用冒号分隔):
登录用户名
经过加密的口令或者口令占位符
UID(用户ID)
默认的GID(组ID)
GECOS信息:全名,办公室,手机号,座机号,其它
主目录
登录的shell

7. U盘挂载

1.查看当前未挂载的磁盘

fdisk -l   

在这里插入图片描述

2.挂载磁盘

注意:一般U盘的设备文件为sda, 或者为sdb

  1. 比如把磁盘挂载到/data下面
mkdir /data # 如果存在此步省略
mount /dev/sdb /data
  1. 比如挂载到/mnt下面
mount /dev/sdb /mnt

3.开机自动挂载磁盘

以上只是临时挂载,还需设置为开机自动挂载

vim /etc/fstab

然后在内容结尾处增加一行(注意文件类型要对应):

/dev/sdb    /data    ext4    defaults    0 0

4.卸载磁盘

umount /dev/sda

8.查看磁盘使用情况

df -h

查看当前磁盘使用情况,必须是已经mount的磁盘,否则看不到

9.which 查看系统命令路径

which pwd

查找文件、显示命令路径。

20、time命令
该命令用于测算一个命令(即程序)的执行时间。它的使用非常简单,就像平时输入命令一样,不过在命令的前面加入一个time即可,例如:

time ./test
time ps aux

10.查看文件大小信息

stat file.txt

在这里插入图片描述
相关信息如下;

  • File:显示文件名
  • Size:显示文件大小
  • Blocks:文件使用的数据块总数
  • IO Block:IO块大小
  • regular file:文件类型(常规文件)
  • Device:设备编号
  • Inode:Inode号
  • Links:链接数
  • Access:文件的权限
  • Gid、Uid:文件所有权的Gid和Uid。

11.查看进程名对应的进程信息

例如:查看progress对应的进程信息

ps -aux | grep progress

在这里插入图片描述

12.防火墙操作命令

1:查看防火状态

systemctl status firewalld
service  iptables status

2:暂时关闭防火墙

systemctl stop firewalld
service  iptables stop

3:永久关闭防火墙

systemctl disable firewalld
chkconfig iptables off

4:重启防火墙

systemctl enable firewalld
service iptables restart  

5:永久关闭后重启

chkconfig iptables on

13 文件编码转换命令

使用iconv 转换

Iconv语法:iconv -f encoding -t encoding inputfile

例如:单个文件转换:

$ iconv -f GBK -t UTF-8 file1 -o file2

例如:批量转换:

$ find default -type d -exec mkdir -p utf/{} \;
$ find default -type f -exec iconv -f GBK -t UTF-8 {} -o utf/{} \;

这两行命令将default目录下的文件由GBK编码转换为UTF-8编码,目录结构不变,转码后的文件保存在utf/default目录下。

14 查看文件依赖命令

这个命令是用来查看文件依赖的,如果缺少库,可以用他来看:

ldd [option] [parms] 参数:
–version:显示版本
-v:显示详细信息
-u:显示未应用用直接依赖
-d:执行重定位并显示不存在的依赖
-r:执行数据对象和函数的重定位,并显示不存在的依赖

执行一下:

machine:~/dlltest$ ldd dtest
linux-vdso.so.1 (0x00007ffdb39f7000)
libdisplay.so => not found
libcompare.so => not found
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fea0eb7d000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fea0e7df000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fea0e5c7000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fea0e1d6000)
/lib64/ld-linux-x86-64.so.2 (0x00007fea0ef0b000)

不过ldd命令无法识别通过动态加载的动态库,最重要的是,这个命令可能会引起安全问题,因为一些版本的ldd可能会尝试执行程序来获得依赖信息,这就给病毒木马提供了机会,所以可以使用以下的两个命令来替换:

machine:~/dlltest$ objdump -p dtest|grep NEEDED NEEDED
libdisplay.so NEEDED libcompare.so NEEDED
libstdc++.so.6 NEEDED libm.so.6 NEEDED
libgcc_s.so.1 NEEDED libc.so.6
machine:~/dlltest$ readelf -d dtest|grep NEEDED 0x0000000000000001 (NEEDED) 共享库:[libdisplay.so]
0x0000000000000001 (NEEDED) 共享库:[libcompare.so]
0x0000000000000001 (NEEDED) 共享库:[libstdc++.so.6]
0x0000000000000001 (NEEDED) 共享库:[libm.so.6]
0x0000000000000001 (NEEDED) 共享库:[libgcc_s.so.1]
0x0000000000000001 (NEEDED) 共享库:[libc.so.6]

objdump
这个命令非常强大,强大到可以在WIN和LINUX上同时使用。它不但支持ELF,更是支持几十种其它格式的文件,提供了大量的针对二进制文件的分析信息。
其下命令最后都要跟目标文件地址和名称。
objdump -f:获得头信息
objdump -h:列出所有节
objdump -t(T) :列出所有符号(动态符号)
objdump -p:列查看动态节
objdump -R:查看重定位
objdump -s -j(节名称):查看节的数据
objdump -d -M intel:以intel方式查看汇编,前提是编译期提供了-g选项。

前边讲过这个,不再举例

readelf
这个命令只能看ELF文件。主要的用法有以下几个:
其下命令最后都要跟目标文件地址和名称。
readelf -h :用于获取目标头文件信息,比如上面的头就是用这个命令得到的。
readelf -S:是大写的S,是获得节的信息
readelf --symbols:用于得到文件内的符号。注意这里是两个-
readelf --dyn-syms:列出动态符号
readelf -d:只看动态节信息
readelf -r:查看重定位信息
readelf -x:查看指定节的信息
其它更多的可以用man命令或者查找相关资料。看一下执行查看指定节的命令。

15 查看内存

ps -aux | grep kafka 

16 查看端口占用

netstat  -anp  |grep  端口号

17 tar

#压缩
tar -czvf ***.tar.gz  file
tar -cjvf ***.tar.bz2  file
#解压缩
tar -xzvf ***.tar.gz
tar -xjvf ***.tar.bz2

18 docker

docker ps                           # 查看正在运行的容器
docker ps -a                        # 查看所有容器,包括已运行和未运行的
docker logs name_or_id              # 查看容器日志
docker restart name_or_id           # 重启容器
docker stop name_or_id              # 停止容器
docker start name_or_id             # 启动容器
docker rm name_or_id -f             # 强制删除容器
sudo docker run --name ppocr_cpu -v $PWD:/paddle --network=host -it registry.baidubce.com/paddlepaddle/paddle:2.2.0rc0 /bin/bash
docker run --name ppocr_cpu -v $PWD:/paddle --network=host -it registry.baidubce.com/paddlepaddle/paddle:latest-dev /bin/bash
sudo nvidia-docker run --name ppocr -v $PWD:/paddle --shm-size=32G --runtime=nvidia -e NVIDIA_VISIBLE_DEVICES=2 --network=host -it hub.baidubce.com/paddlepaddle/paddle:latest-dev-cuda10.1-cudnn7-gcc82 /bin/bash
sudo nvidia-docker run --name ppocr -v $PWD:/paddle --network=host -it hub.baidubce.com/paddlepaddle/paddle:latest-gpu-cuda10.0-cudnn7-dev /bin/bash
docker pull paddlepaddle/paddle:2.0.1-gpu-cuda10.0-cudnn7
# ctrl+P+Q可退出docker 容器,重新进入docker 容器使用如下命令
sudo docker container exec -it ppocr /bin/bash
sudo docker container exec -it ppocr_cpu /bin/bash
#容器操作
docker stop id
docker rm id
python3 -m pip3 install paddlepaddle-gpu==2.0.1.post101 -f https://paddlepaddle.org.cn/whl/mkl/stable.html
# 或,安装检测+识别串联服务模块:  
hub install deploy/hubserving/ocr_system/
hub uninstall ocr_system
export CUDA_VISIBLE_DEVICES=0
hub serving start -c deploy/hubserving/ocr_system/config.json
#后台启动
export CUDA_VISIBLE_DEVICES=0
nohup hub serving start -c deploy/hubserving/ocr_system/config.json >/dev/null 2>&1&
#结束进程
hub serving stop -c deploy/hubserving/ocr_system/config.json -p 8868
#虚假api启动
nohup /home/apprun/anaconda3/bin/python app.py >/dev/null 2>&1&
#运行容器
docker run -di --name docker_nginx -d -p 8867:80  -v /home/admin/jk/nginx/log:/var/log/nginx  -v /home/admin/jk/nginx/conf:/etc/nginx/conf.d  -v /home/admin/jk/nginx/nginx.conf:/etc/nginx/nginx/conf nginx
# 重启docker中nginx
docker exec -it docker_nginx nginx -s reload
# 验证nginx的配置
docker exec -it docker_nginx nginx -t

批量杀死python进程

 kill -9 `ps ux | grep -i "\bpython" | awk '{print $2}'`
 kill -9 `ps ux | grep -i "\bwine64" | awk '{print $2}'`
ps -elf |grep minging |awk '{print $4}'|xargs kill -9
grep: warning: GREP_OPTIONS is deprecated; please use an alias or script
 docker run -it -d -p 4869:4869 -v /data/zimg/:/zimg/bin/img --name my_zimg iknow0612/zimg sh app.sh
python -m paddle_serving_client.convert --dirname ./pre_cls_inference/ \
                                         --model_filename inference.pdmodel          \
                                         --params_filename inference.pdiparams       \
                                         --serving_server ./ppocr_pre_cls_serving/  \
                                         --serving_client ./ppocr_pre_cls_client/
										 
python -m paddle_serving_client.convert --dirname ./ch_ppocr_server_v2.0_det_infer/ \
                                         --model_filename inference.pdmodel          \
                                         --params_filename inference.pdiparams       \
                                         --serving_server ./ppocr_det_server_2.0_serving/ \
                                         --serving_client ./ppocr_det_server_2.0_client
										 
python -m paddle_serving_client.convert --dirname ./ch_ppocr_server_v2.0_rec_infer/ \
                                         --model_filename inference.pdmodel          \
                                         --params_filename inference.pdiparams       \
                                         --serving_server ./ppocr_rec_server_2.0_serving/ \
                                         --serving_client ./ppocr_rec_server_2.0_client
										 
python -m paddle_serving_client.convert --dirname ./ch_ppocr_mobile_v2.0_cls_infer/ \
                                         --model_filename inference.pdmodel          \
                                         --params_filename inference.pdiparams       \
                                         --serving_server ./ppocr_cls_mobile_2.0_serving/ \
                                         --serving_client ./ppocr_cls_mobile_2.0_client
nohup gunicorn -c gunicorn.py wsgi:app >/dev/null 2>&1&

watch -n 3 -d nvidia-smi

导入导出

镜像导出

docker save -o dockerdemo.tar  dockerdemo:latest

镜像导入

docker load -i dockerdemo.tar

容器导出

docker export -o D:\containers\dockerdemocontainer.tar dockerdemo

容器导入

docker import dockerdemocontainer.tar dockerdemo:imp

图片服务器

sudo docker load --input zimg.tar
sudo docker run -it -d -p 4869:4869 -v /apprun/app/zimg/images/:/zimg/bin/img --name my_zimg iknow0612/zimg sh app.sh
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐