linux的bashrc脚本编写

linux的bashrc脚本编写

   

   最近整理以前的笔记时候,翻到这点记录,里面的内容是实习时师父教我的,可以说都是师父的干货,分享一点点。

   linux的profile和bashrc文件通常被用来配置用户自己的个性化设置或者开发环境。

   login shell代表用户登入, 比如使用 “su -“ 命令, 或者用 ssh 连接到某一个服务器上, 都会使用该用户默认 shell 启动 login shell 模式。该模式下的 shell 会去自动执行 /etc/profile 和 ~/.profile 文件, 但不会执行任何的bashrc 文件, 所以一般在/etc/profile 或者 ~/.profile 里我们需要手动去 source bashrc 文件.

   而 no-login shell 的情况是我们在终端下直接输入 bash 或者 bash -c “CMD” 来启动的 shell。该模式下是不会自动去运行任何的 profile 文件。

  而为了方便开发,配置自己的开发环境很重要,而师父当时教的就是如何实现自己的bashrc脚本,主要是为了启动终端时,便可以加载自己创建的版本的docker。

具体做法:将自己的环境配置,指令等单独写一个文件: .bash_name,这个文件要放在$HOME目录中,然后在$HOME/.bashrc中引用这个文件。 

在$HOME/.bashrc中加入如下

if [ -f "$HOME/.bash_name" ]; then

      . "$HOME/.bash_name"

fi


以下是具体的bashrc文件中的内容(主要是关于启动docker的,这里的docker镜像是基于自己的开发环境创建的)


function docker_open(){
    #$1:docker image
    docker run --rm --name=mania -it --net=host --privileged -v $HOME:$HOME -w $HOME $1 bash
}


function docker_open_normal(){
        docker run --rm --name=$2 -it --net=host --privileged -v $HOME:$HOME -w $HOME  $1 sh -c "useradd $2 -u $(id -u $2) -m -s /bin/bash 2>/dev/null && echo $2:Power123 | chpasswd && chmod +x /etc/sudoers && echo '$2    ALL=(ALL:ALL) ALL' >> /etc/sudoers && chmod -x /etc/sudoers && hostname docker && su $2 && bash"
}


function docker_open_fast(){
        user=$(id -n -u)
        echo $user
        docker rm -f $user
        docker_open_normal ubuntu:develop $user

}

docker run -t -i -v $HOME ubuntu:develop /bin/bash

ssh -i ~/.ssh/pmsa_ssh root@IP -p 2222


ssh  -p 2222 root@IP 'mkdir -p .ssh && chmod 700 .ssh/authorized_keys && chmod 700 .ssh && chmod 700 /root && cat >> .ssh/authorized_keys' < ~/.ssh/pmsa_ssh.pub  

关于生成密钥对(公钥和私钥,这里私钥用户加密,公钥用于解密):
           在linux上执行ssh-keygen,会生成基于rsa算法的密钥对。 执行这个命令后,

           第一步会让你输入密钥文件名,默认为id_rsa(并且默认放在$HOME/.ssh/文件下),我们这里输入./..ssh/pmsa_ssh,表示将在$HOME/.ssh/文件下生成pmsa_ssh密钥文件。

当然你也可以直接一行指令启动:docker run -t -i -v $HOME:$HOME -w $HOME ubuntu:develop /bin/bash 

但如果考虑敏捷开发,写自己的bashrc脚本是很有实用意义的,以上只是一些皮毛,当时只记下这么多,可以去师父的博客中,看完整的脚本。

师父的博客: https://blog.csdn.net/yyw794/article/details/73698445

猜你喜欢

转载自blog.csdn.net/zcyzsy/article/details/77454247