linux 下 shell 有用的常识


本文采用问答式,介绍linux下shell常用的知识,希望对大家有帮助

Q、如何查看当前使用什么shell。
A: echo $SHELL 或ps都可以看到。

Q、如何查看当前系统支持哪些shell。
A: chsh --list-shells 或  cat /etc/shells

Q、如何更改当前shell
A:chsh -s /bin/csh; 或编辑/etc/passed. 这些改变不会立即生效,改变的是用户登录shell,需要用户重新登录才能看到shell改变。如果想立即改变shell。 直接运行/bin/csh。
   另外在shell脚本可以指定 #!/bin/bash 。指定解析shell。也可以 /bin/bash xx.sh 显示指定shell解析器运行。

Q、什么是登录shell 好非登录shell
A:登录shell 是通过输入用户名密码登录得到的shell。如ssh或telnet登录进入的shell。非登陆shell如在图形系统下打开控制台。或直接在命令行里输入/bin/csh 之类切换得到shell。属于非登录shell。如果在命令行里输入 /bin/bash --login. 那么这时候得到的就是登录shell
   两者差别是,登录shell会加载一些文件。 首先执行 /etc/profile,然后执行 ~/.bash_ 开头的文件,其次 ~/.profile。退出时候执行 ~/.bash_logout 脚本(如果存在)。
    非登陆shell不会执行上面这些脚本。而是执行 ~/.bashrc。

    一般系统为了保证 ~/.bashrc都会被执行, ~/.bash_profile 中调用 ~/.bashrc
   if [ -f ~/.bashrc ]; then
    . ~/.bashrc
   fi
   如此一来。 ~/.bashrc反而变成保证一致性,变得非常通用而且很重要的初始化地方。

   另外由于~代表各个用户自己,所以为了避免给每个用户修改 ~/.bashrc 文件。由此产生了一个全局所有用户的文件 /etc/bashrc。 在每个用户 ~/.bashrc 文件有这样一句话
   if [ -f /etc/bashrc ]; then
        . /etc/bashrc
   fi
   
   这样就方便了,更改一个文件内容,对登录还是分登录shell,所有用户都能生效。

Q、什么是交互shell和非交互shell
A:非交互Shell是指为执行脚本而fork出来的子Shell。说简单点。就是script脚本里面shell命令是在非交互shell下执行。因为解析这些命令时候。会启动一个/bin/bash 之类解析器去执行。

Q、如何去执行一个shell脚本
A:有两种方式:1是启动一个子shell解析器去执行脚本。就是上面说到的非交互shell。
      ./test.sh 或 /bin/bash test.sh(和sh test.sh等同)
       另一种方式是不启动子shell解析器。在当前shell内执行。
      source test.sh 或 .  test.sh. 这种情况下实际上source和. 是bash的内部指令

Q、如何查看当前是终端还是伪终端
A:使用ps命令。
   在当前机器,如在虚拟机里面输入ps如下。看到是终端类型TTY
   
   
   在ssh或telnet登录的控制 使用ps查看
   

   这里pts 中p= pseudo意思。

   这些终端设备当文件使用。例如你可以使用echo 1 > /dev/tty1  或 echo 2 > /dev/pts/1 直接显示消息到终端上去。可以帮你消息输出到别人控制台上去 ,很有意思。

Q:shell 和进程组,会话的关系
A:在shell在命令行下运行的进程。该进程一般是进程组长,进程ID=进程组ID。该进程的会话组长一般是shell。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值