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 : 指定添加行号的方式,主要有两种:
    -b a:表示无论是否为空行,同样列出行号("cat -n"就是这种方式)
    -b t:只列出非空行的编号并列出(默认为这种方式)
-n : 设置行号的样式,主要有三种:
    -n ln:在行号字段最左端显示
    -n rn:在行号字段最右边显示,且不加 0
    -n rz:在行号字段最右边显示,且加 0
-w : 行号字段占用的位数(默认为 6 位)

使用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
-----
$ . ./.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级目录的信息
$ du -h -d 0 ~

帮助命令

使用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没有这个命令

你可能感兴趣的:(Linux命令基础)