设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 手机 数据 公司
当前位置: 首页 > 服务器 > 搭建环境 > Windows > 正文

不可或缺的Bash别名(2)

发布时间:2019-08-05 12:36 所属栏目:117 来源:Seth Kenlon
导读:mount 命令过去很简单。只需一个命令,你就可以获得计算机上所有已挂载的文件系统的列表,它经常用于概览连接到工作站有哪些驱动器。在过去看到超过三、四个条目就会令人印象深刻,因为大多数计算机没有那么多的 US

mount 命令过去很简单。只需一个命令,你就可以获得计算机上所有已挂载的文件系统的列表,它经常用于概览连接到工作站有哪些驱动器。在过去看到超过三、四个条目就会令人印象深刻,因为大多数计算机没有那么多的 USB 端口,因此这个结果还是比较好查看的。

现在计算机有点复杂,有 LVM、物理驱动器、网络存储和虚拟文件系统,mount 的结果就很难一目了然:

  1. sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime,seclabel)
  2. proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
  3. devtmpfs on /dev type devtmpfs (rw,nosuid,seclabel,size=8131024k,nr_inodes=2032756,mode=755)
  4. securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
  5. [...]
  6. /dev/nvme0n1p2 on /boot type ext4 (rw,relatime,seclabel)
  7. /dev/nvme0n1p1 on /boot/efi type vfat (rw,relatime,fmask=0077,dmask=0077,codepage=437,iocharset=ascii,shortname=winnt,errors=remount-ro)
  8. [...]
  9. gvfsd-fuse on /run/user/100977/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,relatime,user_id=100977,group_id=100977)
  10. /dev/sda1 on /run/media/seth/pocket type ext4 (rw,nosuid,nodev,relatime,seclabel,uhelper=udisks2)
  11. /dev/sdc1 on /run/media/seth/trip type ext4 (rw,nosuid,nodev,relatime,seclabel,uhelper=udisks2)
  12. binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,relatime)

要解决这个问题,试试这个别名:

  1. alias mnt='mount | awk -F' ' '{ printf "%s\t%s\n",$1,$3; }' | column -t | egrep ^/dev/ | sort'

此别名使用 awk 按列解析 mount 的输出,将输出减少到你可能想要查找的内容(挂载了哪些硬盘驱动器,而不是文件系统):

  1. $ mnt
  2. /dev/mapper/fedora-root  /
  3. /dev/nvme0n1p1           /boot/efi
  4. /dev/nvme0n1p2           /boot
  5. /dev/sda1                /run/media/seth/pocket
  6. /dev/sdc1                /run/media/seth/trip

在 MacOS 上,mount 命令不提供非常详细的输出,因此这个别名可能过度精简了。但是,如果你更喜欢简洁的报告,请尝试以下方法:

  1. alias mnt='mount | grep -E ^/dev | column -t'

结果:

  1. $ mnt
  2. /dev/disk1s1  on  /                (apfs,  local,  journaled)
  3. /dev/disk1s4  on  /private/var/vm  (apfs,  local,  noexec,     journaled,  noatime,  nobrowse)

在你的 grep 历史中查找命令

有时你好不容易弄清楚了如何在终端完成某件事,并觉得自己永远不会忘记你刚学到的东西。然后,一个小时过去之后你就完全忘记了你做了什么。

搜索 Bash 历史记录是每个人不时要做的事情。如果你确切地知道要搜索的内容,可以使用 Ctrl + R 对历史记录进行反向搜索,但有时你无法记住要查找的确切命令。

这是使该任务更容易的别名:

  1. alias gh='history|grep'

这是如何使用的例子:

  1. $ gh bash
  2. 482 cat ~/.bashrc | grep _alias
  3. 498 emacs ~/.bashrc
  4. 530 emacs ~/.bash_aliases
  5. 531 source ~/.bashrc

按修改时间排序

每个星期一都会这样:你坐在你的电脑前开始工作,你打开一个终端,你发现你已经忘记了上周五你在做什么。你需要的是列出最近修改的文件的别名。

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读