linux指令

本篇主要介绍Linux指令

一、linux终端
终端
用来执行指令
[root@localhost ~]#
root 用户名
localhost 本地IP地址
~ 代表目录名

~ 是登录用的户根目录 如果用root则代表root目录
/ 系统的根目录 相当于 E:\
根目录中常见的目录
bin 可执行程序的目录 即linux操作系统的指令
sbin 可执行程序的目录 系统管理员使用的指令
dev 设备节点文件, 即驱动程序的入口文件
fb 帧缓冲设备 即屏幕 理解为文件名
向这个文件中写入数据,代表在屏幕显示的内容发生变化 播放视频
从这个文件中读出数据,抓屏
dsp 声卡设备 写入数据,播放
读出数据,录音
camera 视频设备 读出数据,摄象
tty 终端设备
mnt 挂载设备 比U盘,sdk,光驱,网络目录
etc 系统配置文件
usr 保存了编程时使用头文件、库文件
include 保存.h 即对函数的声明
lib 保存.a 和.so 库文件,也称为函数库 即函数
lib 保存了系统程序所用到的.so文件 是系统程序运行时使用的
root 超级用户的目录,里面有桌面设置的信息
home 其它用户的目录, 编程或练习

绝对路径:即从根目中开始找文件
相对路径:从当前的工作目录开始找文件
./ 当前目录
…/ 上一级目录

  1. ls 指令 查看目录中的文件或子目录
    输入ls 回车
    ls -l 以列表的方式显示
    ls -A 显示所有的文件,包括隐藏的
    ls -lA 以列表方式显示所有
    ls / 显示/根目录中的文件或子目录
    ls -l /usr/include/ 绝对目录

  2. cd 指令 用来切换目录
    cd /home/ 切换到 home目录
    ls -l …/usr/include/ 相对目录
    ls -l /home/ 绝对
    ls -l …/…/home/ 相对

3.echo
打印和输出
echo “askdfj” 输出到终端
echo $PATH

4.文件重定向
** > 将指定的数据写入到后面指定的文件中
** >>将指定的数据追加到后面指定的文件中

echo "asfaf" > test.txt
echo "lkaf" >> test.txt
ls / >>test.txt      

cat 查看文件中的内容
cat test.txt

二、文件操作权限
ls -l
-rw-r–r--

r 只读 4 w 只写 2 x 执行 1 - 无权限 0
u 所属 即创建者
g 属组 即所在组的人
o 其它
rw- 6
r-x 5
rwx 7
376 //属主权限写和执行 属组读写执行 其它读写

chmod 用于更改文件权限
格式
chmod 权限 文件或目录名

补充:指令的执行
目录名/指令名称 回车 //即执行程序或指令

 /bin/ls
 /home/test.txt 绝对目录执行程序
 ./test.txt     相对目录执行程序   
 ls            可执行 是因为/bin目录在环境变量PATH中
 test.txt      不可执行 原因同上

三、目录操作指令
1.查看当前目录的完整名称
pwd

2.创建目录
mkdir [-pv] <目录名>

mkdir yecy  在当前目录下创建了一个子目录     
mkdir ./yecy  ./可省略
mkdir /home/yecy

-v 用来显示执行的过程和结果
-p 代表强制创建 当创建的子目录的上级目录不存在时,创建上级目录
mkdir -pv /home/a/b/c

mkdir b c d e  代表创建4个目录

1.创建空文件
touch 创建一个空文件
touch text2.txt

2.删除文件或目录
rm [-ivrf] 文件名或目录名
rm test.txt
rm:是否删除 一般文件 “test.txt”? y代表删 非y代表不删
原因,是该指令默认有一个i参数

 -f 代有强制,不提示
 -r 代表删除目录及目录中的所有文件
    rm -rf b
    rm -rfv c
 
 rm -rf e yecy text2.txt  删除3个文件或目录
 rm -rf *  //删除所有
 rm -rf *.txt ye*  删除所有含.txt及ye的文件名名目录名

 上下键 将前面用过的指令找出来
 tab    双击列出符合的列表 单击补全

3.更名及移动
mv [-ivrf] 源文件名或目录名 目标文件名或目录名

 mv text2.txt aaa.c  //更名
 mv aaa.c bbb.c      //bbb.c如果存在,则是覆盖
 mv aaa.c text1.txt  //如果text1.txt目录,则移动
 
 mv d f         //f不存在,则是更名 d和f都是目录
 mv f e         //如果e是目录,且存在,则为移动
 mv yecy1 ../   //移动
 mv aaa bbb/ccc //先看bbb内是否有ccc 如果不存在,则移动bbb中同时更名为ccc,如果ccc本身存在,则移到bbb/ccc目录内 

4.拷贝
cp [-ivrf] 源文件名或目录名 目标文件名或目录名

cp aa.txt aa.c
cp bb.txt aa.c  //如果aa.c已存在,则覆盖
cp aa.c bbb/ccc //如果ccc是已存在的目录,拷贝到bbb/ccc目录下,如果ccc不存在,则拷贝到bbb内,同时更名为ccc,如果ccc本身存在并是文件名,则是覆盖

5.链接
ln [-sfinv] <源文件或目录><目标文件或目录>

链接的分类:有两种 软链接、硬链接
软链接 生成了一个文件,文件内保存了另一个文件的节点地址,所以可以通过软链接操作另一个文件。(相当于快捷)
硬链接 没有生成任何新的文件,而是生成新的节点,即在源文件的基础上增加了一个节点数。(相当于别名)
快捷方式: windows内的,也是一个文件,里面保存了另一个文件的文件路径。

-s 代表软链接
   如果不用参数,则代表硬链接

1)硬链接
ln aa.c aa.c.cpp //即生成了两名同一个文件
如果删除了其中一个节点,则节点数会减少一个。当节点数为1时,则真正的把文件删除。
echo “lkjsadf” >aa.c
[root@localhost home]# cat aa.c.cpp //改一个,因为是同一文件,其它都变
lkjsadf
[root@localhost home]# cat aaa.lll
lkjsadf

rm aa.c
[root@localhost home]# cat aaa.lll //文件还存在,没被删除
lkjsadf

2)软链接
ln -s aa.c aa.c.ln //aa.c.ln与aa.c不是同一个文件,aa.c.ln保存了aa.c的地址。

rm aa.c
[root@localhost home]# cat aa.c.ln //aa.c.ln指向的文件不存在
cat: aa.c.ln: 没有那个文件或目录

五、文件阅读指令

  1. head和 tail
    读取一个文件前面几行或后面几行的数据

    head [-n <行数>] 文件名

    head -n 2 /root/Desktop/aaa.txt //查看文件的前两行数据。如果不用参数,则代表前10行

2.cat
cat [-nbsv] <文件名,…> [> 文件名]
用于显示文件,也可以用于连接文件
-n 列出行号
-b 对空白行不编号
-s 如果有两个以上的空白行,只保留一个空白行
cat aaa.c //列出文件的所有内容
cat -nb aaa.c //显示行号,空白不编号

cat -nbs aaa.c > ll.txt  //去掉多余空白,编号后保存到另一文件中

//将两个文件合成为一个文件
cat aaa.c bbb.c >ddd.c
cat bbb.c >> aaa.c 

六、文件查找指令

1.找文件
find <目录> [-name <范本样式>] [-ls][-fls<文件名>]
查找文件

find /usr/include/ -name “math*”

2.在文件中找内容
(1)在文件内查找字符串
grep [-cin] <字符串> [文件名]
-c 输出匹配行的数量
-i 不区分大小写
-n 显示匹配的行号和字符串

    grep -n "jg" aaa.c  //在文件中查找字符串并标上行号 

(2)在结果集中查找字符串
<指令结果集> | grep [-cinv] <字符串>

   echo "lajfksgdj" | grep -n "jf"
   cat aaa.c | grep -n "js"

(3)利用xargs 查找含有指定字符串文件

   find 目录 -name "*" | xargs grep <字符串>
   find ./ -name "*" | xargs grep "js"

三、磁盘管理和常用指令
1.磁盘分区指令
fdisk -l 查看存储(磁盘、光驱、U盘、sd卡)设备

常见的设备
 硬盘:/dev/hdx   IDE
       /dev/sdx   SCSI/USB
 软盘:/dev/fdx x=0/1
 CD-ROM:/dev/cdrom  IDE
       /dev/scd    SCSI           

2.设备挂载指令
mount [-t vfstype] [-o options] device dir
挂载:u盘\移动硬盘\光驱
共享目录
磁盘映像文件
vfstype挂载的设备类型
光盘或光盘镜像:iso9660
   DOS fat16文件系统:msdos
   Windows 9x fat32文件系统:vfat
   Windows NT ntfs文件系统:ntfs
   Mount Windows文件网络共享:smbfs
   UNIX(LINUX) 文件网络共享:nfs
options 选项
loop:用来把一个文件当成硬盘分区挂接上系统
   ro:采用只读方式挂接设备
   rw:采用读写方式挂接设备
rw: 读写
   iocharset:指定访问文件系统所用字符集
字符:
屏幕上所显示的所有内容本质都是图片
字符的本质就是图片的编号(编码)
ASCII 字母、符号 0-127之间的编号
GBK 大陆字符集
BIG5 台湾字符集
uncode utf-8
nolock 文件解锁 通常在开发板中挂载设备

device 设备 即插入的U盘、共享目录等
dir 挂载点 即入口(是一个空目录)

例:挂载linux共享文件夹
mount -t nfs -o rw 192.168.1.23:/home aaa

解除挂载
umount aaa

四、文件的常用工具
1.文件的压缩和备份
tar [-cxtzjvfpPN] 目标 源文件
- j,z 压缩文件的类型
z gzip格式 扩展名.gz
j bzip2格式 扩展名.bz2
-c 打包
-x 解包
-v 显示过程
-f 处理文件

将text.c压缩为 test.c_20151018.bz2
tar -cjvf test.c_20151018.bz2 test.c

将test.c_20151018.bz2解压到当前目录下
tar -xjvf test.c_20151018.bz2

将test.c_20151018.bz2解压到/目录下
tar -xjvf test.c_20151018.bz2 -C /

2.Vim或vi

用于编写文件
1)打开文件
vim 文件名
文件本身不存在,则创建文件,否则打开文件

2)三种指令模式
指令模式 开打开的文件默认模式
编辑模式 用于编辑文字
末行模式 用于保存等操作

 指令->编辑  i或 a   esc键回到指令模式
    编辑模式的操作 同windows
    insert 插入和替换  切换
    bkspace 向前删除
    del     向后删除
    home    跳到行首
    end     跳到行尾
    pgup    上翻一页
    pgdn    下翻一页
 
 指令模式
    yy    复制一行  5yy 复制5行 
    p     粘贴
    dd    删除一行  5dd 删除5行
    剪切  先dd,然后p
    u     恢复  直到刚打开文件的状态
 
 指令->末行  Esc -> :          
    :q 退出
       如果没有编辑文字,则直接退出
       如果已编辑文字,q! 强制退出不保存
    :w 保存
       wq  保存后退出
       w <文件名> 另存,另存后,当前操作还是原文件
       w!  在只读的情况,想保存必须强制保存
    :x 写入文件并退出 相当于wq
    //-----------------------------
    :? <字符>  查找指定的字符,按 n继续查找下一个
    :#    如:1 跳到指定行        
    :set nu 显示行号  set nonu取消行号显示
    
    :%s/原字符/新字符/g    

六、其它常用指令
1.重启
reboot
2.查看运行的进程
ps [-Aa][celf][-C 程序名][-p pid]
-A 显示所有正在执行程序
-a 显示所有终端的执行程序
c 显示程序指令名称
e 显示程序使用的环境变量
l 显示详细信息
f 显示树状结构

 ps 查看当前终端内的进程
 
 程序:是保存在磁盘上的可执行的文件
 进程:在内存中运行的程序
 操作系统,最开始有一个进程 进程PID是 0
 其它的所有进程都是由另一个进行打开 涉及到父进程和子进程     
  PID  PPID 
 进程 父进程
      

 ps -la      以列表的方式查看所有终端的程序 
 ps -C test  直接指定程序查看
 ps -p 7     查看pid是7的程序
 
 
3. 发送信号
 kill -l  用来查看信号
 信号:用数字代表了某种功能,实现一种控制
 
 kill <PID>  代表了向指定的pid发送了第9号的信号
      用来结束进程
      Ctl+C 第9号的信号 
      
 kill -s <信号> <PID>

      kill -s 9 3384

七、用户管理
用户信息的设置在 /etc/passwd保存
查看用户是否存在
cat /etc/passwd | grep “yecy”

1.创建用户名
useradd [-g group][-d home]
-g:直接给出GID
-d:直接将根目录建立在已存在目录

useradd myy
创建了用户名myy,组名,同时在home中创建了myy目录
useradd -g 502 ztl
创建了用户名ztl,组是502 ,同时在home创建了ztl
useradd whl -d /newdir //指定了该用户的根目录
2.设置密码
passwd [用户名]

passwd myy  //设置用户密码
Changing password for user myy.
New UNIX password:        //输入密码
BAD PASSWORD: it is too simplistic/systematic
Retype new UNIX password: //验证密码
passwd: all authentication tokens updated successfully.

3.删除用户
userdel <user_name>
userdel myy
4.切换用户
su [-c command] [-] [user [ARG]]
su myy 进入myy用户
su - 从其它用户返回到root用户

八、网络管理指令
ifconfig指令
(1)ifconfig 查看
查看网络地址,设置网络地址

eth0  网卡名
   Link encap:Ethernet  网络的类型  以太网
   HWaddr 00:0C:29:EC:9D:96  网卡物理地址 用来识别电脑
    
   inet addr:192.168.1.23    IP地址  IPV4
   Bcast:192.168.1.255       广播地址  
   Mask:255.255.255.0        掩码
         
   inet6 addr: fe80::20c:29ff:feec:9d96/64 IPV6
       
(2)即时设置IP
    第一种方法(即时生效,重启失效)      
   
  ifconfig eth0 192.168.1.22 netmask 255.255.255.0 up
  ifconfig

  注意:重启动失效

(3)永久性设置IP方法
  更改的是一个配置文件
  vi /etc/sysconfig/network-scripts/ifcfg-eth0 
  
  # Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]
  DEVICE=eth0
  ONBOOT=yes
  BOOTPROTO=none   #dhcp 自动获取 none静态设置
  HWADDR=00:0c:29:ec:9d:96
  NETMASK=255.255.255.0
  IPADDR=192.168.1.22
  TYPE=Ethernet
  USERCTL=no
  IPV6INIT=no
  PEERDNS=yes
  
  重启网卡
   ifdown eth0  //取消激活
   ifup eth0    //激活

(4)检测网络是否连接
ping 192.168.1.22 //测试网络是否连接 正常则返回时间s

九、服务管理
service <服务类型> <指令>
smb 是samba 服务,用于同windows系统共享文件
nfs 用于同linux体系统共享文件
vsftpd 是ftp服务,用于提供文件下载传输功能
sshd 用于提供远程终端访问功能
xinetd tftp服务
iptables 防火墙
指令
start
stop

例:操作防火墙
service iptables start //启动服务
service iptables stop  //停止服务

1.nfs服务
如果想把系统的某目录共享给其它人,则必须建立和启动服务
设置共享目录有两种方法:
1)通过系统菜单中的工具设置
2) 通过配置文件来设置
vim /etc/exports
/home/project *(rw,sync)

  /home/project代表要共享的目录
  *(rw,sync)    *代表所有机器ip    rw代表读写 sync同步执行

如何将目录共享出去?
要启动服务nfs
service nfs start

检测nfs服务是否启动
showmount 192.168.1.8 //此处ip是开启了nfs服务的ip

其它机器使用该机器的共享目录的方法?
必须用mount挂
mount -t nfs [-o nolock,rw] 该机器的共享目录名, 挂载点
挂载点是连接另一个设备目录的入口,必须是一空目录

mdkir aaa
mount -t nfs -o rw 192.168.251:/home/project ./aaa
cd aaa

2.ssh服务
用于远程终端的访问
service sshd start

远程访问,工具SecureCRT.exe

3.ftp服务
1). ftp服务的设置
(1)窗口设置方法:
不需设置,启动即可
(2)文件设置方法:
/etc/vsftpd/vsftpd.conf 主配置文件 不需更改
/etc/vsftpd/ftpusers 指定哪些用户不能访问FTP服务器
/etc/vsftpd/user_list 文件中指定的用户列表不可以可以访问ftp服务器由vsftpd.conf
文件中的userlist_deny的取值来决定。

设置方法是:

在 /etc/vsftpd.ftpusers 和/etc/vsftpd.user_list 文件中将允许访问的用户去掉

上述三个文件,如果在开发板上没有,则可以从linux的PC机上拷贝到开发板。

2). 启动FTP服务
service vsftpd start 启动vsftpd服务
service vsftpd stop

3). 客户端对ftp服务的访问
ftp可以在windows用ftp工具访问,也可以在linux用ftp指令访问,但必须明确ftp服务器的服务已启动
windows系统可用ftp工具下载
ftp下载工具.zip

 linux系统用ftp指令下载
 ftp [-dignv][主机ip]     
     -d 显示指令执行过程 详细
     -i 不询问任何问题
     -n 不使用自动登陆
     -v 显示指令执行过程 

例:
ftp 192.168.2.9
Connected to 192.168.2.9.
220 (vsFTPd 2.0.5)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (192.168.2.9:root): root
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>

 进入指令状态后,常用指令如下      
     使用ftp客户程序连接另一台计算机后可执行的指令如下:
     ls 列出远程机目录
     cd 在运程机上改变工作目录 
     pwd 查看远程机当前目录 
     lcd 改变本机目录
     get <文件名> 从远程机获取文件
     put <文件名> 将文件传送到远程机
     quit 断开和远程机的连接
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 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采用卷积网络来提取特征,使用全连接层来得到预测值。其网络结构通常包含多个卷积层和全连接层,通过卷积层提取图像特征,通过全连接层输出预测结果。 五、应用领域 目标检测技术已经广泛应用于各个领域,为人们的生活带来了极大的便利。以下是一些主要的应用领域: 安全监控:在商场、银行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

行走在软件开发路上的人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值