linux学习笔记_7_shell基础

shell简介

shell从系统层面来讲,位于内核之上,与应用程序处于同一个层次,是用户操作内核的接口。

第一个流行的shell是由Stephen R. Bourne发展出来的,为了纪念他成为Bourne shell,简称sh。目前linux常用的bash,全称为Bourne Again SHell,是Bourne shell的加强版。

另一个语法类似C语言的shell由伯克利大学的Bill Joy设计的C shell,简称csh。学术界sun使用较多,所以csh很重要且流传很广。

查看可用shells

合法shells均被写入/etc/shells。对于manjaro系统使用cat命令显示如下:

$ cat /etc/shells
# Pathnames of valid login shells.
# See shells(5) for details.

/bin/sh
/bin/bash
/bin/zsh
/usr/bin/zsh
/usr/bin/git-shell

每个用户登录以后得到的shell可在文件/etc/passwd中查看。

$ cat /etc/passwd                            
root:x:0:0::/root:/bin/zsh

这里节选passwd部分内容,可知root账户使用的zsh

shells实践(zsh)

zsh功能

  • 历史命令。所有执行过的均被实时记录自爱~/.zsh_history文件里面。
  • 命令与文件补全。使用[Tab]可补全命令或文件名。
  • 命令别名设置。alias ,例如
    alias lm="ls -al"执行lm等同于ls -al。不过,这样只在当前有效,退出,
    重开一个命令窗口都会失效,永久有效需要在~/.zshrc文件内写入命令。
  • 任务管理,前台,后台控制。
  • 程序化脚本。即,把连续执行的命令组织在一个文件里面。
  • 通配符。使用通配符辅助高效工作。

查看命令类型

type 命令介绍

$ type -S
-S  -- show steps in the resolution of symlinks
-a  -- print all occurrences in path #在检索路径PATH中查询到的命令都显示出来
-f  -- output contents of functions
-m  -- treat the arguments as patterns
-p  -- always do a path search
-s  -- print symlink free path as well
-w  -- print command type #展示命令类型

type实例

# 查看所有查询结果
$ type -a ls
ls is an alias for ls --color=tty
ls is /usr/bin/ls
# 查看ls类型
$ type -w ls
ls: alias#
$ type -w cd
cd: builtin

命令编辑相关技巧

  • 命令太长 键入并直接回车,中间无其他字符。
$ sudo        
> nvidia-smi
  • [ctrl] + u 删除所有
  • [ctrl] + k从当前位置向后删除
  • [ctrl] + a 定位到行首,[ctrl] + e定位到行尾

参考

《鸟哥的linux私房菜》

原文地址:https://www.cnblogs.com/lif323/p/10920258.html