April 25, 2017

理解Linux中Shell初始化文件和用户Profiles文件

Linux是一个多用户、实时共享的操作系统,意味着不止一个用户可以登录同一个系统。系统管理员通过任务管理来分配不同用户的权限,比如安装、升级、卸载应用程序,运行编译程序,文件查看、编辑等等。 Linux允许通过两种主要方式来创建用户环境:系统级(全局)和用户级(个人)。一般情况下,Linux系统都会运行基本shell程序,当用户登录成功后shell会在初始化时根据某些文件开创建环境。 Linux中的Shell初始化 当Shell被调用时,会有一些初始化/启动文件被启用,它们的主要作用是为shell本身或用户设定运行环境,包含一些函数、 变量、别名等等。 Shell可以读取以下两种初始化文件: 系统级启动文件 – 包含一些应用于户所有用户的全局配置,一般存在于/etc目录中,如 /etc/profiles 、/etc/bashrc 或者 /etc/bash.bashrc。 用户级启动文件 – 包含一些应用于单用户的配置文件,一般存放在各个用户目录,这些配置可以覆盖系统级全局配置,如.profiles、 .bash_profile、 .bashrc 和 .bash_login. Shell存在三种调用模式: 1. 交互式登录Shell 当用户成功登录系统后调用该Shell,使用/bin/login登录,随后读取/etc/passwd文件。 当启动交互式shell后,将读取/etc/profile文件以及特定的用户文件~/.bash_profile login as: pi pi@pi.raspi.in's password: The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Read more

March 3, 2017

修复树莓派PATH变量

使用lnmp一键工具安装完nmp后,重启进入系统就提示bash command not found 然后试了试service,who等命令也无法使用 只有最基本的系统命令ls,cat等可以用 看来安装lnmp后,我的PATH变量被动了 先临时修改下PATH,便于后面操作 export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:$PATH 然后检查~/.profile,/etc/profile是否存在,存在 检查其中的PATH赋值是否异常 经过排查,发现/etc/profile中的PATH赋值异常,修改之重启OK! 在此分享正确的原始~/.profile和/etc/profile文件 ~/.profile 内容 # ~/.profile: executed by the command interpreter for login shells. # This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login # exists. # see /usr/share/doc/bash/examples/startup-files for examples. # the files are located in the bash-doc package. # the default umask is set in /etc/profile; for setting the umask # for ssh logins, install and configure the libpam-umask package. Read more

March 29, 2016

Linux下查看修改PATH

什么是PATH? 要搞清什么是PATH,应该先搞清什么是环境变量? 在计算机中,如果需要运行一个软件,那么我们就要找到它所在的位置,但是每次运行程序时如果都要进入到相应目录,那么显然是很繁琐的。于是就有了环境变量,环境变量就是一个系统参数,里面记录了一些目录,运行软件的时候,相关的程序将会按照该目录寻找相关文件。 而在Linux中,系统会有一个默认的PATH环境变量,里面记录了系统级的相关命令目录,比如当我们输入ls、cd、pwd等命令时,我们不需要指定它们所在的目录,因为包含这些命令的系统目录已经写入PATH参数,因而方便我们调用。 查看PATH 在linux中,可以使用export命令来查看所有环境变量,如下: pi@raspi:~$ export declare -x HOME="/home/pi" declare -x LANG="en_GB.UTF-8" declare -x LOGNAME="pi" declare -x MAIL="/var/mail/pi" declare -x OLDPWD declare -x PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/home/pi/bin" declare -x PWD="/home/pi" declare -x SHELL="/bin/bash" declare -x SHLVL="1" declare -x SSH_CLIENT="101.135.216.146 28249 22" declare -x SSH_CONNECTION="101.135.216.146 28249 192.168.1.111 22" declare -x SSH_TTY="/dev/pts/1" declare -x TERM="xterm" declare -x USER="pi" 使用echo来查看单独的环境变量 pi@raspi:~$ echo $PATH /bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/home/pi/bin 我们可以看到,以上PATH值包含了一些系统命令的目录,而这些目录都用:隔开。 修改PATH 我们可以使用export命令来添加目录,如下: export PATH=/mydoc:$PATH 以上命令在原有的PATH前添加了/mydoc这个目录,设置完成后的PATH值如下: Read more

© unixetc.com 2012 - 2019
README