Linux 学习笔记

最重要的命令

  • man 查看帮助手册,例如 man ls 表示查看 ls 命令的帮助手册
  • -h--h-help--help 查看命令帮助

常用命令

  • mkdir 创建一个文件夹;
  • touch 创建一个空文件,touch 的另一个作用是更新文件的时间戳,也就是最后编辑时间,内容保持不变;
  • rm <file> 删除文件,rm -f <file> 强制删除文件;
  • cp <old> <new> 复制文件;
  • mv <old> <new> 移动或重命名文件;
  • cat file 显示文件内容;
  • ls foo 可以用于检查 foo 文件或目录是否存在;
  • > 将输出重定向到文件名,>> 将输出附加到文件名;
  • diff <f1> <f2> 对比文件 1 和 2 的差异;
  • wc <file> 统计文件行数、字数和大小,显示的结果中的数字分别表示文件内容的行数、字数和字节大小;
  • head <file> 显示文件的前 10 行内容,tail <file> 显示文件的最后 10 行内容;
  • which bash 显示程序(bash)路径;
  • grep -i <string> <file> 在指定文件中查找字符串,其中 -i 表示忽略大小写;
  • ps 显示进程;top 按资源占用从高到低排序显示进程;
  • kill -<level> <pid> 杀掉一个进程;
  • cd .. 回到上一层目录;cd - 回到上一个目录;cd ~ 回到主目录(Home 目录),等同于 cdcd / 回到根目录;
  • scp 命令可以在多台设备上相互拷贝文件;scp -r 命令可以在多台设备上拷贝文件夹
  • find 查找文件,用find可以根据文件名查找,或者根据类型查找,通过不同的参数设置,如 find . -name "a.txt" 表示在当前目录找文件名为 a.txt 的路径
  • grep 搜索字符,搜过文件中的字符是非常常用的功能之一,比如写代码时候搜过一个函数都在哪里调用了。或者分析日志时候过滤出有用数据都可以用grep。如 bash$ grep test *.txt 表示在当前目录下搜索包含 test 字符的 .txt 文件。

下面放一张网友总结的 Linux 常用命令脑图(原始链接已经找不到了):
linux_command

组合命令:多个命令之间可以用分号 ; 隔开,表示依次执行多个命令。但是更好地使用组合命令是用 && 隔开多个命令,这种方式的好处是等待前一个命令成功后再执行下一个命令。

常用快捷键

  • Tab 命令补全
  • Ctrl+C 终止命令执行
  • Ctrl+U 清除已输入的命令
  • Ctrl+D 关闭命令行窗口
  • Ctrl+L 清除屏幕
  • Ctrl+A 将光标移动到命令行开头
  • Ctrl+E 将光标移动到命令行结尾
  • Alt+Enter 终端窗口最大/最小化
  • Ctrl+Up/Down Arrow 上下滚动终端屏幕

Linux 系统的命令行下,可以直接使用 man 命令查询 C/C++ 函数和例子。
比如 man socket 查询 socket 函数,直接 man getaddrinfo 可以查看例子。下面再放一张珍藏的常用快捷键示意图:

linux_shortcuts

Linux下的路径表示方法

  • 以”/“开头的表示从根目录开始,根目录就是linux的最上层目录, 例如 /home
  • 以”./“开头的表示从当前目录开始,当前目录就是当前终端所在的目录,也称为工作目录,例如 ./samples
  • 以”~”符号开头的,表示从用户目录开始,用户目录表示当前用户的根目录,用户根目录一般路径为/home/用户名,在我机器上就是/home/wei, 例如 ~/samples 的绝对路径就是/home/wei/samples。

推荐教程

Learn Enough Command Line to Be Dangerous