工作中常用到的linux命令

  • sudo reboot         重启机器

  • sudo vim /etc/rc.local 修改自启动文件

  • ./       代表目前所在的目录

  • ../    代表上一层目录

  • /      代表根目录

  • cd ..      返回上层目录

  • cd ../../    返回上两级目录

  • cd /home    返回home目录   这时ls会出现用户名

  • cd ~      对于普通用户 ,cd ~ = cd /home/当前用户名   这时的标识为  ~$

  • cd /      跳转到根目录(所有用户共享的目录)  这时的标识为  /$ ,home此时只是一个子目录

  • sudo su     (super user do ) (switch user)   当前用户切换到root ,exit 命令退出

  • su root     切换到root用户            

  • sudo passwd root        设置 root 用户密码

  • rm -rf 文件夹名    删除文件夹  r (recursive)递归文件删除    f (force)就是强制删除  cp 命令同理

  • cp 文件夹名 ./    赋值文件到当前目录     -rf 递归强制复制并覆盖文件

  • sudo chmod 777 文件名         赋文件所有权限

  • sudo chmod 444 文件名         设置文件为只读

  • gedit/vi/vim/cat/head/tail 文件名     查看文件内容

  • tail -f 文件名      查看正在改变的日志文件,文件尾部内容会不断在屏幕上刷新

  • touch 文件名.后缀名       新建一个文件

  • 使用vi/vim的按键   i (insert)进入编辑模式  :wq保存退出  :q不保存退出  :q!强制退出

  • mkdir 目录名        新建一个目录

  • cp 文件1 文件2 目录    将文件1 和文件2 复制到目录中

  • cp -rf 目录1 目录2      将目录1复制到目录2下

  • mv 文件1/目录1 目录2       将文件1或者目录1移动到目录2下

  • mv 旧文件夹名 新文件夹名 重命名一个文件夹

  • pwd      查看当前目录路径

  • which cmake     查看cmake的安装路径

  • ls -a = la ls -l = ll ls -h(human)    显示文件,因为.bashrc 中 alias ll='ls -alF' alias la='ls -A' 别名 +++++++多用ll -h这个命令

  • drwxr-xr-x d代表目录(directory)普通文件-,符号链接l,块设备b,字符设备crwx|r-x|r-x 代表所有者(user)、所属组(group)和其他人(others)的权限;读(r)、写(w)、执行(x)权限,(-)表示没有该权限

  • sudo apt update 修改/etc/apt/source.list 源 ,源去清华源的官网找最新的匹配对应系统的源

  • sudo apt-get install update        在安装软件报错"Unable to locate package"不到包使用

  • conda activate/deactivate       激活 /脱离 虚拟环境

  • Ctrl+Alt+T       打开终端

  • sudo service network-manager restart       重启网络服务

  • sudo systemctl restart NetworkManager.service       重启网络服务

  • ubuntu22.04开机无网络图标

    点击查看代码
    sudo service NetworkManager stop
    sudo rm /var/lib/NetworkManager/NetworkManager.state
    sudo service NetworkManager start
    
  • ctrl + q    退出 gedit

  • ctrl + m    注释gedit文本(需要安装插件)

  • ps -ef | grep 进程名     ps(process statu)   -ef标准的格式显示进程   |管道命令  grep查找命令

  • sudo kill -9 进程PID号         强制退出进程相当于window下任务管理器结束任务

  • nohup 可执行文件路径 &         表示后台运行该程序

  • nohup .可执行文件路径>可执行文件路径/log.txt 2>&1 & 将程序输出到程序路径下的log.txt, 2>&1:标准错误2重定向到&1标准输出    &表示程序后台运行

  • nohup socat -T 600 UDP4-LISTEN:9999,reuseaddr,fork UDP4:192.168.0.117:10008 >> socat.log 2>&1 & UDP监听9999端口,将消息转发给192.168.0.117:10008,打印信息到socat.log文件,在后台运行

  • tail -f 文件       刷新查看文件尾部

  • ps -ef 中显示tty字段含义解释    tty2串口终端(本机)pts/0(虚拟终端远程连接)pts/2(远程打开的第二个虚拟终端),表明该进程在哪个终端上运行,若与终端无关,则显示?,若为pts/0等,则表示有远程连接到虚拟终端来控制该进程状态

  • xrandr --fb 1920x1080 修改分辨率

  • whereis qmake 查看qmake安装位置 "/usr/lib/x86_64-linux-gnu/qt-default/qtchooser"

  • sudo vim default.conf  修改第一行为 qmake默认路径 v

  • uname -a查看系统信息

  • lsb_release -a  查看系统版本 必须要 -a

  • tar -zxvf 文件.tar.gz        解压缩 .tar.gz 文件 (解压命令使用 -C 来改变解压目录)  (x = extract c = compress v = verbosely    f : file=ARCHIVE 存档包)

  • tar -zcvf 压缩包名.tar.gz 目录名        将目录压缩为.tar.gz

  • tar -xvf 文件.tar -C 指定目录    解压缩 .tar 文件到指定目录

  • tar -cvf 压缩包名.tar 目录名   将目录压缩为.tar  

  • tar -Jxvf     解压缩 .xz 文件

  • tar --help  查看更多,不熟悉的命令都要看 help  ,看工程首先看readme,然后再看目录结构,从头文件到cpp实现

  • nc -lk 8000 永久监听TCP端口   nc -netcat

  • nc -luk 8000 永久监听UDP端口(临时监听把k去掉)   注意: udp端口没有listen的状态

  • route -n 显示路由

  • pkill -f + 程序名

  • ln -sf 源文件/目录 软链接   s = symbolic    f = force,记得要使用绝对路径,不然容易报错“Too many levels of symbolic links”

  • find /usr/lib/ -type f -newermt '2024-01-01' -print 找到2024年之后的文件  -type f 文件

  • find /usr/lib/ -type d -newermt '2024-01-01' -exec rm -rf {} +  删除2024年之后的目录,d表示找目录

  • find / -name 文件名 根目录下找某个文件

  • find -type d或者f -name 文件名 默认当前目录下找文件或目录

  • tree -L 2 -d 查看目录结构 指定层级2和只显示目录

  • ls /usr/bin | grep fl* | wc -l 查找文件并计数 ls | grep /usr/bin/fl* 错误

  • grep -r "string" ./ 当前目录文件中查找字符串 string,grep字符串不能用*

  • sed awk 编辑匹配到的文本 、 格式化文本,对文本进行较复杂格式处理

  • lsblk 查看所有硬盘和分区大小

  • df -h df(disk free) -h(human) 查看已挂载的硬盘大小

  • sudo mount /dev/nvme0n1 /mnt/ssd 手动挂载硬盘

  • sudo blkid /dev/nvme0n1 获取硬盘UUID

  • id -u | id -g # 查看当前用户的 UID=1000 、GID=1000

  • UUID=3e37b490-c695-4590-b41a-a3329ec31d08 /mnt ext4 defaults,nofail,noatime 0 2 修改/etc/fstab自动挂载硬盘,详细可去了解挂载参数

    • <设备> <挂载点> <文件系统类型> <挂载选项,逗号隔开> <dump 备份> <fsck 启动检查>
    • defaults: rw, suid, dev, exec, auto, nouser, and async
    • nofail ,若设备不存在或无法挂载,会跳过这个挂载项继续启动,不会因此失败,系统起不来
    • noatime, 不记录访问时间,atime 访问时间,mtime内容,修改时间,ctime 文件元数据改变时(权限、所有者等),减少每次文件读取时的元数据写入开销
    • uid=1000,gid=1000 ,id orangepi = 1000,uid、gid 只对 FAT / NTFS / exFAT 这类“无权限系统”有效,对ext4无效
    • <dump 备份> 一般为0, 这个文件系统是否需要备份
    • <fsck 启动检查> ,一般为2,File System Consistency Check,一致性检查,确保文件系统没有损坏
      • 0 = 不检查(用于非原生文件系统、虚拟文件系统、swap 等)
      • 1 = 优先检查(通常只用于根文件系统 /)
      • 2 或更大 = 在顺序 1 之后检查(用于普通数据分区)
  • sudo chown -R orangepi:orangepi /mnt 修改挂载点目录权限为用户权限,而不是root权限

  • ls -ld 目录 查看目录的所有者和权限

  • pkg-config --help

  • g++ --help

  • /etc/network/interfaces 是配置网路IP的文件 中有这个指令  source-directory

  • /etc/network/interfaces.d 用于将指定目录中的所有文件包含到当前的网络配置中。它允许将网络接口的配置分散到多个文件中,从而提高配置的组织性和可维护性,实际配置网络的在 interfaces.d 目录中 有eth0,1等

  • sudo passwd root 改变root密码  将 /etc/ssh/sshd_config中 的 PermitRootLogin prohibit-password  改为 yes即可用root通过ssh登录 ,mobaxterm的sftp窗口处理系统级别的文件

  • ip route help/add/del default via 192.168.0.1 dev eth0 onlink    暂时(帮助/添加/删除)默认路由  格式:default via 192.168.0.1 dev eth0  + 参数格式(onlink 、 proto dhcp 、metric 600 、src IP 、table main 等等 )

  • 可以添加多个路由 metric越小 选哪个路由(比如区分无线网卡和有线网卡的路由,有线没网,无线有网,则无线默认路由的metric要小一些,才能上网)

  • nvcc --version  查看cuda版本

  • nvidia-smi  查看cuda版本

  • tegrastats    是 NVIDIA 提供的一个命令行工具,可以实时监控 Jetson 设备的系统资源,包括 GPU 使用率、内存使用率、CPU 使用率等

  • dmesg -c 清除内核日志缓冲区信息 c = clear dmesg -w 动态打印内核日志信息 w = wait

  • lsusb 查看USB总线上挂载的设备号、4位厂商号:4位产品号 lsusb -t 查看USB设备物理上的连接关系

  • sudo lsusb -v 查看设备固件信息 lsusb -v -d 04b4:7510 | grep -i "bcdUVC"查看USB摄像头支持的UVC标准 bcdUVC 1.10 = 0x0110 则支持 UVC1.1标准

  • modinfo uvcvideo 查看当前linux系统的uvcvideo版本

  • ffmpeg -i /dev/video0 -vf "setpts=PTS-STARTPTS" -f null - 测试USB摄像头流的命令

  • 最后 换镜像解决的v4l2测试USB摄像头卡顿的问题

  • du -sh 文件(夹) 查看文件(夹)大小 (s = summarize)

  • sudo du -h --max-depth=1 /usr 查看一个层目录大小

  • find ./ -maxdepth 1 -type f | wc -l 查看目录中的文件个数

  • mv -i 旧文件(夹) 新文件(夹) 重命名

  • tee 文件名 从标准输入读取数据,并将结果同时输出到文件和标准输出 比重定向">"多了个在终端显示

  • stat file1 file2 查看文件inode(数据结构) 信息,比ls更详细

  • readelf *.so | grep Formatfile *.so   或 hexdump -C *.so | head -n 4  或hexdump -C *.so | sed -n '2p' 查看elf(Executable and Linkable Format)文件信息-架构,2p 第二行打印,hexdump 以十六进制格式显示文件内容

  • diff 文件1 文件2 比较两个文件的不同, “< ” 表示左边文件1的内容,“>” 表示右边文件2的内容

posted @ 2024-09-15 15:43  变秃了也就变强了  阅读(49)  评论(0)    收藏  举报  来源