本篇博客的主要目的是总结Ubuntu终端中高频使用的一些常用命令和操作,终端命令非常多,但常用的命令并不多,因此此博文的主要目的是不求全,但就精,能够方便大家直接查询,以及快速掌握一些常见用法。学习这些命令不要总想着一次性都掌握,或者花大把的时间去看,只需要在遇到的时候或者自己想要做某个操作的时候进行查询并总结即可,因此本文也是会不断更新的。
每天学习一个命令
如果只是清理当前终端打印内容,但是用鼠标滚轮还是可以回滚历史记录,可以执行:
clear
如果想要完全清理终端打印内容,并且不能用鼠标回滚历史记录,可以执行:
reset
此部分主要是一些简单的常用命令,一般也不会用到这些命令的太多功能选项,包括:
参考
pwd
:查看当前目录所在的路径
date
: 查看当前时间,date +%Y-%m
按格式输出
cal
:查看当月日历,cal -y
查看全年日历
passwd
:修改当前用户密码,passwd <用户名>
:修改指令用户密码
history
命令!历史命令编号
来执行历史命令。cd 目录名 : 切换到指定目录
cd .: 切换到当前目录
cd ..: 切换到上一级目录
cd ~: 切换到当前用户的目录
cd: 等价与cd ~ 切换到当前用户的目录
cd -: 切换到上一次工作目录
作用: ls=list,顾名思义用来列出当前路径下的所有文件和文件夹,这个命令使用频率非常高,也拥有很多选项,我们掌握基本的操作即可。
列出所有文件包括隐藏文件:
默认ls
命令不会列出.
开头的隐藏文件,要想列出隐藏文件可以用下面命令:
ll
或者
ll -a
查看文件大小:
可以以KB或MB为单位显示文件大小:
ll -h
列出不同文件类型颜色代表的含义不同:
白色:表示普通文件
蓝色:表示目录
绿色:表示可执行文件
粉色:表示图片文件
红色:表示压缩文件
天蓝色:链接文件
红色闪烁:表示链接的文件有问题
黄色:表示设备文件
灰色:表示其他文件
https://learnku.com/server/wikis/36530
作用: 1、过滤标准输出的字符串,快速定位终端输出中是否包含某字符串;2、查询文件内容中是否包含指定字符串。
常见用法:
比如我通过ls
命令可以列出当前目录下所有文件(文件夹)名,但如果文件很多,我想快速知道当前目录下是否包含有文件名字有Example
的文件,那么grep
命令就可以派上用场了。
区分字符串大小写过滤字符串:
ls | grep Example
不区分大小写过滤字符串:
ls | grep -i Example
grep命令字符串叠加:
https://blog.csdn.net/mmbbz/article/details/51035401
查找包含某字符串的文件:
http://einverne.github.io/post/2017/09/grep.html
https://blog.51cto.com/151wqooo/1162118
注:多个选项可以叠加在一起起作用
a. 当前目录下是否有包含python
字符串的文件
grep python *
显示字符串所在的行数:-n
选项
grep -n python *
b. 当前目录及子目录下是否有包含python
字符串的文件
-r
选项
grep -rn python *
c. 忽略大小写查找
-i
选项:
grep -irn python *
d. 完全匹配某个字符串
-w
选项:
grep -rnw python *
此时只会查找包含完整的python
字符串的行,不会匹配上python2
或python3
等字符串。
e. 查找指定后缀名文件中是否包含某字符串
find ./ -type f -name "*.cpp" -o -name "*.h" | xargs grep -n python
需要结合find
命令来使用,上面这句命令就可以实现查找cpp或h文件中是否包含有python
字符串的功能。
【参考】
作用: 文件查找命令,可以实现在终端快速查找指定目录下是否包含需要查找的文件或文件夹。
语法格式:
find 搜索路径 [选项] 搜索内容
搜索路径不写的时候默认是当前路径
选项:
-name: 按照文件名搜索;
-iname: 按照文件名搜索,不区分文件名大小;
-inum: 按照 inode 号搜索;
https://www.cnblogs.com/xudong-bupt/archive/2013/03/23/2976793.html
https://zhuanlan.zhihu.com/p/52746102
https://blog.csdn.net/dcrmg/article/details/78000961
https://wangchujiang.com/linux-command/c/find.html
默认递归查找当前目录及子目录文件:
find . -name "*.cpp"
或
find -name "*.cpp"
只查找当前目录下文件:
find . -maxdepth 1 -name "*.cpp"
只查找文件:
find ./ -type f -name "lidar*"
只查找文件夹:
find ./ -type d -name "lidar*"
查找多个指定后缀文件:
find ./ -name "*.h" -o -name "*.cpp"
其中-o
表示or
,即用来组合不同的后缀格式。
或者写成:
find -type f \( -name "*.png" -o -name "*.jpg" \)
其中f
表示只查找文件,\(
前后是有空格的。
【参考】
系统控制或系统管理命令
http://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-commands.html
https://blog.csdn.net/yjk13703623757/article/details/78945576
https://www.jianshu.com/p/6432015c52a6
tree命令可以以树状结构列出文件夹下所有的文件夹和文件。
基础用法:
1、直接终端输入tree
tree
会递归列出所有文件和文件夹。
要注意一般不会直接使用这个命令,特别是当你执行命令的目录下有特别多的文件时,会列出特别多的内容。
2、只列出文件夹
tree -d
3、按不同级别深入列出
例如只列出当前目录下一级内容:
tree -L 1
如果只想列出目录,可以组合命令:
tree -dL 2