Linux命令基础
一些常用快捷键
按键 | 作用 |
---|---|
Ctrl+c | 结束当前任务 |
Ctrl+d | 键盘输入结束或退出终端 |
Ctrl+s | 暂停当前程序, 暂停后按下任意键恢复运行 |
Ctrl+z | 将当前程序放到后台运行, 恢复到前台为命令fg, jobs查看当前后台任务 |
Ctrl+a | 将光标移至输入行头, 相当于Home键 |
Ctrl+e | 将光标移至输入行末, 相当于End键 |
Ctrl+k | 删除从光标所在位置到行末 |
Ctrl+u | 删除当前行内容 |
Alt+Backspace | 向前删除一个单词 |
Shift+PgUp | 将终端显示向上滚动 |
Shift+PgDn | 将终端显示向下滚动 |
通配符
$: touch love_{1..10}_linux.txt
一次创建多个文件
字符 | 含义 |
---|---|
* | 匹配 0 或多个字符 |
? | 匹配任意一个字符 |
[list] | 匹配 list 中的任意单一字符 |
[!list] | 匹配 除list 中的任意单一字符以外的字符 |
[c1-c2] | 匹配 c1-c2 中的任意单一字符 如: [0-9] [a-z] |
{string1, string2, …} | 匹配 sring1 或 string2 (或更多)其一字符串 |
{c1..c2} | 匹配 c1-c2 中全部字符 如{1..10} |
man命令
在 Linux 环境中, 如果你遇到困难, 可以使用 man 命令, 它是Manual page的缩写。
通常情况下, man 手册里面的内容都是英文的, 这就要求你有一定的英文基础。 man 手册的内容很多, 涉及了 Linux 使用过程中的方方面面, 为了便于查找, 是做了分册(分区段)处理的, 在Research UNIX、 BSD、 OS X 和 Linux 中, 手册通常被分为8个区段
区段 | 说明 |
---|---|
1 | 一般命令 |
2 | 系统调用 |
3 | 库函数, 涵盖了C标准函数库 |
4 | 特殊文件(通常是/dev中的设备)和驱动程序 |
5 | 文件格式和约定 |
6 | 游戏和屏保 |
7 | 杂项 |
8 | 系统管理命令和守护进程 |
要查看相应区段的内容, 就在 man 后面加上相应区段的数字即可, 如:
$: man 1 ls |
文件操作
查看文件
使用cat, tac和nl命令查看文件
使用cat, tac和nl命令查看文件。 使用cat, tac和nl命令查看文件。
$: cat -n passwd |
nl
命令, 添加行号并打印, 这是个比cat -n更专业的行号打印命令。
这里简单列举它的常用的几个参数:
-b : 指定添加行号的方式, 主要有两种: |
使用more和less命令分页查看文件
more 是简单地分页查看工具
less 是more和vi的结合体, 功能强大
使用head和tail命令查看文件
更直接的只看一行, 加上-n参数, 后面紧跟行数:
$: tail -n 1 /etc/passwd |
关于tail命令, 不得不提的还有它一个很牛的参数-f, 这个参数可以实现不停地读取某个文件的内容并显示。 这可让我们动态查看日志起到实时监视的作用。
环境变量
PATH环境变量是Linux下程序执行的搜索路径, 通常全局环境变量使用大写。 环境变量仅在当前线程内有效。
查看PATH
$: echo PATH |
添加值
$: PATH=$PATH:/home/shiyanlou/mybin |
添加到zsh自启动执行
zsh的配置文件为。 zshrc, bash的配置文件为。 bashrc
$: echo "PATH=$PATH:/home/shiyanlou/mybin" >> .zshrc |
变量修改
变量设置方式 | 说明 |
---|---|
${变量名#匹配字串} | 从头向后开始匹配, 删除符合匹配字串的最短数据 |
${变量名##匹配字串} | 从头向后开始匹配, 删除符合匹配字串的最长数据 |
${变量名%匹配字串} | 从尾向前开始匹配, 删除符合匹配字串的最短数据 |
${变量名%%匹配字串} | 从尾向前开始匹配, 删除符合匹配字串的最长数据 |
${变量名/旧的字串/新的字串} | 将符合旧字串的第一个字串替换为新的字串 |
${变量名//旧的字串/新的字串} | 将符合旧字串的全部字串替换为新的字串 |
删除变量
$: unset path |
环境变量修改立刻生效
$: source .zshrc |
文件搜索
whereis
whereis只能搜索二进制文件(-b), man帮助文件(-m)和源代码文件(-s)。 如果想要获得更全面的搜索结果可以使用locate命令。
locate
它可以用来查找指定目录下的不同文件类型, 如查找 /etc 下所有以 sh 开头的文件:
$: locate /etc/sh |
注意, 它不只是在 etc 目录下查找并会自动递归子目录进行查找
查找 /usr/share/ 下所有 jpg 文件:
$: locate /usr/share/\*.jpg |
注意要添加*号前面的反斜杠转义, 否则会无法找到
如果想只统计数目可以加上-c参数, -i参数可以忽略大小写进行查找, whereis 的-b, -m, -s同样可以是使用。
which
which本身是 Shell 内建的一个命令, 我们通常使用which来确定是否安装了某个指定的软件, 因为它只从PATH环境变量指定的路径中去搜索命令:
$: which ls |
find
find应该是这几个命令中最强大的了, 它不但可以通过文件类型、 文件名进行查找而且可以根据文件的属性(如文件的时间戳, 文件的权限等)进行搜索。 find命令强大到, 要把它将明白至少需要单独好几节课程才行, 我们这里只介绍一些常用的内容。
在指定目录下搜索指定文件名的文件:
$: find /etc/ -name interfaces |
注意 find 命令的路径是作为第一个参数的, 基本命令格式为 find [path] [option] [action]
与时间相关的命令参数:
参数 | 说明 |
---|---|
-atime |
最后访问时间 |
-ctime |
创建时间 |
-mtime |
最后修改时间 |
下面以-mtime参数举例:
-mtime n
: n 为数字, 表示为在n天之前的” 一天之内“ 修改过的文件• -mtime +n
: 列出在n天之前( 不包含n天本身) 被修改过的文件• -mtime -n
: 列出在n天之内( 包含n天本身) 被修改过的文件• newer file
: file为一个已存在的文件, 列出比file还要新的文件名
文件系统操作及磁盘管理
df
查看磁盘情况
$: df -h #以大小形式显示, 而不是block块形式 |
du
查看文件夹大小
# 只查看1级目录的信息 |
帮助命令
使用type可以判断命令类型, 是内部命令, 还是其他的
- type ls
- type vim
- type ls
help
zsh没有help命令, help命令用来显示shell内建命令的简要帮助信息。
外部命令也可以使用help命令
ls --help |
man
man 手册中一共有这么几个章节
章节数 | 说明 |
---|---|
1 | Standard commands (标准命令) |
2 | System calls (系统调用) |
3 | Library functions (库函数) |
4 | Special devices (设备说明) |
5 | File formats (文件格式) |
6 | Games and toys (游戏和娱乐) |
7 | Miscellaneous (杂项) |
8 | Administrative Commands (管理员命令) |
9 | 其他(Linux特定的), 用来存放内核例行程序的文档。 |
info
如果man命令显示的信息还不够, 可以用info命令。 但zsh没有这个命令
本文作者: GeekerHua
本文链接: https://blog.geekerhua.com/linux_introductory/
文章首发: 同步首发于 语雀 及 GeekerHua的blog
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!