IC打工人最常用的20个Linux命令

IC打工人最常用的20个Linux命令

正文

  1. ls(list files):显示指定工作目录下的内容。
    常用参数:
    —help | more分屏显示,按Q退出
    -a:显示所有的文件和目录,包括隐藏文件
    -l:除文件名称外,文件型态、权限、拥有者、文件大小、修改日期等(常用)
    -r:将文件根据建立时间先后的顺序列出
    -R:recursive连同子目录的内容一起列出(递归列出),即该目录下的所有文件都会显示
    -t:显示修改时间
    -s:显示文件大小
    常用例子:
    ls -Rta

  1. cd(change directory):切换工作目录,可用相对路径,也可用绝对路径。
    常用参数:
    cd /usr/bin
    cd ~
    cd ./path(./可以省略不写)
    cd ../path
    “~”表示为 home 目录 的意思, “.”表示目前所在的目录, “..”表示目前目录位置的上一层目录。
  2. pwd(print work directory):显示当前工作目录,获取当前所在目录的绝对路径名称。
  3. rm(remove):删除文件或目录。
    常用参数:
    -i:删除前询问确认是否删除
    -v:详细:显示删除文件速度
    -r:递归删除,目录下的文件也全部删除
    -f:force,忽略警告、不存在的文件,强制删除
    rm -rf 一定要小心使用!!!删除容易找回难啊!血泪教训!
  4. mv(move file):用于文件或目录的改名和移动存放位置。
    常用参数:
    -f:文件同名,不会询问,直接覆盖旧文件。
    -i:目录或文件同名,则会先询问是否覆盖旧文件,输入 y 表示直接覆盖,输入 n 表示取消该操作。
    -b:目标文件或目录存在时,在执行覆盖前,会为其创建一个备份。
    -u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。
  5. mkdir(make directory):创建目录
    -p 递归创建
  6. cp(copy file):复制文件或目录。
    常用参数:
    -r:递归复制,用于目录的复制
    -f:覆盖已经存在的目标文件并且不提示
    -a:将文件的特性一起复制
  7. which:查看某个系统命令是否存在,以及执行的到底是哪一个位置的命令。
  8. find:在指定的目录下查找文件名称。功能非常强大,参数比较多,重点掌握
    find [目录列表] [匹配标准]
    常用命令:
    find ./ -name “*.v”:当前目录及其子目录下所有后缀为.v的文件列出来
    !-name:名字不等于
    -print:在目录里打印出来
    -size:大小为xxxc(c代表char)
  9. grep:用于查找文件内容,即文件里符合条件的字符串。搜索关键词,查找定义文件,查找error,重点掌握
    grep <选项> [匹配字符串] [文件列表]
    常用命令:
    grep -ri “error”:r当前目录查找error,i忽略大小写
    -v :反向查找,打印出不符合条件行的内容
    -r:递归查找
    -i:不区分大小写
  10. chmod(change mode):控制用户对文件权限。一种是字母和操作符表达式的文字设定法;另一种是数字设定法。
  1. 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:使用档案名字

  2. du(disk usage):显示文件或目录的大小。
    常用参数:
    -s:仅显示总数
    -h:以K,M,G为单位

  3. ln(link files):为某一个文件在另外一个位置建立一个同步的链接,分硬链接和软链接。硬链接的意思是一个档案可以有多个名称,而软链接的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置,重点掌握

    • ln -s 源文件 目的文件
  1. wc:计算文件的Byte数、字数、或是列数。
    常用参数:
    -c:显示Bytes数
    -l:显示行数
    -w:显示字数

  2. ps(process status):显示当前进程的状态。
    常用参数:
    -A:列出所有的进程
    -w:显示加宽可以显示较多的资讯
    -au:显示较详细的资讯
    -aux:显示所有包含其他使用者的行程

  3. top:显示实时的process动态。

  4. kill:杀死执行中的进程。
    常用参数:
    1 :重新加载进程。
    9 :杀死一个进程。
    15:正常停止一个进程。

  5. vim:打开文本编辑器。vim、gvim需要熟练,以后就靠它俩恰饭了。

  6. 管道符“|”:管道符左边命令的输出就会作为管道符右边命令的输入,重点掌握

补充

  1. bg:查看后台运行的进程,常配合kill
  2. lscpu:查看cpu详细信息
  3. time <命令>
  4. wc:统计指定文件中的字节数、字数、行数
    -c:统计字节数
    -l:统计字数
    -w:统计行数
  5. sort<选项>[文件列表]:排序命令
  6. diff<参数>[源文件] [目标文件]:比较文件内容不同
    -b忽略空格造成的不同
    -q只报告什么地方不同,不报告具体的不同信息
    -i忽略大小写的变化
    -r在比较目录时比较所有的子目录
    -s两个文件相同时才报告
    -v在标准输出上输出版本信息并退出
  7. which/whereis
    whereis查找命令所在目录
    which输出命令的全路径到屏幕上
  8. history 可查看先前的指令。
  9. !$可用来执行最近的一条指令。
  10. !his 可用来补齐先前用过的指令。
  11. 用;来间隔几个指令,可以让指令顺序执行
  12. tab健可以直接补齐系统中有的指令。
  13. .利用管道符可以实现多个指令组合使用:
    ps-ef | grep vsim
    find .-name "*file1*" | xargs grep include
  14. ctrlt+z(组合键):将当前的命令挂起,放到后台运行
    fg:恢复挂起的命令,放到前台运行
    ctrl+c(组合键):终止当前的命令
  15. whoami:查看用户自己当前使用的帐号名。
    who:查看当前有哪些用户登录到系统中。
    w:查看有哪些用户登录在线,同时显示用户当前的工作
  16. In<选项>[目标[链接名]In<选项>[目标[目录]
    作用:给系统中已有的某个文件指定另外一个可用于访问它的名称。
    软连接:In -s source des
  17. cat
  • cat /proc/cpuinfo :查看cpu信息
  • cat > FILENAME:快速创建一个文件,内容可以直接通过中断输入,以EOF或^D作为结束标志

  1. 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特定的), 用来存放内核例行程序的文档
  1. sudo dmesg,输出操作系统的启动日志, 操作系统的行为一览无余.
  2. ctrl+
    • ctrl+h显示隐藏文件
  3. < 命令 > &:后台运行该命令

  4. 查看ubuntu版本与名称

1
lsb_release -a

其他解决方案

find 指令的使用

  1. 找到大于10M的文件基础版:
1
find . -type f -size +10M

这个指令会显示当前文件夹. 下面的所有大于10M的文件。但是不会具体显示这些文件的大小

  1. 找到大于10M的文件进阶版:
1
find . -type f -size +10M -exec du -h {} \;

这个指令会显示当前文件夹. 下面的所有大于10M的文件。且会具体显示这些文件的大小。(备注,du -h 就是显示文件(夹)大小的指令)

  1. 寻找文件夹
1
find . -type d -name FL

主要就是这个 -type 参数

  1. 生成filelist.f
1
find -name "*.v" > filelist.f

会将当前目录下及子目录中所有.v的文件及路径写到文件filelist.f中

1
find dir -name “*.v” > filelist.f

会将dir中的所有.v的文件都写到filelist.f中

统计代码行数(find + grep + wc)

第一个例子是统计一个目录中(包含子目录)中的代码行数. 如果想知道当前目录下究竟有多少行的代码, 就可以在命令行中键入如下命令:

1
find . | grep '\.c$\|\.h$' | xargs wc -l
  • 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结尾的文件.
  • 标准输入输出:刚才的findgrep命令, 都从标准输入中读取数据, 并输出到标准输出. 关于什么是标准输入输出, 请参考这里open in new window. 连接起这两个命令的关键就是管道符号|. 这一符号的左右都是Shell命令, A | B的含义是创建两个进程AB, 并将A进程的标准输出连接到B进程的标准输入. 这样, 将findgrep连接起来就能够筛选出当前目录(.)下所有以.c.h结尾的文件.
  • 我们最后的任务是统计这些文件所占用的总行数, 此时可以用man查看wc命令. wc命令的-l选项能够计算代码的行数. xargs命令十分特殊, 它能够将标准输入转换为参数, 传送给第一个参数所指定的程序. 所以, 代码中的xargs wc -l就等价于执行wc -l aaa.c bbb.c include/ccc.h ..., 最终完成代码行数统计.
  • (方法二)统计代码行数
1
wc -l `find . -name "*.h";find . -name "*.cpp"`
  • 统计文件个数:一前以后,用途不同了。
1
find . -name "*.h" | wc -l
  • linux 中显示文本行数及非空文本行数

    • 思路是先用grep过滤掉空行:
    1
    2
    3
    4
    5
    find . \( -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
2
chmod -R 777 <FILENAME>
chmod -R 777 *

有关777的含义与权限,可参考:https://blog.csdn.net/lh2008xp/article/details/121408309

查看端口与杀死进程

netstat -a命令可以查看已经连接的服务端口

ubuntu 查看端口使用情况方法

netstat -ap命令可以查看所有的服务端口

ubuntu 查看端口使用情况方法

结合grep命令可以查看指定端口,例如netstat -ap | grep ssh

也可以使用lsof命令

若要关闭使用这个端口的程序,使用kill + 对应的pid

总结

1
2
lsof | grep 端口号
kill pid号

vscode 浏览 markdown时一直亮色

解决办法:

第一步,开启dark

image-20220815212004889

第二步,选择一个适合的主题

image-20220815211827567

其他选项

image-20220815211849200

注意,如果配置不成功,记得切换到设置的工作区

推荐工具

  1. baobab 磁盘分析工具

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!