Shell基本命令
程序员文章站
2022-06-03 11:51:08
...
Shell基本命令
1.查看目录和文件
1.1 显示当前目录:pwd
pwd # 显示当前所在的位置,即工作目录
1.2 改变目录:cd
cd命令是在Linux文件系统的不同部分之间移动的基本工具。当登录系统之后,总是处在用户主目录中。这个目录有一个名字,也就是“路径名”,它是由home/开头,后面跟着登录的用户名。
输入cd命令,后面跟着一个路径名作为参数,就可以直接进入另外一个子目录中去。
举例:
cd /usr/bin # 进入/usr/bin中
cd .. # 返回上一级目录
cd / # 直接进入根目录,即 “/” 目录
cd .. / .. # 直接进入根目录,即 “/” 目录
cd # 回到用户主目录
cd ~ # 回到用户主目录
cd - # 回到上一次访问的目录
在Shell中,“…” 代表当前目录的上一级目录,而 “." 则代表当前目录,”~“ 代表用户主目录,”/“ 代表根目录
1.3 列出目录内容:ls
ls # 查看当前目录下的所有目录和文件
ls -F # 在每个目录后加上/,在可执行文件后加*,在链接文件后加上@
ls -a # 查看当前目录下的所有目录和文件,包括隐藏文件
ls -l # 查看文件的各种属性,可以用ll代替
ls /etc/default/# 查看子目录的内容
1.4 查看文本文件:cat 和 more
cat file # 查看文本文件file
cat file1 file2 # 查看多个文本文件
cat -n file # 查看文本文件,显示行号
cat命令会一次将所有内容全部显示在屏幕上,可以使用more命令来一页一页地显示文件内容
more file # 一页一页地显示文本文件内容
1.5 阅读文件开头和结尾:head 和 tail
head -n 2 file # 显示文件开头2行
head -n 2 file # 显示文件结尾2行
1.6 更好的文本阅读工具:less
用法和more相似,但比more拥有更多功能
1.7 查找文件内容:grep
grep是通过“基础正则表达式"进行搜索的
2.寻找文件:find
举例:
find /usr/bin/ -name zip -print # 在/usr/bin/中查找zip命令
-type
可以指定查找某种类型的文件
参数 | 含义 | 参数 | 含义 |
---|---|---|---|
b | 块设备文件 | f | 普通文件 |
c | 字设备文件 | p | 命名管道 |
d | 目录文件 | l | 符号链接 |
-atime n用来查找最后一次使用在n天前的文件,+n表示大于n,-n表示小于n
-mtime n用来查找最后一次修改在n天前的文件,+n表示大于n,-n表示小于n
例如:
$ find /usr/bin/ -type f -atime +100 -print # 查找100天内没有使用过的命令
/usr/bin/catchsegv
/usr/bin/bzdiff
/usr/bin/gencat
/usr/bin/getconf
/usr/bin/zipgrep
/usr/bin/iconv
...
find . -type f -mtime -1 -print # 表示在当前目录中,查找最近一天内修改过的文件
3.快速定位文件:locate
locate *.doc # 查找系统下.doc文件位置
locate命令自动建立整个文件名数据库,通过检索文件名数据库来确定文件的位置,可以使用updatedb命令立刻生成该数据库文件的最新版本。
4.从终端运行程序
firefox # 启动Firefox浏览器,终端挂起
firefox & # 启动Firefox浏览器,终端不被挂起
5.查找特定程序:whereis
$ whereis find # 查找find的位置
find: /usr/bin/find /usr/share/man/man1/find.1.gz /usr/share/man/man1p/find.1p.gz /usr/share/info/find.info-1.gz /usr/share/info/find.info-2.gz /usr/share/info/find.info.gz
$ whereis -b find # 查找find的位置,只查找二进制文件
find: /usr/bin/find
6.用户及版本信息查看
who
查看当前系统中有哪些人登录,以及他们工作在哪个控制台上
$ who
daniel tty2 2021-07-04 15:13 (tty2)
$ whoami
daniel
uname
用于显示当前系统的版本信息,-a会给出当前操作系统的所有有用信息,-r给出内核版本信息
$ uname
Linux
$ uname -a
Linux localhost.localdomain 4.18.0-305.3.1.el8.x86_64 #1 SMP Tue Jun 1 16:14:33 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
$ uname -r
4.18.0-305.3.1.el8.x86_64
7.官方手册文档:man
$ man ls # 查看ls的官方手册
LS(1) User Commands LS(1)
NAME
ls - list directory contents
SYNOPSIS
ls [OPTION]... [FILE]...
DESCRIPTION
List information about the FILEs (the current directory by default).
Sort entries alphabetically if none of -cftuvSUX nor --sort is speci‐
fied.
Mandatory arguments to long options are mandatory for short options too.
-a, --all
do not ignore entries starting with .
-A, --almost-all
do not list implied . and ..
--author
with -l, print the author of each file
Manual page ls(1) line 1 (press h for help or q to quit)
8.命令简介:whatis 和 apropos
$ whatis uname
uname (1) - print system information
apropos
实际是whatis的反向查找,例如想要查找sreach相关的命令
apropos search
9.使用命令行补全和通配符
tab
键可以补全命令行,当有多个补全匹配时,连续按两次tab
键可以列出所有可补全的选项,这对敲命令行的效率提高还是很明显的。
Shell通配符:
通配符可以大大简化命令的输入,使得批量操作变简单
"*"用于匹配任意长度的字符串,例如想要列出当前目录下所有C++文件:
$ ls *.cpp
"?"和"*"类似,不同之处在于"?"只匹配一个字符
$ ls text?
text1 text2 text3 textA textB textC
"[]"用于匹配所有出现在方括号内的字符,例如
$ ls text[1A]
text1 textA
大简化命令的输入,使得批量操作变简单
"*"用于匹配任意长度的字符串,例如想要列出当前目录下所有C++文件:
$ ls *.cpp
"?"和"*"类似,不同之处在于"?"只匹配一个字符
$ ls text?
text1 text2 text3 textA textB textC
"[]"用于匹配所有出现在方括号内的字符,例如
$ ls text[1A]
text1 textA
上一篇: shell 基本命令
下一篇: 配置bcache模块的实例教程