Linux: 高频必备指令一文打尽

Linux高频必备指令收藏

  • 1 常见问题
  • 2 综合指令(快捷键)
  • 3 文件夹操作
  • 4 文件操作
  • 5 其他操作
  • 6 权限管理
  • 7 实战演练

搭载系统:Ubuntu 16.04

1 常见问题


Linux新手入门:Unable to locate package ……错误解决办法
具体描述:unable to locate package libgll-mesa-dev
http://www.cppblog.com/colorful/archive/2012/04/29/173122.html

Update 和 Upgrade 的区别

sudo apt-get update		#读取源网站所有软件列表,保存到本地
sudo apt-get upgrade	#将本地软件和上步软件列表对应,升级至最新
# 一般 upgrade 前,都要 update

扩展链接

2 综合指令(快捷键)

关机 | 重启

sudo poweroff  		#关机推荐 
sudo reboot 		#重启推荐 

shutdown -h now 	#法二,立即关机
shutdown -r now 	#法二,立即重启,可以调参数设置时间

sudo halt   		#别用,关系统不断电,像遥控器关机一样。会卡在欢迎界面,还得手动按关机键

更多内容请点击:Linux 开关机常用指令

复制粘贴(用于终端命令框)

#命令窗口复制粘贴
Ctrl + Shift + C
Ctrl + Shift + V  

#日常操作  
Ctrl + C | V 

打开终端窗口命令框

Ctrl + Alt + T  				#推荐
鼠标移植左上角,  搜索 Terminal	#法二
按 win 键,      搜索 Terminal	#法三

查看已安装的所有软件包

dpkg -l --列出当前系统中所有的包.可以和参数less一起使用在分屏查看. (类似于rpm -qa)
dpkg -l |grep -i "软件包名" --查看系统中与"软件包名"相关联的包.

3 文件夹操作


基本知识

/       根目录
/home   家目录
波浪号  表示当前用户的家目录,比如
~/     绝对路径就是:/home/usr11/

打开文件夹路径

cd ./folderName  	#打开当前目录下某文件夹
 ./file.txt 
# 注意末尾的 / 不能省, 表示进入该目录下

cd  /   #直接进入根目录,opt usr home
cd ./  	#打开当前文件夹
cd ..  	#打开上一层文件夹
cd -    # 回到上一次目录

ls    	#显示当前目录下所有文件
pwd 	#显示当前目录路径

嵌套建立文件夹
mkdir的-p选项允许你一次性创建多层次的目录

mkdir -p Project/a/src

创建多层次、多维度的目录树
例如建立目录Project,其中含有4个文件夹a, b, c, d,且这4个文件都含有一个src文件夹。

mkdir -p Project/{a,b,c,d}/src

效果:

-Project
 --a/src/
 --b/src/
 --c/src/
 --d/src/

4 文件操作


主要包含:

  • 删除、建立、移动、复制、查找

删除rm


rm -rf user/       # 删除用户目录及其下所有文件
rm -rf /.		   # 删除根目录下所有文件,适合删库跑路用
rm -r directory/   # 循环删除文件夹及内部文件

移动mv

  • 文件
    • 指令:mv ./crash-* ./corpus
    • 释义:当前目录下所有名为crash-…的文件,移动到corpus目录下
    • 指令:mv ./*.so ./corpus
    • 释义:当前目录下所有后缀为so的文件,移动到corpus目录下
    • 指令:mv ./* /data/local/tmp/corpus
    • 释义:移动当前目录下所有文件到corpus目录下
  • 文件夹
    • 指令:mv ./crash ./corpus
    • 释义:目录crash,移动到corpus目录下
  • 其他
    • 指令:mv 1.txt 2.txt
    • 指令:mv crash corpus
    • 释义:对文件或文件夹,mv到当前不存在的目录或文件名,等效于重命名

拷贝、复制粘贴cp

  • 文件
    • 指令:cp /some/input/samples/* ./
    • 释义:拷贝samples下所有文件到当前目录下
  • 文件夹
    • 指令:cp -r ./dataflow/ ./tmp/
    • 释义:拷贝dataflow目录及其下所有文件到tmp目录下, 加-r表示recursive递归复制每个文件
    • 举一反三:类似地,rm删除文件夹时,也要加-r表示删除其下所有文件
  • 其余操作与mv指令类似

搜索查找find/locate/which

  • find指令
    • 功能:查找文件或文件夹
    • 总则:find
    • 入门
      • 指令:find fileName
      • 释义:仅查找当前这层目录下名为filename的文件或文件夹
      • 指令:find . -name firmware -type d
      • 释义:找当前目录下 名为 firmware 的文件夹
      • 指令:find . -name demo.cpp
      • 释义: 当前路径及其下面去找寻文件所在目录
      • 指令:find / -name "*.c"
      • 释义:查找根目录下后缀为.c的文件
    • 进阶
      • 指令:find . -mtime -3
      • 释义:查找当前目录下所有3天以内修改过的文件
      • 指令:find . -name '*.c' -mtime -3
      • 释义:查找当前目录下所有后缀为.c的3天以内修改过的文件
  • locate指令
    • 功能:并非系统自带,与find使用类似,比find查找更快,对大数据查找有效
    • 指令:locate fileName
    • 释义:查找文件
  • which指令
    • 功能:查找可执行命令源文件所在目录,不能用于查找文件
    • 举例:
      • which ls
      • which which
  • search指令
    • 指令:apt-cache search aarch64
    • 释义:查找关于aarch64可用的apt

查看目录、文件属性信息ls

  • ls指令
    • 指令:ls
    • 释义:显示当前目录下文件及文件夹
    • 指令:ls -l out/VOGUE/
    • 释义:-l,表示long list,详细显示目录下文件信息,包含时间、权限
    • 指令:ls -l libd*
    • 释义:详细显示某一名字带 libd 的文件信息
    • 指令:lscpu
    • 释义:查看服务器cpu架构、大小端等信息

解压缩tar

  • 简介:tar指令全称为Tape Archive,文件压缩
  • 功能:文件/目录解压缩
  • 参数:仅放常用的,更多细节见,link
    • -x,表示extract,解压操作
    • -c,表示create,压缩操作,创造一个压缩文件
    • -v,表示verbose information详细信息,解压时view显示解压了哪些文件
    • -t,表示table,lists all the files inside an archive file,查看压缩包里有哪些文件
    • -f,表示接具体的压缩包名字
  • 使用:对以上参数进行组合即可
    • 指令:tar -cvf filename.tar [directory/files]
    • 示例:压缩目录或文件为filename.tar
    • 指令:tar -cvf new.tar ./new
    • 释义:压缩new目录,为new.tar
    • 指令:tar -cvf new.tar 1.txt 2.txt
    • 释义:压缩当前目录下的两个txt,为new.tar
    • 指令:tar -xvf documents.tar
    • 释义:解压documents.tar到当前目录
    • 指令:tar -xvf documents.tar -C /tmp/files
    • 释义:解压documents.tar到指定目录/tmp/files
    • 指令:tar -tf filename.tar
    • 释义:在不解压的条件下,查看filename.tar中具体文件列表

5 其他操作


清屏

clear  	# 清理命令行
或
ctrl + l  #快捷键

查看磁盘空间 df / du 命令

df -h  		#方法1,查看各区使用情况
baobab  	#方法2,

观察文件类型:file, file ~/.bashrc

查找执行文件的路径,默认查找第一个的命令

which history
which --help
which ls
which -a ls #找出所有的文件所在目录

查看磁盘空间:

查看系统软硬件架构x86/x64/arm/
uname -a

6 权限管理


用户权限

#root账户下给用户 usr0576 添加sudo权限
sudo adduser usr0576 sudo  

#删除用户用户数据
userdel user 
# 此命令删除用户user在系统文件中(主要是/etc/passwd, /etc/shadow, /etc/group等)的记录,同时删除用户的主目录。

#查看所有用户
cat /etc/passwd  

#用户切换
su - wwx712138 	#root到用户
su - 			#用户到root

文件目录权限

用法:chmod 777  文件或目录

chmod  777 /etc/squid  #squid文件夹(目录)权限修改为777(可读可写可执行)。
chmod 777 repo   #repo 可读可写可执行

7 实战演练


6.1 练习Vim和CMake编译案例

#检查下版本及是否安装Cmake和Vim
vim --version			#查看版本
cmake --version		

# 模拟编译下一个C++程序
touch helloSLAM.cpp		#新建一个C++
vi helloSLAM.cpp		#Vim进行文本编辑
i						#输入i,显示insert,进入编辑模式
Press: ESC				#编辑完成后,退出编辑模式
:wq						#保存退出
# 在上面.cpp,输入一个main函数

#利用gcc编译器,编译
g++ helloSLAM.cpp 		#编译一个可执行文件,默认输出名为 a.out, 名字可更改
./a.out    				#运行编译后的可执行文件

touch CMakeList.txt 	#建立一个cmake列表,然后编辑相应内容
mv CMakeList.txt CMakeLists.txt #改为新名字 必须为 CMakeLists.txt
cmake .					#编译当前文件夹
make					#生成可执行文件  
./helloSLAM				#该程序名字在CMakeLists.txt中定义


rm -r CMakeFiles/ 		#删除中间文件夹
rm Makefile				#删除中间文件
..						#省略一系列操作

#建立build之前,一定要删除前面cmake生成的文件
mkdir build				#建立build文件夹中转
cd build				#打开
cmake ..				#对上一层文件夹进行编译
make					#生成可执行文件
./helloSLAM				#该程序名字在CMakeLists.txt中定义

参考自:高翔视觉SLAM十四讲,CH2

你可能感兴趣的:(Linux实战,Ubuntu,入门,常见问题,常用指令,快捷键)