linux常用命令

该文档记录了一些常用的linux命令

ls 查看目录

which python3 查看python命令的路径

cd 目录,切换到指定的目录

ip address 查看本机的ip地址

ping ip 尝试ping 目标机的ip,是否连接

pwd 显示当前目录

tar -zxvf xxx.tar 解压*.tar.gz 压缩文件

man 命令 查看命令说明文档,W向上一页,D向下一页,J向下一行,K向上一行,G首航

硬盘操作

df 查看硬盘分区状态
df命令作用是列出文件系统的整体磁盘空间使用情况。可以用来查看磁盘已被使用多少空间和还剩余多少空间。
    df [选项] [文件名]
参数:
-a:--all,显示所有的文件系统,包括虚拟文件系统,参考示例2。
-B:--block-size,指定单位大小。比如1k,1m等,参考示例3。
-h:--human-readable,以人们易读的GB、MB、KB等格式显示,参考示例4。
-H:--si,和-h参数一样,但是不是以1024,而是1000,即1k=1000,而不是1k=1024。
-i:--inodes,不用硬盘容量,而是以inode的数量来显示,参考示例5。
-k:以KB的容量显示各文件系统,相当于--block-size=1k。
-m:以KB的容量显示各文件系统,相当于--block-size=1m。
-l:--local,只显示本地文件系统。
--no-sync:在统计使用信息之前不调用sync命令(默认)。
-sync:在统计使用信息之前调用sync命令。
-P:--portability,使用POSIX格式显示,参考示例6。
-t:--type=TYPE,只显示指定类型的文件系统,参考示例7。
-T:--print-type,显示文件系统类型,参考示例8。
-x:--exclude-type=TYPE,不显示指定类型的文件系统。
--help:显示帮助信息。
--version:显示版本信息。

可参考博客:https://blog.csdn.net/gnail_oug/article/details/70217446

dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。
注意:指定数字的地方若以下列字符结尾,则乘以相应的数字:b=512;c=1;k=1024;w=2
参数注释:
if=文件名:输入文件名,缺省为标准输入。即指定源文件。< if=input file >
of=文件名:输出文件名,缺省为标准输出。即指定目的文件。< of=output file >
ibs=bytes:一次读入bytes个字节,即指定一个块大小为bytes个字节。
obs=bytes:一次输出bytes个字节,即指定一个块大小为bytes个字节。
bs=bytes:同时设置读入/输出的块大小为bytes个字节。
cbs=bytes:一次转换bytes个字节,即指定转换缓冲区大小。
skip=blocks:从输入文件开头跳过blocks个块后再开始复制。
seek=blocks:从输出文件开头跳过blocks个块后再开始复制。
注意:通常只用当输出文件是磁盘或磁带时才有效,即备份到磁盘或磁带时才有效。
count=blocks:仅拷贝blocks个块,块大小等于ibs指定的字节数。
conv=conversion:用指定的参数转换文件。
ascii:转换ebcdic为ascii
ebcdic:转换ascii为ebcdic
ibm:转换ascii为alternate ebcdic
block:把每一行转换为长度为cbs,不足部分用空格填充
unblock:使每一行的长度都为cbs,不足部分用空格填充
lcase:把大写字符转换为小写字符
ucase:把小写字符转换为大写字符
swab:交换输入的每对字节
noerror:出错时不停止
notrunc:不截短输出文件
sync:将每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐。

可参考博客:https://blog.csdn.net/xizaihui/article/details/53307578

系统启动与关闭

init n 切换系统运行级别

参数n:0  关机
                 1  单用户(root)无网状态,用来做系统维护
                 2  多用户状态,没有网络文件系统
                 3   完全的多用户状态,远端连接linux
                 4   未使用,系统保留
                 5   完全多用户状态,并且有可视化界面
                 6   关机并重启

reboot 重启命令

常用目录:

/    根目录
/home    所有用户的根目录
/usr/bin    用户安装的可执行的系统程序
/usr/local/bin    本地用户安装的应用程序
/etc    系统的配置信息
/boot    系统启动时使用的一些程序
/proc    系统进程的信息
/media    挂载的外部媒体信息(中介:cdrom/usb/dvd/磁盘)
/mnt    针对media的媒体,在挂载时可用的目录

~    当前用户的根目录
.    当前目录
..    上一级目录
/    文件路径的分隔符,window是    \

文件与目录管理:

ls 查看目录文件
 -l 列表
	-t 时间排序, 降序排
	-r 反序
 	-F  显示路径 /
	- R 级联显示子目录及子目录中文件
	-a 显示所有文件,包含.隐藏文件
	-A 除了 . 和 .. 根目录,之外的其它文件
	-i 显示文件的索引号( index number,  inode)
mkdir 创建目录
参数:-p 确保目录名称存在,不存在就建一个
     -m 指定目录的权限mode(作用相当于chmod)
     -v 打印创建的目录信息
rmdir 删除目录
  参数:-p 参数多级子目录  (路径为当前文件后的完整路径,且文件夹为空)
       -v 打印删除目录信息
touch 创建或更新文件时间
  参数:-a 修改所有时间,(文件时间,创建、访问、修改)
       -c 不建立任何文档
       -d 使用指定的日期时间,而非现在的时间
       -f   此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。
       -m  只更改变动时间
       -r  把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同
       -t 使用指定的日期时间,而非现在的时间
               例: touch xxx.txt    创建文件
                   touch b.txt -t 201801221210.20
                   touch b.txt -d 20180225
cp 复制文件及目录
 格式:cp[options] source…  directory
 参数:-a:此选项通常在复制目录使用,它保留链接、文件属性。并复制目录下的所有内容。其作用等于dpr参数组合。
      -d:复制时保留链接。这里所说的链接相当于Windows系统中的快捷方式。
      -f:覆盖已经存在的目标文件而不给出提示。
      -i:与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答’y’时目标文件将被覆盖
      -p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中
      -r:若给出的源文件是一个目录文件,此时将复制目录下所有的子目录和文件(复制该目录下的所有东西)
      -l:不复制文件,只是生成链接文件
             例:cp aa.txt    ./bb    复制aa.txt 到 ./bb 目录中
                cp  -a mysql mysql5
                cp  -p mysql/bin/mysql/abc.txt
                cp  -f mysql/bin/mysql/abc.txt    强行复制,如果文件存在,则覆盖
                cp    ppp.txt    ooo.txt        将ppp.txt文件中的内容复制到ooo.txt中
mv 移动文件及目录
mv mysql  my    my和mysql 必须都存在
        例:
             mv abc.txt my
             mv abb.txt  abc.txt    重命名 abb.txt —>abc.txt
             mv -i  abc my    移动abc到my提示是否移动
             mv *.txt my    移动所有的.txt文件到my目录       正则不需要加引号
             mv mysql* my    移动所有以 mysql开头的所有文件目录到my目录中
rm 删除文件及目录
             rm -d     删除空目录
             rm -r    递归的删除目录中的文件及子目录
             rm -f    不提示的删除文件及目录,只能一级一级的删除
             rm -rf
             rm -i    删除前提示
tree 树形结构显示目录 sudo apt install tree
-a 显示所有文件和目录,包括隐藏文件。
-A 使用ASNI绘图字符显示树状图而非以ASCII字符组合。
-C 在文件和目录清单加上色彩,便于区分各种类型。
-d 显示目录名称而非内容。
-D 列出文件或目录的更改时间。
-f 在每个文件或目录之前,显示完整的相对路径名称。
-F 在执行文件,目录,Socket,符号连接,管道名称名称,各自加上"*","/","=","@","|"号。
-g 列出文件或目录的所属群组名称,没有对应的名称时,则显示群组识别码。
-i 不以阶梯状列出文件或目录名称。
-I<范本样式> 不显示符合范本样式的文件。
-l 如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录。
-n 不在文件和目录清单加上色彩。
-N 直接列出文件和目录名称,包括控制字符。
-p 列出权限标示。
-P<范本样式> 只显示符合范本样式的文件。
-q 用"?"号取代控制字符,列出文件和目录名称。
-s 列出文件或目录大小。
-t 用文件和目录的更改时间排序。
-c 用创建时间排序
-D 显示文件及目录最后修改时间
-u 列出文件或目录的拥有者名称,没有对应的名称时,则显示用户识别码。
-x 将范围局限在现行的文件系统中,若指定目录下的某些子目录,其存放于另一个文件系统上,则将该子目录予以排除在寻找范围外
                        
            tree   my
            tree  my -P ‘*.txt’    只显示符合’*.txt’的文件和目录
            tree  my  -I ‘*.txt’     显示除了符合’*.txt’的文件和目录
            tree  my  -f    显示my目录中文件和目录的完成路径
ln 建立链接
硬链接:硬链接就是一个文件有两个名字,内存地址是一样的
                注意:文件目录不能创建硬链接
软链接:软链接是一个完整的文件,软链接最终指向另外一个文件
               软链接指向的文件被删除后,软链接依然存在,重新在链接位置添加文件,还可以继续指向
格式:ln [参数][被链接源文件或目录][链接目标文件或目录]
参数:
        必要参数:    
                -b 删除,覆盖以前建立的链接
                -d 允许超级用户尝试制作目录的硬链接
                -f  强制执行
                -i  交互模式,文件存在则提示用户是否覆盖
                -n 把符号链接视为一般目录
                -s 软链接(符号链接)
                -v  显示详细的处理过程
        选择参数:
                 -S "-S<字尾备份字符串> "或 "--suffix=<字尾备份字符串>"
                 -V "-V<备份方式>"或"--version-control=<备份方式>"
                 --help 显示帮助信息
                 --version 显示版本信息
    例:
        ln -s my _m    给my目录创建_m软链接
        ln -s a.txt a    给a.txt 文件创建a 软链接
        ln a.txt  ab    给a.txt 文件创建硬链接
find 查找 默认在当前目录中查找
        find -name ‘*.txt’     查找当前路径下所有 .txt文件,包括子目录下的
        find -name ‘*.txt’ -execdir rm {} \;     删除当前路径下的所有.txt文件
        find aaa/ -name ‘*.py’ -exec python3 {} \;    运行路径下所有.py 文件
        find   目录路径       查找指定路径下的目录
xargs
    作用:
            1.数据以空格进行分隔
            2.可以根据参数进行一次或多次处理,默认的处理命令是/bin/echo
            3.空行不进行处理,会被忽略
            4.遇到命令状态为255时,xargs会立刻停止,譬如发生错误时。
    优点:
            1.将输入参数整理后,去除<newline>换行符,以一个列表形式处理
            2.避免参数过长引发的问题,使用xargs -n参数适当控制
            3.对于经常产生大量输出的命令如find、locate和grep来说非常有用
    参数:
                 xargs  [-0prtx] [-E  eof-str] [-e[eof-str]] [--eof[=eof-str]] [--null]
   [-d delimiter] [--delimiter delimiter]  [-I  replace-str]  [-i[replace-
   str]] [--replace[=replace-str]]   [-l[max-lines]]   [-L   max-lines]
   [--max-lines[=max-lines]] [-n max-args] [--max-args=max-args] [-s  max-
   chars]  [--max-chars=max-chars] [-P max-procs] [--max-procs=max-procs]
   [--interactive]     [--verbose]     [--exit]   [--no-run-if-empty]
   [--arg-file=file]   [--show-limits]   [--version]   [--help]   [command
   [initial-arguments]]    

例:
        -E ‘某一行的内容’,截止到指定行位置(不包含这个位置)
        -d \字符    将输出的内容中指定的字符转成分隔符(空格)    xargs -a a.txt -d \e    将a.txt文件中的所有e字符转成空格,
                        \是转义字符,当需要转义特殊字符时(’\’,’*’,‘@’)
        xargs -a hello.txt    读取hello.txt 文件中的内容,每一行内容用一个空格隔开(就是用空格替换换行符)
        xargs -a hello.txt -E ‘next’    表示从开头读到’next’    -a指定输出的文件
        cat my.dat  |  xargs -l3    一次性读三行,将换行符转成空格,在使用echo显示
        find -name ‘*.py’  |  xargs    显示所有.py文件  在xargs 后加 -l2 表示一次读两个文件
        find -name ‘hello.txt’   |   xargs cat    查看文件内容,在find后可以加要查看的路径
        find -name ‘*.py’  |  xargs -E ‘./2.py’  cat    读取到 2.py 文件后停止,不包括 2.py
tar 解包、压缩
    -c     打包
    -x    解包
    -z    压缩,解压    执行.gz后缀名的文件
    -v   显示执行过程信息
    -f    文件
    -C    指定解压路径
    
    命令常用组合:
        -zxvf    解压.gz压缩文件        tar -zxvf  my.tar.gz
        -zcvf    压缩.gz文件            tar -cvf new_my.tar.gz  my  mysql        将my和mysql两个目录压入new_my.tar.gz中
        -xvf    解压tar文件        tar -xvf  my.tar
        -cvf    创建tar文件        tar -cvf  my.tar
        tar -zxvf  XXX -C  YYY    将XXX解压到YYY目录        tar -zxvf txts.tar.gz -C _txt_        _txt_目录必须存在,-C必须提供,否则认为_txt_是压缩文件
文件权限:
   参数-R表示可以修改文件夹即文件夹之内所有文件的权限
   chmod   -R  777   filename    权限全开
    r       4
    w      2
    x       1
    
    第一位:- 表示文件    d 表示目录    l 表示软链接    
    第一组用户权限    u(user)
    第二组用户权限    g(group)
    第三组用户权限    o(others)
用户和用户组管理
用户:
        useradd    添加用户
                -d home_dir    指定用户的home目录
                -m    创建home_dir
                -r    创建系统用户
                -g    组名 指定主组,如果不指定,主组名跟用户名相同
                -G    组名,指定附加组
        例:
            useradd -d /home/judy  -mr  judy      #创建judy用户,同时创建了judy组
            passwd judy    #为judy用户添加口令,提示输入两次

            su  judy    #切换用户,提示要输入口令
               
        userdel    删除用户  
            userdel judy    # 不会删除home_dir
            userdel  -r judy     # 删除hong_dir,/var/jud
  
        usermod    修改用户
                sudo  user mod  judy -l tom        #修改judy用户登录名为tom
                sudo  usermod  tom  -L    # 加锁    之后无法访问
                sudo  usermod  tom  -U    # 解锁    解锁后可su tom    访问
                sudo  usermod  tom  -g  mysql    修改tom主组为mysql
                修改某用户下的目录所属的组为主组disen:
                sudo  chown tomy : disen /home/tomy/mysql/bin

扩展:查看linux系统中的所有进程:ps aux
查看某个用户的进程:ps -u 用户名
查看某个用户是否属于某个组:groups 用户名 组名
将一个文件或者目录的的用户和组更改:
# drwxr-xr-x 2 wupeng wupeng 4096 Apr 11 21:49 aaa
>> chown jack:cindy aaa
#将aaa文件夹的wupeng用户和wupeng组更改为jack用户和cindy组(jack必须属于cindy组)
查看用户所属组信息:id 用户名
例:id jack >>> uid=998(jack) gid=1003(cindy) groups=1003(cindy)
为用户添加附加组:usermod jack -G wupeng -a
id jack >>> uid=998(jack) gid=1003(cindy) groups=1003(cindy),1000(wupeng)
-a要和-G组合使用,表示追加一个新的附加组信息,不加-a表示覆盖以前的附加组
/etc/group 文件下显示组的信息,组后面出现的用户都是这些用户将该组作为附加组,用户将该组作为主组不会在该组后显示出来,一般默认主组的名字是用户本身的名字,所以不显示。
从某用户的附加组中移除某用户
在root权限下,在group文件中的该组中删除该用户

组:
groupadd 添加组
            sudo  groupadd    redis    
            sudo  useradd   cici  -d /home/cici  -rm  -g redis
            sudo  useradd tom -d /home/cici  -rm  -g  redis

            sudo  passwd    cici
            sudo  passwd    tom

            cat  /etc/group    查看所有组的信息
            sudo    groupadd   tt
groupdel  删除组
            sudo    groupdel    redis    # redis组内没有用户的前提下
            sudo    groupdel    tt

sudoers问题:用户权限问题
judy is not in the sudoers file. This incident will be reported.
解决方法:
su root
gedit /etc/sudoers 使用gedit文本编辑器打开sudoers文件,在root ALL =(ALL:ALL)ALL 行下增加一行 cici ALL =(ALL:ALL)ALL
为cici用户添加sudo使用权限
测试:
su cici
sudo useradd cindy
sudo userdel cindy
没有报错即成功。 可在etc/group下查看用户是否删除

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目标检测(Object Detection)是计算机视觉领域的一个核心问题,其主要任务是找出图像中所有感兴趣的目标(物体),并确定它们的类别和位置。以下是对目标检测的详细阐述: 一、基本概念 目标检测的任务是解决“在哪里?是什么?”的问题,即定位出图像中目标的位置并识别出目标的类别。由于各类物体具有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的干扰,目标检测一直是计算机视觉领域最具挑战性的任务之一。 二、核心问题 目标检测涉及以下几个核心问题: 分类问题:判断图像中的目标属于哪个类别。 定位问题:确定目标在图像中的具体位置。 大小问题:目标可能具有不同的大小。 形状问题:目标可能具有不同的形状。 三、算法分类 基于深度学习的目标检测算法主要分为两大类: Two-stage算法:先进行区域生成(Region Proposal),生成有可能包含待检物体的预选框(Region Proposal),再通过卷积神经网络进行样本分类。常见的Two-stage算法包括R-CNN、Fast R-CNN、Faster R-CNN等。 One-stage算法:不用生成区域提议,直接在网络中提取特征来预测物体分类和位置。常见的One-stage算法包括YOLO系列(YOLOv1、YOLOv2、YOLOv3、YOLOv4、YOLOv5等)、SSD和RetinaNet等。 四、算法原理 以YOLO系列为例,YOLO将目标检测视为回归问题,将输入图像一次性划分为多个区域,直接在输出层预测边界框和类别概率。YOLO采用卷积网络来提取特征,使用全连接层来得到预测值。其网络结构通常包含多个卷积层和全连接层,通过卷积层提取图像特征,通过全连接层输出预测结果。 五、应用领域 目标检测技术已经广泛应用于各个领域,为人们的生活带来了极大的便利。以下是一些主要的应用领域: 安全监控:在商场、银行
目标检测(Object Detection)是计算机视觉领域的一个核心问题,其主要任务是找出图像中所有感兴趣的目标(物体),并确定它们的类别和位置。以下是对目标检测的详细阐述: 一、基本概念 目标检测的任务是解决“在哪里?是什么?”的问题,即定位出图像中目标的位置并识别出目标的类别。由于各类物体具有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的干扰,目标检测一直是计算机视觉领域最具挑战性的任务之一。 二、核心问题 目标检测涉及以下几个核心问题: 分类问题:判断图像中的目标属于哪个类别。 定位问题:确定目标在图像中的具体位置。 大小问题:目标可能具有不同的大小。 形状问题:目标可能具有不同的形状。 三、算法分类 基于深度学习的目标检测算法主要分为两大类: Two-stage算法:先进行区域生成(Region Proposal),生成有可能包含待检物体的预选框(Region Proposal),再通过卷积神经网络进行样本分类。常见的Two-stage算法包括R-CNN、Fast R-CNN、Faster R-CNN等。 One-stage算法:不用生成区域提议,直接在网络中提取特征来预测物体分类和位置。常见的One-stage算法包括YOLO系列(YOLOv1、YOLOv2、YOLOv3、YOLOv4、YOLOv5等)、SSD和RetinaNet等。 四、算法原理 以YOLO系列为例,YOLO将目标检测视为回归问题,将输入图像一次性划分为多个区域,直接在输出层预测边界框和类别概率。YOLO采用卷积网络来提取特征,使用全连接层来得到预测值。其网络结构通常包含多个卷积层和全连接层,通过卷积层提取图像特征,通过全连接层输出预测结果。 五、应用领域 目标检测技术已经广泛应用于各个领域,为人们的生活带来了极大的便利。以下是一些主要的应用领域: 安全监控:在商场、银行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值