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 手册中一共有这么几个章节

章节数说明
1Standard commands (标准命令)
2System calls (系统调用)
3Library functions (库函数)
4Special devices (设备说明)
5File formats (文件格式)
6Games and toys (游戏和娱乐)
7Miscellaneous (杂项)
8Administrative Commands (管理员命令)
9其他(Linux特定的), 用来存放内核例行程序的文档。

info

如果man命令显示的信息还不够,可以用info命令。但zsh没有这个命令

    原文作者:GeekerHua
    原文地址: https://www.jianshu.com/p/9830f662f064
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞