Shell基本命令

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

image-20210704012819851

image-20210704012924963

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
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值