Linux系统简单指令总结

一、基本指令

1. pwd - Print current working directory

作用:打印当前终端所在的目录
用法:pwd

1# 打印当前目录
2 pwd
2. ls - List directory conte

用法1:ls

1 ls   #作用:列出当前工作目录下的所有文件/文件夹的名称

用法2:ls [路径]
含义:列出指定路径下的所有文件/文件夹的名称
绝对路径:相对根目录的路径;
相对路径:相对当前目录的路径;

1# ls 相对路径
2 ls ./      #【表示当前目录下】
3 ls ../     #【上一级目录下】
4# ls 绝对路径
5 ls /home

用法3:ls [选项] [路径]
含义:在列出指定路径下的文件/文件夹的名称,并以指定的格式进行显示。

1# ls 选项 路径
2 ls -lah /home
3# 选项解释:
4    -l:表示list,表示以详细列表的形式进行展示
5    -a:表示显示所有的文件/文件夹(包含了隐藏文件/文件夹)
6    -h:表示以可读性较高的形式显示
7# ls -l 中 “-”表示改行对应的文档类型为文件,“d”表示文档类型为文件夹。
8# 在Linux中隐藏文档一般都是以“.”开头
3. cd - change directory

作用:切换当前的工作目录
用法1:cd ;cd ~

1# 以下两条命令等价,示直接进入当前用户的家目录下【很常用】
2 cd
3 cd ~

用法2:cd [相对路径]

1# 进入到上级目录下
2 cd ..
3# 进入到上级目录中的local目录下
4 cd ../local

用法3:cd [绝对路径]

1# 进入到/usr/local目录下
2 cd /usr/local
4. mkdir - make directories

用法1:mkdir 路径
作用:创建目录

1# 在当前路径下创建出目录“myfolder”
2 mkdir myfolder

用法2:mkdir -p 路径
含义:一次性创建多层不存在的目录

1# 创建 ~/a/b/c 目录
2 mkdir -p ~/a/b/c

用法3:mkdir 路径1 [路径2] [路径3]
含义:一次性创建多个目录

1# 在当前目录分别创建a、b、c三个文件夹
2 mkdir a b c
5. touch - change file timestamps

作用:创建新文件
note : 为什么创建新文件是touch?
touch的作用本来不是创建文件,而是将指定文件的修改时间设置为当前时间。就是假装“碰”(touch)了一下这个文件,假装文件被“修改”了,于是文件的修改时间就是被设置为当前时间。
这带来了一个副作用,就是当touch一个不存在的文件的时候,它会创建这个文件。然后,由于touch已经可以完成创建文件的功能了,就不再需要一个单独的create了。
用法1:touch [路径]

1# 在当前目录下创建linux.txt文件
2 touch linux.txt
4# 在上级目录下创建linux文件
5 touch ../linux
6
7# 在/home/bing/目录下创建myfile文件
8 touch /home/bing/myfile

用法2:touch [路径1] [路径2]

1# 在当前目录下创建file file.txt 两个文件
2 touch file file.txt
6. rm - remove files or directories

作用:删除文件/目录
用法1:rm [选项] 需要移除的文件路径

1# 删除当前路径下的myfile文件
2 rm myfile 
3# 删除/usr路径下的myfile文件
4 rm /usr/myfile

用法2:rm [选项] 需要移除的目录

1# 删除当前路径下的abc文件
2rm -rf myfolder
3# 删除/usr路径下的abc文件
4rm -rf /usr/myfolder
7. cp - copy files and directories

作用:复制文件/文件夹到指定的位置
用法1:cp [被复制的文件路径] [文件被复制到的路径]

1# cp命令来复制一个文件
2 cp /home/bing/myfile ./

用法2:cp -r [被复制的文件夹路径] [文件夹被复制到的路径]
含义:-r 表示递归复制,复制文件夹的时候需要加 -r

1# 复制/home/bing/myfolder文件夹到根目录/下
2 cp -r /home/bing/myfolder /
8. mv - move (rename) files

作用:移动文件到新的位置,或者重命名文件
用法:mv [需要移动的文件路径] [需要保存的位置路径]

1# 移动当前目录下myfile文件到根目录/下
2 mv myfile /myfile
3
4# 移动当前目录下myfolder文件夹到根目录/下
5 mv myfolder /myfolder
6
7# 移动当前目录下myfile到根目录/下,并重命名为myfile007
8 mv myfile myfile007

9. man - an interface to the system reference manuals

作用:包含了Linux中全部命令手册
用法:man [命令]
含义:查看命令使用手册,按 q 退出

1# 查看ls命令的手册
2 man ls
3# 查看cd命令的手册
4 man cd
5# 查看man命令的手册
6 man man
10 shutdown - power-off the machine

作用:关机
用法:shut -h [时间]

1# 立即关机
2 shutdown -h now

二、VSCode开发

1.高频使用快捷键:

VSCode快捷键

2. 快捷键:格式调整
  • 全屏:F11
  • 代码行缩进 Ctrl+[ 、 Ctrl+]
  • Ctrl+C 、 Ctrl+V 复制或剪切当前行/当前选中内容
  • 代码格式化:Shift+Alt+F,或 Ctrl+Shift+P 后输入 format code
  • 上下移动一行:Alt+Up 或 Alt+Down
  • 向上向下复制一行:Shift+Alt+Up 或 Shift+Alt+Down
  • 在当前行下边插入一行 Ctrl+Enter
  • 在当前行上方插入一行 Ctrl+Shift+Enter

三、CMake

1.前言

  • CMake是一个跨平台的安装编译工具,可以用简单的语句来描述所有平台的安装(编译过程)。
  • CMake可以说已经成为大部分C++开源项目标配
  • 基本语法格式:指令(参数 1 参数 2…)
  • 变量使用${}方式取值,但是在 IF 控制语句中是直接使用变量名

2. 重要指令

1. cmake_minimum_required - 指定CMake的最小版本要求

语法:cmake_minimum_required(VERSION versionNumber [FATAL_ERROR])

1# CMake最小版本要求为2.8.3
2 cmake_minimum_required(VERSION 2.8.3)
2. project - 定义工程名称,并可指定工程支持的语言

语法:project(projectname [CXX] [C] [Java])

1# 指定工程名为HELLOWORLD
2 project(HELLOWORLD)
3. set - 显式的定义变量

语法:set(VAR [VALUE] [CACHE TYPE DOCSTRING [FORCE]])

1# 定义SRC变量,其值为main.cpp hello.cpp
2 set(SRC sayhello.cpp hello.cpp)
4. include_directories - 向工程添加多个特定的头文件搜索路径 —>相当于指定g++编译器的-I参数

语法:include_directories([AFTER|BEFORE] [SYSTEM] dir1 dir2 …)

1# 将/usr/include/myincludefolder 和 ./include 添加到头文件搜索路径
2 include_directories(/usr/include/myincludefolder ./include)
5. link_directories - 向工程添加多个特定的库文件搜索路径 —>相当于指定g++编译器的-L参数

语法:link_directories(dir1 dir2 …)

1# 将/usr/lib/mylibfolder 和 ./lib 添加到库文件搜索路径
2 link_directories(/usr/lib/mylibfolder ./lib)
5. add_library - 生成库文件

语法:add_library(libname [SHARED|STATIC|MODULE] [EXCLUDE_FROM_ALL] source1 source2 … sourceN)

1# 通过变量 SRC 生成 libhello.so 共享库
2 add_library(hello SHARED ${SRC})
6. add_compile_options - 添加编译参数

语法:add_compile_options(

1# 添加编译参数 -Wall -std=c++11
2 add_compile_options(-Wall -std=c++11 -O2)
7. add_executable - 生成可执行文件

语法:add_library(exename source1 source2 … sourceN)

1# 编译main.cpp生成可执行文件main
2 add_executable(main main.cpp)
8. target_link_libraries - 为 target 添加需要链接的共享库 —>相同于指定g++编译器-l参数

语法:target_link_libraries(target library1 library2…)

1# 将hello动态库文件链接到可执行文件main
2target_link_libraries(main hello)
9.add_subdirectory - 向当前工程添加存放源文件的子目录,并可以指定中间二进制和目标二进制存放的位置

语法:add_subdirectory(source_dir [binary_dir] [EXCLUDE_FROM_ALL])

1# 添加src子目录,src中需有一个CMakeLists.txt
2add_subdirectory(src)
10. aux_source_directory - 发现一个目录下所有的源代码文件并将列表存储在一个变量中,这个指令临时被用来自动构建源文件列表

语法:aux_source_directory(dir VARIABLE)

1# 定义SRC变量,其值为当前目录下所有的源代码文件
2 aux_source_directory(. SRC)
3# 编译SRC变量所代表的源代码文件,生成main可执行文件
4 add_executable(main ${SRC})

2. CMake编译流程

  • 手动编写 CmakeLists.txt。
  • 执行命令 cmake PATH生成 Makefile ( PATH是顶层CMakeLists.txt 所在的目录 )。
  • 执行命令make 进行编译。
 1## 外部构建:将编译输出文件与源文件放到不同目录中
 2
 3# 1. 在当前目录下,创建build文件夹
 4 mkdir build 
 5# 2. 进入到build文件夹
 6 cd build
 7# 3. 编译上级目录的CMakeLists.txt,生成Makefile和其他文件
 8 cmake ..
 9# 4. 执行make命令,生成target
 10 make
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值