常用Linux命令汇总
1. grep查找含有指定字符串的所有文件
- 在当前目录下的多级目录中对文本进行递归搜索: 查找"text"字符串,可以这样:
grep -rn text *
或 查找指定目录/etc/acpi 及其子目录(如果存在子目录的话)下所有文件中包含字符串"update"的文件,并打印出该字符串所在行的内容,使用的命令为:
grep -r update /etc/acpi
- : 表示当前目录所有文件,也可以是某个文件名
-r 是递归查找
-n 是显示行号
-R 查找所有文件包含子目录
-i 忽略大小写
- 在多个文件中查找:
grep "match_pattern" file_1 file_2 file_3 ...
- 搜索多个文件并查找匹配文本在哪些文件中:
grep -l "text" file1 file2 file3...
2. find查找
1. 查找文件名
在/home目录下查找以.txt结尾的文件名
find /home -name "*.txt"
2.查看近期修改文件
- 查看home目录下,30分钟内修改的txt文件,并列出
find /home -name "*.txt" -mmin - 30 -ls
- 查看根目录下,1天内修改的文件,并列出
find / -ctime -1 -ls
3. 查看磁盘大小
- 查看指定目录下文件所占的空间:
du ./*
144 ./alfred.png
452 ./chrome-extensions.gif
4 ./dash-icon.png
1312 ./Linux.gif
16 ./qr.png
- 只显示总和的大小:
du -s .
1932 .
- 直观显示总和的大小
du -sh .
1.9M .
- 查看硬盘大小
fdisk –l
如下所示:硬盘大小为100G

4.查看CPU使用率
top
5. gcc编译
-
gcc -Wall file.c
-W,在编译中开启一些额外的警告(warning)信息。-Wall,将所有的警告信息全开。 -
gcc -c file.c
仅执行编译操作,不进行连接操作. -
gcc file.c -o file
指定生成的输出文件. -
gcc -S file.c
将c文件转换为汇编文件。生成(file.s) -
gcc -O1 test.c -o test
使用编译优化级别1编译程序。级别为1~3,级别越大优化效果越好,但编译时间越长且有风险会产生Bug,一般不用超过3。 -
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
- 比如把磁盘挂载到/data下面
mkdir /data # 如果存在此步省略
mount /dev/sdb /data
- 比如挂载到/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
更多推荐



所有评论(0)