Linux命令

手册地址:https://download.csdn.net/download/Zm1366172479/87216900https://download.csdn.net/download/Zm1366172479/87216900

1、目录结构

1、bin文件:二进制文件,可以被运行

2、dev文件:外部设备文件

3、home文件:可以在其它位置——计算机 看到

4、root文件:root家文件。

2、指令

打开终端:ctrl+alt+T

格式:命令 选项 操作对象

注意:选项和操作对象不是必须的,同时也不一定必须一个

1、pwd  (print current working directory)

作用:打印当前终端中的目录

2、ls (list directory contents)

作用:列出当前工作目录下的所有文件名称

用法1:ls

用法2:ls 路径

例如:

  • ls ./ 表示当前目录
  • ls ../上一级目录下
  • ls /home 绝对路径

用法3:ls -lah /home

  • 解释:l:list a:all  h:high  以详细的可读性较高的方式显示所有文件
  • 注意:开头是d是文件夹   -的话是文件  .开头是隐藏文件

3、ctrl+L

作用:清屏

4、cd (change directory)

作用:切换当前目录

用法1:cd 进入家目录

用法2:cd.. 进入上级目录下

             cd../local 进入上级目录下的 local文件中

用法3:cd /home/gzm 进入gzm文件夹 绝对文件夹

5、mkdir (make directories)

作用:创建文件夹

用法1:mkdir 文件夹名字    创建文件夹

用法2:mkdir -p -/a/b/c  创建a b c 多层目录

用法3:mkdir a b c  创建a b c 三个文件夹

6、tree 显示目录结构

用法:tree  文件夹

7、torch 创建文件

用法1:torch linux.txt 在当前文件夹创建该文件

用法2:torch ../linux 在上级目录创建该文件

用法3:torch /home/gzm/linux.txt 在gzm创建该文件

8、rm (remove file or directories)

作用:删除文件

用法1:rm 文件名

用法2:rm /home/文件名  

用法3:rm -rf a  删除a文件夹

9、cp (copy file and directories)

作用:复制文件

用法1:cp 被复制的文件 复制到的路径 cp /home/gzm ./

用法2:cp -r 被复制的文件夹  复制到的路径

10、mv (move file)

作用:移动文件

用法1:mv 文件 移动到的路径

11、man (manuals)

man 命令  对该命令的解释

3、文件编辑

1、vim文件

  • vim +文件名 打开文件
  • i 开始输入
  • :w保存
  • :q推出

设置行号:set nu

2、getdit

4、开发环境创建

一般都先执行:sudo apt update (super user do 更新软件包)

安装软件:sudo apt install build-essential gdb

查看版本:gcc --version      

安装cmake:sudo apt install cmake

5、编译过程

以下四步可以一步实行:g++ test.cpp -o test

1、预处理 .i文件

  • 作用:指示编译器仅对输入文件进行预处理
  • 用法:g++ -e test.cpp -o test.i   

2、编译 .s文件

  • 作用:将c产生汇编语言
  • 用法:g++ -s test.i -o test.s

3、汇编 .o文件

  • 作用:生成机器语言
  • 用法:g++ -c test.s -o test.o

4、链接 bin文件

  •  作用:产生可执行文件
  •  用法:g++ test.o -o test

6、g++编译参数

1、-g

作用:产生带调试信息的可执行文件test,这样可以被gnu调试器GDB使用的调试信息

方法:g++ -g test.cpp -o test

2、-o

作用:优化代码

3、-l和-L

-l:指定程序要连接的库,-l参数接着的是库名(需要在/lib  /usr/lib 和/usr/local/lib里的库)

-L:跟着不在上述目录的库文件所在目录

用法:

g++ -lglog test.cpp

g++ -L /home/lglog test.cpp 

4 -I

功能:指定头文件搜索目录

g++ -I/myinclude test.cpp

5、-Wall

功能:打印警告信息

g++ -wall test.cpp

6、-w 

功能:关闭警告信息

7、-std=c++11

功能:设置编译标准

用法:g++ -std=c++11 test.cpp

8、-o

功能:指定输出文件名

用法:g++ test.cpp -o test

注意:若不输入 -o test 则输出a.out文件

9、-D

功能:定义宏

7、编译操作

1、编译:

g++ main.cpp test.cpp -Ipath

注意(path是头文件所在文件夹)

8、GDB调试器

1、主要功能

  • 设置断点
  • 单步执行
  • 查看变量的值

2、进入gdb代码:gdb 要调试的文件

3、常用命令

  • ctrl +x ,ctrl+a 进入tui模式,方便调试
  • b(break) 13:13行添加断点
  • ib(info breakpoints):查看在哪打断点
  • pi(print i)打印 i的值
  • c(continue):继续运行
  • display a:对a监视
  • l(list)查看附近的源代码
  • r:重新运行程序
  • l:查看源代码
  • n:执行下一行
  • s:跳入函数执行
  • f:结束当前函数
  • i:查看局部变量的值
  • p:打印值
  • q:退出

注意:必须是编译时加上-g gcc -g main.c -o main

9、小工具

功能:产生运行test的时间

用法:time ./test

10、VScode

1、ctrl+shift+p        控制面板

2、ctrl+shift+i         代码格式化

3、编译调试还是在终端进行,用g++ cpp文件 cpp文件2 -Iinlude -o 输出文件名

11、注意事项

1、linux创建文件路径

#include <sys/types.h>
#include <sys/stat.h>

namespace light
{

    int mkpath(std::string s, mode_t mode = 0755)
    {
        size_t pre = 0, pos;
        std::string dir;
        int mdret;

        if (s[s.size() - 1] != '/') {
            // force trailing / so we can handle everything in loop
            s += '/';
        }

        while ((pos = s.find_first_of('/', pre)) != std::string::npos) {
            dir = s.substr(0, pos++);
            pre = pos;
            if (dir.size() == 0) continue; // if leading / first time is 0 length
            if ((mdret = ::mkdir(dir.c_str(), mode)) && errno != EEXIST) {
                return mdret;
            }
        }
        return mdret;
    }
}


int main()
{
        int ftyp = access(OutPath.c_str(), 0);
        //创建文件夹
         int mkdirretval;
        mkdirretval = light::mkpath(OutPath);
}

12、程序运行流程:

  • 获取所有权限: chmod -R 777 地址
  • 指定库位置:export LD_LIBRARY_PATH=地址
  • 运行程序:可执行文件 参数13

13、连接XFTP

在linux系统输入ifconfig,其中ens33下面的ineit为账号,账号密码为登陆linux系统的账号和密码

14、GDAL centos(Linux)版本安装

GDAL安装:

下载地址:DownloadSource – GDAL (osgeo.org)

1、代码方式下载gdal

cd /storage/software/gdal
wget -c http://download.osgeo.org/gdal/2.2.1/gdal-2.2.1.tar.gz 

2. 解压源码、进入解压包:

# tar xvf gdal-2.2.1.tar.gz
# cd gdal-2.2.1

3. 安装编译需要的库:(这一步没做)

# yum install -y gcc make subversion gcc-c++ sqlite-devel libxml2-devel swig expat-devel libcurl-devel python36-devel

4、执行配置、编译、安装:

./configure
make
make install

5、检验

gdalinfo --version

注意:若出现以下错误,则需要安装jasper 方法如下

(1)下载https://links.jianshu.com/go?to=http%3A%2F%2Fdownload.osgeo.org%2Fgdal%2Fjasper-1.900.1.uuid.tar.gz

(2)所有步骤,按顺序执行:

 cd /storage/software/JasPer
 wget http://download.osgeo.org/gdal/jasper-1.900.1.uuid.tar.gz
 tar xvf jasper-1.900.1.uuid.tar.gz
 cd jasper-1.900.1.uuid
 ./configure
 make
 make install

(3)待编译完成,在bashrc文件中添加库链接:

 vi ~/.bashrc
export PATH=$PATH:/usr/local/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

编辑方法:您可以使用vim编辑器打开.bashrc文件,然后按下Shift + G键跳转到文件的最后一行,然后按下o键在下一行插入新的一行。输入完毕后,按下Esc键退出插入模式,然后输入:wq命令保存文件并退出编辑器。

(4)应用

source ~/.bashrc

15、VS连接linux

 

 

 

16 MakeFile编译

在源文件位置创建名为“Makefile”的文件。然后cd到当前文件夹后运行命令make。Makefile文件如下:

CC = g++
CFLAGS = -std=c++11 -I/root/projects/inc/GDAL -I/root/projects/inc/opencv -I/root/projects/inc/opencv/opencv2
LDFLAGS = -L/root/projects/lib -L/root/projects/lib
LDLIBS = -lgdal -lopencv_core -lopencv_imgproc  -lopencv_highgui

SRCS = \
    GlobalFunc.cpp \
    Image.cpp \
    matchfunction.cpp \
    Matrix.cpp \
    ParseParaFile.cpp \
    ParseTaskFile.cpp \
    PhaseMatching.cpp \
    RPBprox.cpp \
    RSImage.cpp \
    SoftDog.cpp \
    tinystr.cpp \
    tinyxml.cpp \
    tinyxmlerror.cpp \
    tinyxmlparser.cpp

OBJS = $(SRCS:.cpp=.o)
EXECUTABLE = Matching

all: $(EXECUTABLE)

$(EXECUTABLE): $(OBJS)
	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(OBJS) $(LDLIBS)

%.o: %.cpp
	$(CC) $(CFLAGS) -c $< -o $@

clean:
	rm -f $(EXECUTABLE) $(OBJS)

解释:CFLAGS :包含文件位置,即include的位置

LDFLAGS :lib文件夹位置

LDLIBS :lib文件位置,不要前缀和后缀

SRCS :.cpp文件(h文件会自己检索不用管)

EXECUTABLE :输出文件名字

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值