常用的unix命令的积累

目录

常用命令:

添加权限

查看系统相关的命令

ls相关命令

服务器文件交互

压缩、解压

Ubuntu修改文件所有者

Ubuntu进入和退出root用户以及切换用户

linux系统下切换python

查找文件

查看进程、端口

下载

查看内存

ubuntu “Argument list too long”解决方法

Linux中批量杀进程的方法

命令clear报错

pip install -r requirements.txt


常用命令

vim    //编辑文件
cat    //查看文件且不编辑
cp -r  //复制文件夹,源文件绝对地址 目标目录  
       // -r 若 source 中含有目录,则将目录下之档案亦皆依序拷贝至目的地。
mv source dest   //剪切命令:命令格式: 
rm -rf 文件名  
mkdir 文件名     //新建文件

pwd         //显示当前目录
nvidia-smi  //查看gpu信息
history       //显示输入命令的历史
df -l 或 df -h  //linux查看系统盘,df -h:显示以G为单位
free -h      //linux查看系统内存,以G为单位
 
nohup 执行的命令 &  //将进程挂在服务器上运行:
kill -9 id //kill掉进程:


pip freeze > requirements.txt  //将当前环境所有库 写入requirements.txt

tail -f -n 10 log/sg_ai_framework.log

添加权限

chmod +x a.sh  //转为可执行文件

 

 文件属性字段总共有10个字母组成,

第一个字母表示文件类型:

减号"-",是一个普通文件.

字母"d"是dirtectory(目录)的缩写;

字母是"l",是一个符号链接.符号链接的概念类似于windows里的快捷方式.字母"l"是link(链接)的缩写.在UNIX类系统中,一个文件可以有多个文件名,一个文件的多个文件名之间互称为硬链接(hard link).这些文件头可以指向同一个文件,删除其中一个文件名并不能删除该文件,只有把指向该文件的所有硬链接都删除,这个文件所占用的空间才真正被释放,该文件才真正被删除.;

b的表示块设备文件(block),设备文件是普通文件和程序访问硬件设备的入口.;

第一个字母为c表示该文件是一个字符设备文件(character),一次传输一个字节的设备被称为字符设备,比如键盘,字符终端等,传输数据的最小单位为一个字节.一次传输数据为一整块的被称为块设备,比如硬盘,光盘等.最小数据传输单位为一个数据块(通常一个数据块的大小是512字节).

第一字段的后面9个字母表示文件的权限. 
r表是读 (Read) 
w表示写 (Write) 
x表示执行 (eXecute)

其中前三个表示文件属主的权限,中间三个表示组用户权限,最后三个表示其他用户权限. 

查看系统相关的命令

显示系统:uname
显示当前服务器版本信息:uname -a

lsb_release -a

ls相关命令

查看当前路径下的文件:ls;

查看当前路径下文件的权限:ls -l;

统计001-img-wildface文件夹下的文件数量:ls ./001-img-wildface|wc -l

服务器文件交互

$ scp localFile user@xxx.xxx.xx:/ 
//拷贝本地文件到远端/目录下

$ scp localFile user@xxx.xxx.xx:~
//拷贝本地文件到远端home目录下

//把本地文件夹复制到远端主机:
$ scp -r abc root@xxx.xxx.xxx:~

-r表示递归
把远端文件复制到本地:

scp root@xxx.xxx.xxx:~/awesome.txt ./
scp -r root@xxx.xxx.xxx:~/awesome.txt ./

压缩、解压

注意:tar压缩文件是最快速的,zcvf中v是显示交互信息的,z表示压缩,通常用cf就可以了,因为图片的jpg或是png压缩格式,已经把图片给压缩了;

使用tar压缩文件时,可以在命令前加nohup,表示后台压缩操作;

df -h 可以查看压缩文件的盘内存是否增加,若是增加的数据和压缩文件一样多,说明压缩完成;

ps -aux |grep tar 查询线程,可了解是否压缩完成;

为了避免在解压缩时出现中文乱码问题

unzip -O CP936 archive.zip

zip

解压:unzip FileName.zip

压缩:zip FileName.zip DirName

    tar

    解包:tar xvf FileName.tar

    打包:tar cvf FileName.tar DirName

    tar.gz 或 tgz

    解压:tar zxvf FileName.tar.gz

    压缩:tar zcvf FileName.tar.gz DirNam

    .gz

    解压1:gunzip FileName.gz

    解压2:gzip -d FileName.gz

    压缩:gzip FileName


    .bz2

    解压1:bzip2 -d FileName.bz2

    解压2:bunzip2 FileName.bz2

    压缩: bzip2 -z FileName

    .tar.bz2

    解压:tar jxvf FileName.tar.bz2

    压缩:tar jcvf FileName.tar.bz2 DirName

Ubuntu修改文件所有者


例:要将当前目录下名为name的文件夹及其子文件的所有者改为geust组的su用户,方法如下:
#sudo chown -R su.geust name

例:将s11文件夹的所有者改为s11:
#sudo chown -R s11 s11

-R 递归式地改变指定目录及其下的所有子目录和文件的拥有者。

语法格式: chmod [-vR] [No] 文件名

  参数说明:

  No 三位代表相应权限的数字

  -v 显示权限改变的详细资料

  -R 表示对当前目录下的所有文件和子目录进行相同的权限更改

Ubuntu进入和退出root用户以及切换用户

sudo su    进入root

exit     退出root

logout   普通用户退出当前登录状态

linux系统下切换python

ls -l /usr/bin/python*  #列出所有的python版本
ln -s /usr/bin/python3 /usr/bin/python   #创建软连接python指向python3
rm -rf /usr/bin/python     #移除python2.7
python -V  #查询python版本

查找文件

//搜查所有目录中,名字中包含trtexec的文件
sudo find / -name "*trtexec*"

      找出最后20分钟内内修改过的文件     

      find ./ -name ‘*.txt’ -mmin -20 -ls

      找出最后1天内修改过的文件

       find ./ -name ‘*.txt’ -mtime -1 -ls

  • 找出最后20分钟内状态改变的文件

    find ./ -name ‘*.txt’ -cmin -20 -ls

  • 找出最后2天内状态改变的文件

    find ./ -name ‘*.txt’ -ctime -2 -ls

  • 找出最后20分钟内访问的文件

    find ./ -name ‘*.txt’ -amin -20 -ls

  • 找出最后1天内访问的文件

    find ./ -name ‘*.txt’ -atime -1 -ls

查看进程、端口

ps -aux | grep srs
netstat -ano | grep 1935

tail -f ./objs/srs.log   //查看log尾部并不断更新

//查看所有端口
ps aux

下载

git clone --recursive 用于循环克隆git子项目 

git clone --recursive https://github.com/onnx/onnx-tensorrt.git

查看内存

1,查看分区情况

fdisk -l 

2,查看系统的磁盘空间占用情况

df -h
df -TH

3,查看某个目录的使用空间大小

du -sh       需要先进入该目录,或者后面加上路径
du -sh 路径

4、只查看当前目录下文件大小

du -sh * | sort -nr

ubuntu “Argument list too long”解决方法

背景:Linux下使用cp,mv,rm等命令时经常会碰到“Argument list too long”错误,这主要是因为这些命令的参数太长,即文件个数过多。

解决方案:“Argument list too long”这个问题的解决主要会用到两个命令,find和xargs

1、要删除test文件夹下以jpg结尾的文件

find test/ -name "*.jpg" | xargs -i rm {}
find test/ -name "*.jpg" -exec rm {} \;

2、要拷贝test文件夹下以jpg结尾的文件到train目录。
命令1为:

find test/ -name "*.jpg" | xargs -i cp {} train

或 

find test/ -name "*.jpg" -exec cp {} train \;

 命令解析

find test/ -name "*.jpg"
是指在test文件夹下查找名为*.jpg的文件。

xargs命令是给其他命令传递参数的一个过滤器,也是组合多个命令的一个工具。-i会将xargs的内容赋值给{}。

-exec参数后面是指执行其后面的命令,-exec以;为结尾,由于各个系统中分号的意义不同,因此用\进行转义,即;,{}会被find命令的结果替换。

find . -name "*.xml"| xargs -i sudo chmod 777 {}

解释:查找当前目录下 后缀为xml的文件,放在{}中 对其实行赋777; 

sudo chown liangj Annotations/

解释:对文件夹 Annotations文件夹 归主定位liangj

Linux中批量杀进程的方法


一、使用awk批量杀进程的命令:

ps -ef |grep hello |grep -v grep |awk '{print "kill -9 "$2}' | sh


说明:
ps -ef |grep hello |grep -v grep       # 列出了当前主机中运行的进程中包含hello关键字的进程
ps -ef |grep hello |grep -v grep |awk '{print "kill -9 "$2}'   # 列出了要kill掉这些进程的命令,并将之打印在了屏幕上
ps -ef |grep hello |grep -v grep |awk '{print "kill -9 "$2}' | sh   # 后面加上 |sh 后,则表示执行这些命令,进而杀掉了这些进程


二、grep和kill联合使用杀掉进程

ps -ef |grep hello |awk '{print $2}'|xargs kill -9

xargs 的作用是将参数列表转换成小块分段传递给其他命令,以避免参数列表过长的问题。可单独使用,也可使用管道符、重定位符等与其他命令配合使用。

此处,xargs的作用就是将ps -ef |grep hello |awk '{print $2}' 得到的结果(一个或者多个),传给kill命令使用。

PS:第二种方法和第一种方法类似,只是shell脚本编写有些区别。

命令clear报错

错误: terminals database is inaccessible
原因: 我自己从别的主机复制了一份anaconda(路径为/home/anaconda),然后把环境变量配置文件写为了/home/anaconda/bin:$PATH ,再使用clear命令,默认就是/home/anaconda/bin下的clear命令
解决方案: 在~/.bashrc 文件里面添加 alias clear='/usr/bin/clear'
解释: 强制clear使用/usr/bin/clear 即可

pip install -r requirements.txt

pip install -r requirements.txt命令中,-r参数用于指定一个要安装的软件包依赖项清单文件。这个清单文件通常称为requirements.txt,其中列出了项目所需的所有依赖包及其版本号。

通过使用-r参数,pip命令会读取requirements.txt文件,并自动安装文件中列出的所有依赖包及其指定的版本。这样可以方便地管理和安装项目所需的所有依赖项,确保项目在不同环境中的一致性。

requirements.txt文件通常按行列出依赖包的名称和版本号,例如:

package1==1.0.0
package2>=2.3.0

使用-r参数可以更轻松地安装和管理项目的依赖项,而不必一个一个手动执行pip install命令来安装每个依赖包。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值