IC打工人最常用的20个Linux命令
IC打工人最常用的20个Linux命令
正文
- ls(list files):显示指定工作目录下的内容。
常用参数:
—help | more分屏显示,按Q退出
-a:显示所有的文件和目录,包括隐藏文件
-l:除文件名称外,文件型态、权限、拥有者、文件大小、修改日期等(常用)
-r:将文件根据建立时间先后的顺序列出
-R:recursive连同子目录的内容一起列出(递归列出),即该目录下的所有文件都会显示
-t:显示修改时间
-s:显示文件大小
常用例子:ls -Rta
- cd(change directory):切换工作目录,可用相对路径,也可用绝对路径。
常用参数:
cd /usr/bin
cd ~
cd ./path(./可以省略不写)
cd ../path
“~”表示为 home 目录 的意思, “.”表示目前所在的目录, “..”表示目前目录位置的上一层目录。 - pwd(print work directory):显示当前工作目录,获取当前所在目录的绝对路径名称。
- rm(remove):删除文件或目录。
常用参数:
-i:删除前询问确认是否删除
-v:详细:显示删除文件速度
-r:递归删除,目录下的文件也全部删除
-f:force,忽略警告、不存在的文件,强制删除
rm -rf 一定要小心使用!!!删除容易找回难啊!血泪教训! - mv(move file):用于文件或目录的改名和移动存放位置。
常用参数:
-f:文件同名,不会询问,直接覆盖旧文件。
-i:目录或文件同名,则会先询问是否覆盖旧文件,输入 y 表示直接覆盖,输入 n 表示取消该操作。
-b:目标文件或目录存在时,在执行覆盖前,会为其创建一个备份。
-u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。 - mkdir(make directory):创建目录
-p 递归创建 - cp(copy file):复制文件或目录。
常用参数:
-r:递归复制,用于目录的复制
-f:覆盖已经存在的目标文件并且不提示
-a:将文件的特性一起复制 - which:查看某个系统命令是否存在,以及执行的到底是哪一个位置的命令。
- find:在指定的目录下查找文件名称。功能非常强大,参数比较多,重点掌握。
find [目录列表] [匹配标准]
常用命令:
find ./ -name “*.v”:当前目录及其子目录下所有后缀为.v的文件列出来
!-name:名字不等于
-print:在目录里打印出来
-size:大小为xxxc(c代表char) - grep:用于查找文件内容,即文件里符合条件的字符串。搜索关键词,查找定义文件,查找error,重点掌握
grep <选项> [匹配字符串] [文件列表]
常用命令:
grep -ri “error”:r当前目录查找error,i忽略大小写
-v :反向查找,打印出不符合条件行的内容
-r:递归查找
-i:不区分大小写 - chmod(change mode):控制用户对文件权限。一种是字母和操作符表达式的文字设定法;另一种是数字设定法。
tar(tape archive ):备份压缩解压文件。www.cnblogs.com/lhm166/articles/6604852.html
常用实例:
tar -cvf <目标待压缩文件> <源文件>
tar -cf all.tar *.jpg #将所有.jpg文件打包成为一个名为all.tar的包文件
常用参数:
-c:建立压缩档案
-x:解压
-t:查看内容
-r:向压缩归档文件末尾追加文件
-u:更新原压缩包中的文件
-f:使用档案名字du(disk usage):显示文件或目录的大小。
常用参数:
-s:仅显示总数
-h:以K,M,G为单位ln(link files):为某一个文件在另外一个位置建立一个同步的链接,分硬链接和软链接。硬链接的意思是一个档案可以有多个名称,而软链接的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置,重点掌握
- ln -s 源文件 目的文件
wc:计算文件的Byte数、字数、或是列数。
常用参数:
-c:显示Bytes数
-l:显示行数
-w:显示字数ps(process status):显示当前进程的状态。
常用参数:
-A:列出所有的进程
-w:显示加宽可以显示较多的资讯
-au:显示较详细的资讯
-aux:显示所有包含其他使用者的行程top:显示实时的process动态。
kill:杀死执行中的进程。
常用参数:
1 :重新加载进程。
9 :杀死一个进程。
15:正常停止一个进程。vim:打开文本编辑器。vim、gvim需要熟练,以后就靠它俩恰饭了。
管道符“|”:管道符左边命令的输出就会作为管道符右边命令的输入,重点掌握。
补充
- bg:查看后台运行的进程,常配合kill
- lscpu:查看cpu详细信息
- time <命令>
- wc:统计指定文件中的字节数、字数、行数
-c:统计字节数
-l:统计字数
-w:统计行数 - sort<选项>[文件列表]:排序命令
- diff<参数>[源文件] [目标文件]:比较文件内容不同
-b忽略空格造成的不同
-q只报告什么地方不同,不报告具体的不同信息
-i忽略大小写的变化
-r在比较目录时比较所有的子目录
-s两个文件相同时才报告
-v在标准输出上输出版本信息并退出 - which/whereis
whereis查找命令所在目录
which输出命令的全路径到屏幕上 - history 可查看先前的指令。
- !$可用来执行最近的一条指令。
- !his 可用来补齐先前用过的指令。
- 用;来间隔几个指令,可以让指令顺序执行
- tab健可以直接补齐系统中有的指令。
- .利用管道符可以实现多个指令组合使用:
ps-ef | grep vsim
find .-name "*file1*" | xargs grep include
- ctrlt+z(组合键):将当前的命令挂起,放到后台运行
fg:恢复挂起的命令,放到前台运行
ctrl+c(组合键):终止当前的命令 - whoami:查看用户自己当前使用的帐号名。
who:查看当前有哪些用户登录到系统中。
w:查看有哪些用户登录在线,同时显示用户当前的工作 - In<选项>[目标[链接名]In<选项>[目标[目录]
作用:给系统中已有的某个文件指定另外一个可用于访问它的名称。
软连接:In -s source des
- cat
cat /proc/cpuinfo
:查看cpu信息cat > FILENAME
:快速创建一个文件,内容可以直接通过中断输入,以EOF或^D
作为结束标志
- man
linux 中 man 1 man2 man3 ……man N的区别:
- Standard commands (标准命令)
- System calls (系统调用)
- Library functions (库函数)
- Special devices (设备说明)
- File formats (文件格式)
- Games and toys (游戏和娱乐)
- Miscellaneous (杂项)
- Administrative Commands (管理员命令)
- 其他(Linux特定的), 用来存放内核例行程序的文档
- sudo dmesg,输出操作系统的启动日志, 操作系统的行为一览无余.
- ctrl+
- ctrl+h显示隐藏文件
< 命令 > &
:后台运行该命令查看ubuntu版本与名称
1 |
|
其他解决方案
find 指令的使用
- 找到大于10M的文件基础版:
1 |
|
这个指令会显示当前文件夹. 下面的所有大于10M的文件。但是不会具体显示这些文件的大小
- 找到大于10M的文件进阶版:
1 |
|
这个指令会显示当前文件夹. 下面的所有大于10M的文件。且会具体显示这些文件的大小。(备注,du -h 就是显示文件(夹)大小的指令)
- 寻找文件夹
1 |
|
主要就是这个 -type 参数
- 生成filelist.f
1 |
|
会将当前目录下及子目录中所有.v的文件及路径写到文件filelist.f中
1 |
|
会将dir中的所有.v的文件都写到filelist.f中
统计代码行数(find + grep + wc)
第一个例子是统计一个目录中(包含子目录)中的代码行数. 如果想知道当前目录下究竟有多少行的代码, 就可以在命令行中键入如下命令:
1 |
|
- 用
man find
查看find
操作的功能, 可以看到find
是搜索目录中的文件. Linux中一个点.
始终表示Shell当前所在的目录, 因此find .
实际能够列出当前目录下的所有文件. 如果在文件很多的地方键入find .
, 将会看到过多的文件, 此时可以按CTRL + c
退出.- 用
man
查看grep
的功能——“print lines matching a pattern”.grep
实现了输入的过滤, 我们的grep
有一个参数, 它能够匹配以.c
或.h
结束的文件. 正则表达式是处理字符串非常强大的工具之一, 每一个程序员都应该掌握其相关的知识. 有兴趣的同学可以首先阅读一个基础的教程open in new window, 然后看一个有趣的小例子: 如何用正则表达式判定素数open in new window. 正则表达式还可以用来编写一个30行的java表达式求值程序(传统方法几乎不可能), 聪明的你能想到是怎么完成的吗? 上述的grep
命令能够提取所有.c
和.h
结尾的文件.- 标准输入输出:刚才的
find
和grep
命令, 都从标准输入中读取数据, 并输出到标准输出. 关于什么是标准输入输出, 请参考这里open in new window. 连接起这两个命令的关键就是管道符号|
. 这一符号的左右都是Shell命令,A | B
的含义是创建两个进程A
和B
, 并将A
进程的标准输出连接到B
进程的标准输入. 这样, 将find
和grep
连接起来就能够筛选出当前目录(.
)下所有以.c
或.h
结尾的文件.
- 我们最后的任务是统计这些文件所占用的总行数, 此时可以用
man
查看wc
命令.wc
命令的-l
选项能够计算代码的行数.xargs
命令十分特殊, 它能够将标准输入转换为参数, 传送给第一个参数所指定的程序. 所以, 代码中的xargs wc -l
就等价于执行wc -l aaa.c bbb.c include/ccc.h ...
, 最终完成代码行数统计. - (方法二)统计代码行数
1 |
|
- 统计文件个数:一前以后,用途不同了。
1 |
|
-
- 思路是先用grep过滤掉空行:
1
2
3
4
5find . \( -name "*.h" -o -name "*.c" \) | xargs cat | grep -v ^$ | wc -l
# 一种结合的方法
find . | grep '\.c$\|\.h$' | xargs cat | grep -v ^$ | wc -l
#下面这种方式s,你可以找一下原因
find . | grep '\.c$\|\.h$' | xargs cat | grep -v ^$ | xargs wc -l
chmod
1 |
|
有关777的含义与权限,可参考:https://blog.csdn.net/lh2008xp/article/details/121408309
查看端口与杀死进程
netstat -a命令可以查看已经连接的服务端口
netstat -ap命令可以查看所有的服务端口
结合grep命令可以查看指定端口,例如netstat -ap | grep ssh
也可以使用lsof命令
若要关闭使用这个端口的程序,使用kill + 对应的pid
总结
1 |
|
vscode 浏览 markdown时一直亮色
解决办法:
第一步,开启dark
第二步,选择一个适合的主题
其他选项
注意,如果配置不成功,记得切换到设置的工作区
推荐工具
- baobab 磁盘分析工具
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!