zoukankan      html  css  js  c++  java
  • Learning_the_bash_Shell_Third_Edition 18/n

    CHAPTER 10|bash Administration

     Installing bash as the Standard Shell

    #

    cor@debian:~/shell/mar17$ cat 3.sh 
    IFS=:
    for d in $PATH;do
        echo checking $d:
        cd $d
        scripts=$(file * 'shell script' |cut -d: -f1)
        for f in $scripts;do
            grep '^' $f /dev/null
        done
    done
    

      

    As we mentioned earlier, if bash is started as sh (because the executable file has been renamed sh or there is a link from sh to bash) its startup behavior will change slightly to mimic the Bourne shell as closely as possible. For login shells it only attempts to read /etc/profile and ~/.profile, ignoring any other startup files like ~/.bash_profile.For interactive shells it won’t read the initialization file ~/.bashrc.

     POSIX (Portable Operating System Interface) standard

    bash is nearly 100% POSIX-compliant in its native mode. If you want strict POSIX adherence, you can either start bash with the --posix option, or set it from within the shell with set -o posix.

     Command-Line Options

    bash has several command-line options that change the behavior of and pass information to the shell. The options fall into two sets: single character options, like we’ve seen in previous chapters of this book, and multicharacter options, which are a relatively recent improvement to UNIX utilities. Table 10-1 lists all of the options

    Option

    Meaning

    -c string

    Commands are read from string, if present. Any arguments after string are interpreted as
    positional parameters, starting with $0.

    -D

    A list of all double-quoted strings preceded by $ is printed on the standard ouput. These are the
    strings that are subject to language translation when the current locale is not C or POSIX. This
    also turns on the -n option.

    -i

    Interactive shell. Ignores signals TERM, INT, and QUIT. With job control in effect, TTIN, TTOU,
    and TSTP are also ignored.

    -l

    Makes bash act as if invoked as a login shell.

    -o option

    Takes the same arguments as set -o.

    -O, +O shopt-option

    shopt-option is one of the shell options accepted by the shopt builtin. If shopt-option
    is present, -O sets the value of that option; +O unsets it. If shopt-option is not supplied,
    the names and values of the shell options accepted by shopt are printed on the standard out-
    put. If the invocation option is +O, the output is displayed in a format that may be reused as
    input.

    -s

    Reads commands from the standard input. If an argument is given to bash, this flag takes pre-
    cedence (i.e., the argument won’t be treated as a script name and standard input will be read).

    -r

    Restricted shell. See the “Restricted Shell” section later in this chapter.

    -v

    Prints shell input lines as they’re read.

    -

    Signals the end of options and disables further option processing. Any options after this are
    treated as filenames and arguments. -- is synonymous with -.

    --debugger

    Arranges for the debugger profile to be executed before the shell starts. Turns on extended
    debugging mode and shell function tracing

    --dump-strings

    Does the same as -D.

    --dump-po-strings

    Does the same as -D but the output is in the GNU gettext po (portable object) file format.

    --help

    Displays a usage message and exits.

    --login

    Makes bash act as if invoked as a login shell. Same as -l.

    --noediting

    Does not use the GNU readline library to read command lines if interactive.

    --noprofile

    Does not read the startup file /etc/profile or any of the personal initialization files.

    --norc

    Does not read the initialization file ~/.bashrc if the shell is interactive. This is on by default if
    the shell is invoked as sh.

    --posix

    Changes the behavior of bash to follow the POSIX guidelines more closely where the default
    operation of bash is different.

    --quiet

    Shows no information on shell startup. This is the default.

    --rcfile file, --init-file file

    Executes commands read from file instead of from the initialization file ~/.bashrc if the
    shell is interactive.

    --verbose

    Equivalent to -v.

    --version

    Shows the version number of this instance of bash and then exits.

    In addition to these, any set option can be used on the command line. Like shell built-ins, using a + instead of - turns an option off.

    Of these options, the most useful are -i (interactive), -r (restricted), -s (read from standard input), -p (privileged), and -m (enable job control). Login shells are usually run with the -i, -s, and -m flags. We’ll look at restricted and privileged modes later in this chapter.

     Environment Customization

    Like the Bourne shell, bash uses the file /etc/profile for system-wide customization.When a user logs in, the shell reads and runs /etc/profile before running the user’s .bash_profile.

     umask

    umask, like the same command in most other shells, lets you specify the default permissions that files have when users create them. It takes the same types of arguments that the chmod command does, i.e., absolute (octal numbers) or symbolic permission values.

    022 is a common umask value. This implies that when a file is created, the “most” permission it could possibly have is 755—which is the usual permission of an executable that a compiler might create. A text editor, on the other hand, might create a file with 666 permission (read and write for everyone), but the umask forces it to be 644 instead.

     ulimit

    Types of Global Customization

     

  • 相关阅读:
    MyBatis学习(三)
    MyBatis学习(二)
    Linux(Ubuntu)下MySQL的安装与配置
    IO 流读取文件时候出现乱码 文件编码格式问题 怎么转换解决方法
    spring boot下MultipartHttpServletRequest如何提高上传文件大小的默认值
    Mybatis 批量插入时得到插入的id(mysql)
    对PDF的操作
    利用nginx进行集群部署
    Spring boot学习笔记之@SpringBootApplication注解
    git的使用命令
  • 原文地址:https://www.cnblogs.com/winditsway/p/14550426.html
Copyright © 2011-2022 走看看