- 浏览: 2198400 次
- 性别:
- 来自: 北京
-
文章分类
- 全部博客 (682)
- 软件思想 (7)
- Lucene(修真篇) (17)
- Lucene(仙界篇) (20)
- Lucene(神界篇) (11)
- Solr (48)
- Hadoop (77)
- Spark (38)
- Hbase (26)
- Hive (19)
- Pig (25)
- ELK (64)
- Zookeeper (12)
- JAVA (119)
- Linux (59)
- 多线程 (8)
- Nutch (5)
- JAVA EE (21)
- Oracle (7)
- Python (32)
- Xml (5)
- Gson (1)
- Cygwin (1)
- JavaScript (4)
- MySQL (9)
- Lucene/Solr(转) (5)
- 缓存 (2)
- Github/Git (1)
- 开源爬虫 (1)
- Hadoop运维 (7)
- shell命令 (9)
- 生活感悟 (42)
- shell编程 (23)
- Scala (11)
- MongoDB (3)
- docker (2)
- Nodejs (3)
- Neo4j (5)
- storm (3)
- opencv (1)
最新评论
-
qindongliang1922:
粟谷_sugu 写道不太理解“分词字段存储docvalue是没 ...
浅谈Lucene中的DocValues -
粟谷_sugu:
不太理解“分词字段存储docvalue是没有意义的”,这句话, ...
浅谈Lucene中的DocValues -
yin_bp:
高性能elasticsearch ORM开发库使用文档http ...
为什么说Elasticsearch搜索是近实时的? -
hackWang:
请问博主,有用solr做电商的搜索项目?
Solr中Group和Facet的用法 -
章司nana:
遇到的问题同楼上 为什么会返回null
Lucene4.3开发之第八步之渡劫初期(八)
今天散仙,要说的,是关于linux中的环境变量的使用,环境变量是用来存储有关shell会话和工作环境的信息,它允许在内存中访问存储数据,以便运行在shell上的程序和脚本访问。
在最常用的bash shell里,环境变量共分为二大类,一类是全局变量,另一类是局部变量。
全局变量:不仅对shell会话,可见,而且对所有的shell创建的子进程也可见。
局部变量:只对创建他们的shell可见。
在linux中(散仙这里是centos6.5),使用printenv,查看全局变量:
我们可以采用echo $变量名,来查看具体的环境变量值,注意变量名区分大小写
使用set命令,可以查看,全局变量和局部变量的并集
设置局部环境变量:使用=号赋值,就可以,注意=号左右不要有空格(这是新手容易犯的错误)
如果环境变量的值之间, 有空格,那么需要用单引号或者双引号,引起来。
每个会话shell设置的变量,仅仅在当前的shell里有效,如果开启新的会话,原来的设置会失效,但是我们退出后,又可以正常使用了:
设置全局环境变量我们需要使用export命令,来激活它,这样以来,它就会对所有的shell会话,生效:
卸载一个环境变量我们需要unset命令:
注意,如果是全局变量,卸载只会在当前的shell有效,如果退出当前的shell后,那么这个变量依然有效。
在所有的环境变量里$PATH这个变量,非常重要,它是系统中查找的路径,这说明所有的shell脚本都会在这里面的几个目录下查找,PATH的每个目录都由冒号分隔,你可以通过在PATH变量的末尾,加个冒号来引用新添加的环境变量目录,这一点散仙相信,配置过JAVA系列的环境变量的工程师们都有体会。
那么为什么需要PATH环境变量了,如果有了这个全局的变量,那么我们就可以在任何位置,执行这个脚本了:
假如,我在/root/test/下面有个,a.sh脚本,现在我想在任何位置都直接能够引用到这个脚本,该怎么做,此时,环境变量就该大显身手了,我们只需要把这个/root/test/配置到系统的PATH里面即可:
当登陆一个linux系统时,bash shell依次会从4个不同的地方启动文件里的读取命令,顺序是:
1: /etc/profile
2:$HOME/.bash_profile
3:$HOME/.bash_login
4:$HOME/.profile
根目录下的几个文件以.开头的文件是隐藏的,我们可以使用ls -lFa查看:
除此之外,在/etc/profile.d/下的文件,会作为默认的加载的启动目录,这下面的所有的shell脚本都会被登陆时,激活,利用这个特性,我们可以将我们在系统登陆时,需要加载的脚本配置到这里,散仙在这里就是把JAVA系列有关的所有的HOME单独配置在这里的java.sh下:
另外一个很强大的功能是,通过一个可变数组,给某个变量赋值,记住=号左右不允许有空格出现,取值,使用${mytest[number]}
*号,可以显示所有的值,改变值使用mytest[number]=value即可。
如果想卸载某个值,可以使用unset mytest[number]即可。
最后介绍一个,如何使用命令别名来简化shell命令写法,别名功能类似我们常用的SQL里面的as别名一样,可以给一个很长的表名,做一个简化的别名。
使用alias -p命令,查看系统默认的别名:
当然我们也可以定义自己的别名命令,例如散仙把lx='ls -lFa'可以显示隐藏文件的命令:
alias命令非常好用,是我们简化一长串命令的神器。
如果我们觉得这个命令,比较符合自己的胃口,我们可以在/etc/profile.d/目录下,新建自己的alias.sh脚本,里面定义自己的别名风格,这样以来,就可以在全局的shell会话里起作用了。
在最常用的bash shell里,环境变量共分为二大类,一类是全局变量,另一类是局部变量。
全局变量:不仅对shell会话,可见,而且对所有的shell创建的子进程也可见。
局部变量:只对创建他们的shell可见。
在linux中(散仙这里是centos6.5),使用printenv,查看全局变量:
[root@h1 ~]# printenv HOSTNAME=h1 TERM=linux SHELL=/bin/bash HADOOP_HOME=/home/search/hadoop HISTSIZE=1000 SSH_CLIENT=192.168.46.22 61369 22 SSH_TTY=/dev/pts/0 ANT_HOME=/usr/local/ant USER=root LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lz=01;31:*.xz=01;31:*.bz2=01;31:*.tbz=01;31:*.tbz2=01;31:*.bz=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=01;36:*.au=01;36:*.flac=01;36:*.mid=01;36:*.midi=01;36:*.mka=01;36:*.mp3=01;36:*.mpc=01;36:*.ogg=01;36:*.ra=01;36:*.wav=01;36:*.axa=01;36:*.oga=01;36:*.spx=01;36:*.xspf=01;36: MAVEN_HOME=/usr/local/maven MAIL=/var/spool/mail/root PATH=.:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/jdk/bin:/home/search/hadoop/bin:/home/search/hadoop/sbin:/usr/local/ant/bin:/usr/local/maven/bin:/home/search/hive/bin:/home/search/hive/conf:/root/bin HIVE_HOME=/home/search/hive PWD=/root JAVA_HOME=/usr/local/jdk LANG=zh_CN.UTF-8 HADOOP_CONF_DIR=/home/search/hadoop/etc/hadoop/ HISTCONTROL=ignoredups SHLVL=1 HOME=/root LOGNAME=root CLASSPATH=.:.::/usr/local/jdk/lib:/usr/local/jdk/jre/lib:/home/search/hadoop/lib:/usr/local/ant/lib:/usr/local/maven/lib:/home/search/hive/lib SSH_CONNECTION=192.168.46.22 61369 192.168.46.32 22 LESSOPEN=|/usr/bin/lesspipe.sh %s G_BROKEN_FILENAMES=1 _=/usr/bin/printenv [root@h1 ~]#
我们可以采用echo $变量名,来查看具体的环境变量值,注意变量名区分大小写
[root@h1 ~]# echo $HIVE_HOME /home/search/hive [root@h1 ~]# echo $HADOOP_HOME /home/search/hadoop [root@h1 ~]# echo $JAVA_HOME /usr/local/jdk [root@h1 ~]# echo $java_home [root@h1 ~]#
使用set命令,可以查看,全局变量和局部变量的并集
[root@h1 ~]# set ANT_HOME=/usr/local/ant BASH=/bin/bash BASHOPTS=checkwinsize:cmdhist:expand_aliases:extquote:force_fignore:hostcomplete:interactive_comments:login_shell:progcomp:promptvars:sourcepath BASH_ALIASES=() BASH_ARGC=() BASH_ARGV=() BASH_CMDS=() BASH_LINENO=() BASH_SOURCE=() BASH_VERSINFO=([0]="4" [1]="1" [2]="2" [3]="1" [4]="release" [5]="x86_64-redhat-linux-gnu") BASH_VERSION='4.1.2(1)-release' CLASSPATH=.:.::/usr/local/jdk/lib:/usr/local/jdk/jre/lib:/home/search/hadoop/lib:/usr/local/ant/lib:/usr/local/maven/lib:/home/search/hive/lib COLORS=/etc/DIR_COLORS COLUMNS=176 DIRSTACK=() EUID=0 GROUPS=() G_BROKEN_FILENAMES=1 HADOOP_CONF_DIR=/home/search/hadoop/etc/hadoop/ HADOOP_HOME=/home/search/hadoop HISTCONTROL=ignoredups HISTFILE=/root/.bash_history HISTFILESIZE=1000 HISTSIZE=1000 HIVE_HOME=/home/search/hive HOME=/root HOSTNAME=h1 HOSTTYPE=x86_64 ID=0 IFS=$' \t\n' JAVA_HOME=/usr/local/jdk LANG=zh_CN.UTF-8 LESSOPEN='|/usr/bin/lesspipe.sh %s' LINES=56 LOGNAME=root LS_COLORS='rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lz=01;31:*.xz=01;31:*.bz2=01;31:*.tbz=01;31:*.tbz2=01;31:*.bz=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=01;36:*.au=01;36:*.flac=01;36:*.mid=01;36:*.midi=01;36:*.mka=01;36:*.mp3=01;36:*.mpc=01;36:*.ogg=01;36:*.ra=01;36:*.wav=01;36:*.axa=01;36:*.oga=01;36:*.spx=01;36:*.xspf=01;36:' MACHTYPE=x86_64-redhat-linux-gnu MAIL=/var/spool/mail/root MAILCHECK=60 MAVEN_HOME=/usr/local/maven OPTERR=1 OPTIND=1 OSTYPE=linux-gnu PATH=.:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/jdk/bin:/home/search/hadoop/bin:/home/search/hadoop/sbin:/usr/local/ant/bin:/usr/local/maven/bin:/home/search/hive/bin:/home/search/hive/conf:/root/bin PIPESTATUS=([0]="0") PPID=1129 PS1='[\u@\h \W]\$ ' PS2='> ' PS4='+ ' PWD=/root SHELL=/bin/bash SHELLOPTS=braceexpand:emacs:hashall:histexpand:history:interactive-comments:monitor SHLVL=1 SSH_CLIENT='192.168.46.22 61369 22' SSH_CONNECTION='192.168.46.22 61369 192.168.46.32 22' SSH_TTY=/dev/pts/0 TERM=linux TMOUT=3600 UID=0 USER=root _=clear colors=/etc/DIR_COLORS [root@h1 ~]#
设置局部环境变量:使用=号赋值,就可以,注意=号左右不要有空格(这是新手容易犯的错误)
[root@h1 ~]# test=qindongliang [root@h1 ~]# echo $test qindongliang [root@h1 ~]# test = abc -bash: test: =: unary operator expected [root@h1 ~]#
如果环境变量的值之间, 有空格,那么需要用单引号或者双引号,引起来。
[root@h1 ~]# name=a yellow dog -bash: yellow: command not found [root@h1 ~]# name='a yellow dog' [root@h1 ~]# echo $name a yellow dog [root@h1 ~]# name2="a red dog" [root@h1 ~]# echo $name2 a red dog [root@h1 ~]#
每个会话shell设置的变量,仅仅在当前的shell里有效,如果开启新的会话,原来的设置会失效,但是我们退出后,又可以正常使用了:
[root@h1 ~]# name=a yellow dog -bash: yellow: command not found [root@h1 ~]# name='a yellow dog' [root@h1 ~]# echo $name a yellow dog [root@h1 ~]# name2="a red dog" [root@h1 ~]# echo $name2 a red dog [root@h1 ~]# bash [root@h1 ~]# echo $name [root@h1 ~]# exit exit [root@h1 ~]# echo $name2 a red dog [root@h1 ~]#
设置全局环境变量我们需要使用export命令,来激活它,这样以来,它就会对所有的shell会话,生效:
[root@h1 ~]# color=red [root@h1 ~]# echo $color red [root@h1 ~]# exp expand export expr [root@h1 ~]# exp expand export expr [root@h1 ~]# export color [root@h1 ~]# echo $color red [root@h1 ~]# bash [root@h1 ~]# echo $color red [root@h1 ~]# bash [root@h1 ~]# echo $color red [root@h1 ~]#
卸载一个环境变量我们需要unset命令:
[root@h1 ~]# test=abc [root@h1 ~]# echo $test abc [root@h1 ~]# unset test [root@h1 ~]# echo $test [root@h1 ~]#
注意,如果是全局变量,卸载只会在当前的shell有效,如果退出当前的shell后,那么这个变量依然有效。
在所有的环境变量里$PATH这个变量,非常重要,它是系统中查找的路径,这说明所有的shell脚本都会在这里面的几个目录下查找,PATH的每个目录都由冒号分隔,你可以通过在PATH变量的末尾,加个冒号来引用新添加的环境变量目录,这一点散仙相信,配置过JAVA系列的环境变量的工程师们都有体会。
[root@h1 ~]# echo $PATH .:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/jdk/bin:/home/search/hadoop/bin:/home/search/hadoop/sbin:/usr/local/ant/bin:/usr/local/maven/bin:/home/search/hive/bin:/home/search/hive/conf:/root/bin [root@h1 ~]#
那么为什么需要PATH环境变量了,如果有了这个全局的变量,那么我们就可以在任何位置,执行这个脚本了:
假如,我在/root/test/下面有个,a.sh脚本,现在我想在任何位置都直接能够引用到这个脚本,该怎么做,此时,环境变量就该大显身手了,我们只需要把这个/root/test/配置到系统的PATH里面即可:
-rw-r--r-- 1 root root 23 8月 5 01:44 a.sh [root@h1 test]# echo $PATH .:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/jdk/bin:/home/search/hadoop/bin:/home/search/hadoop/sbin:/usr/local/ant/bin:/usr/local/maven/bin:/home/search/hive/bin:/home/search/hive/conf:/root/bin:/home/search/test [root@h1 test]# PATH=$PATH:/root/t test/ tsethadoop/ [root@h1 test]# PATH=$PATH:/root/test/ [root@h1 test]# echo $PATH .:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/jdk/bin:/home/search/hadoop/bin:/home/search/hadoop/sbin:/usr/local/ant/bin:/usr/local/maven/bin:/home/search/hive/bin:/home/search/hive/conf:/root/bin:/home/search/test:/root/test/ [root@h1 test]# sh a.sh hellow World! [root@h1 test]# cd /etc/ [root@h1 etc]# pwd /etc [root@h1 etc]# sh a.sh hellow World! [root@h1 etc]# cd /home/ [root@h1 home]# sh a.sh hellow World! [root@h1 home]#
当登陆一个linux系统时,bash shell依次会从4个不同的地方启动文件里的读取命令,顺序是:
1: /etc/profile
2:$HOME/.bash_profile
3:$HOME/.bash_login
4:$HOME/.profile
根目录下的几个文件以.开头的文件是隐藏的,我们可以使用ls -lFa查看:
[root@h1 ~]# ls -alF 总用量 328528 dr-xr-x---. 12 root root 4096 8月 5 01:44 ./ dr-xr-xr-x. 22 root root 4096 8月 5 01:12 ../ -rw-r--r-- 1 root root 143775368 7月 28 19:30 abc1.txt -rw-------. 1 root root 1087 6月 13 19:06 anaconda-ks.cfg -rw-------. 1 root root 10215 8月 5 01:32 .bash_history -rw-r--r--. 1 root root 18 5月 20 2009 .bash_logout -rw-r--r--. 1 root root 176 5月 20 2009 .bash_profile -rw-r--r--. 1 root root 119 6月 16 21:12 .bashrc -rw-r--r-- 1 root root 52 7月 31 21:29 count2.txt -rw-r--r-- 1 root root 52 7月 31 19:46 count.txt -rw-r--r--. 1 root root 100 9月 23 2004 .cshrc -rw-r--r--. 1 root root 96183833 6月 9 17:27 hadoop-2.2.0.tar.gz -rw-r--r-- 1 root root 1 7月 31 21:25 hh.txt drwxr-xr-x 3 root root 4096 7月 29 04:47 hivesrc/ -rw-r--r--. 1 root root 2111 6月 16 13:10 initserver.sh -rw-r--r--. 1 root root 7995 6月 13 19:06 install.log -rw-r--r--. 1 root root 3384 6月 13 19:06 install.log.syslog drwxr-xr-x 2 root root 4096 7月 31 21:19 intest/ lrwxrwxrwx 1 root root 12 7月 31 21:45 jdk -> jdk1.7.0_25// drwxr-xr-x. 8 search 143 4096 6月 6 2013 jdk1.7.0_25/ -rwx------. 1 root root 96316511 11月 20 2013 jdk-7u25-linux-x64.gz* drwxr-xr-x 3 root root 4096 7月 31 21:33 li/ drwxr-xr-x 3 root root 4096 7月 9 04:08 lo/ drwxr-xr-x 3 root root 4096 7月 9 04:08 login/ drwxr-xr-x 3 root root 4096 7月 29 04:11 .m2/ -rw------- 1 root root 727 7月 29 01:44 .mysql_history -rw-r--r-- 1 root root 1048 6月 19 03:31 setlimit.sh drwx------. 2 root root 4096 6月 16 21:00 .ssh/ -rw-r--r--. 1 root root 129 12月 4 2004 .tcshrc drwxr-xr-x 2 root root 4096 8月 5 01:44 test/ drwxr-xr-x 3 root root 4096 6月 20 02:51 tsethadoop/ -rw------- 1
除此之外,在/etc/profile.d/下的文件,会作为默认的加载的启动目录,这下面的所有的shell脚本都会被登陆时,激活,利用这个特性,我们可以将我们在系统登陆时,需要加载的脚本配置到这里,散仙在这里就是把JAVA系列有关的所有的HOME单独配置在这里的java.sh下:
export PATH=.:$PATH export JAVA_HOME="/usr/local/jdk" export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib export PATH=$PATH:$JAVA_HOME/bin export HADOOP_HOME=/home/search/hadoop export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop/ export CLASSPATH=.:$CLASSPATH:$HADOOP_HOME/lib export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin export ANT_HOME=/usr/local/ant export CLASSPATH=$CLASSPATH:$ANT_HOME/lib export PATH=$PATH:$ANT_HOME/bin export MAVEN_HOME="/usr/local/maven" export CLASSPATH=$CLASSPATH:$MAVEN_HOME/lib export PATH=$PATH:$MAVEN_HOME/bin export HIVE_HOME=/home/search/hive export CLASSPATH=$CLASSPATH:$HIVE_HOME/lib export PATH=$PATH:$HIVE_HOME/bin:$HIVE_HOME/conf
[root@h1 profile.d]# cd /etc/profile.d/ [root@h1 profile.d]# ll 总用量 48 -rw-r--r--. 1 root root 1127 10月 17 2013 colorls.csh -rw-r--r--. 1 root root 1143 10月 17 2013 colorls.sh -rw-r--r--. 1 root root 192 8月 27 2013 glib2.csh -rw-r--r--. 1 root root 192 8月 27 2013 glib2.sh -rwxr-xr-x 1 root root 694 7月 29 19:13 java.sh -rw-r--r--. 1 root root 1741 11月 23 2013 lang.csh -rw-r--r--. 1 root root 2706 11月 23 2013 lang.sh -rw-r--r--. 1 root root 122 2月 7 2007 less.csh -rw-r--r--. 1 root root 108 2月 7 2007 less.sh -rw-r--r--. 1 root root 97 4月 5 2012 vim.csh -rw-r--r--. 1 root root 269 4月 5 2012 vim.sh -rw-r--r--. 1 root root 169 5月 20 2009 which2.sh [root@h1 profile.d]# ls -laF 总用量 56 drwxr-xr-x. 2 root root 4096 8月 5 01:58 ./ drwxr-xr-x. 61 root root 4096 8月 5 01:12 ../ -rw-r--r--. 1 root root 1127 10月 17 2013 colorls.csh -rw-r--r--. 1 root root 1143 10月 17 2013 colorls.sh -rw-r--r--. 1 root root 192 8月 27 2013 glib2.csh -rw-r--r--. 1 root root 192 8月 27 2013 glib2.sh -rwxr-xr-x 1 root root 694 7月 29 19:13 java.sh* -rw-r--r--. 1 root root 1741 11月 23 2013 lang.csh -rw-r--r--. 1 root root 2706 11月 23 2013 lang.sh -rw-r--r--. 1 root root 122 2月 7 2007 less.csh -rw-r--r--. 1 root root 108 2月 7 2007 less.sh -rw-r--r--. 1 root root 97 4月 5 2012 vim.csh -rw-r--r--. 1 root root 269 4月 5 2012 vim.sh -rw-r--r--. 1 root root 169 5月 20 2009 which2.sh [root@h1 profile.d]#
另外一个很强大的功能是,通过一个可变数组,给某个变量赋值,记住=号左右不允许有空格出现,取值,使用${mytest[number]}
[root@h1 ~]# mytest=(one two three four) [root@h1 ~]# echo $mytest one [root@h1 ~]# echo ${mytest[0]} one [root@h1 ~]# echo ${mytest[1]} two [root@h1 ~]# echo ${mytest[3]} four [root@h1 ~]# echo ${mytest[*]} one two three four [root@h1 ~]#
*号,可以显示所有的值,改变值使用mytest[number]=value即可。
如果想卸载某个值,可以使用unset mytest[number]即可。
最后介绍一个,如何使用命令别名来简化shell命令写法,别名功能类似我们常用的SQL里面的as别名一样,可以给一个很长的表名,做一个简化的别名。
使用alias -p命令,查看系统默认的别名:
[root@h1 ~]# alias -p alias cp='cp -f' alias l.='ls -d .* --color=auto' alias ll='ls -l --color=auto' alias ls='ls --color=auto' alias mv='mv -f' alias rm='rm -f' alias vi='vim' alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde' [root@h1 ~]#
当然我们也可以定义自己的别名命令,例如散仙把lx='ls -lFa'可以显示隐藏文件的命令:
[root@h1 ~]# alias lx='ls -iFl' [root@h1 ~]# lx 总用量 328468 655837 -rw-r--r-- 1 root root 143775368 7月 28 19:30 abc1.txt 659103 -rw-------. 1 root root 1087 6月 13 19:06 anaconda-ks.cfg 663819 -rw-r--r-- 1 root root 52 7月 31 21:29 count2.txt 674329 -rw-r--r-- 1 root root 52 7月 31 19:46 count.txt 660638 -rw-r--r--. 1 root root 96183833 6月 9 17:27 hadoop-2.2.0.tar.gz 663822 -rw-r--r-- 1 root root 1 7月 31 21:25 hh.txt 663837 drwxr-xr-x 3 root root 4096 7月 29 04:47 hivesrc/ 660644 -rw-r--r--. 1 root root 2111 6月 16 13:10 initserver.sh 654083 -rw-r--r--. 1 root root 7995 6月 13 19:06 install.log 654084 -rw-r--r--. 1 root root 3384 6月 13 19:06 install.log.syslog 785488 drwxr-xr-x 2 root root 4096 7月 31 21:19 intest/ 674328 lrwxrwxrwx 1 root root 12 7月 31 21:45 jdk -> jdk1.7.0_25// 659106 drwxr-xr-x. 8 search 143 4096 6月 6 2013 jdk1.7.0_25/ 659105 -rwx------. 1 root root 96316511 11月 20 2013 jdk-7u25-linux-x64.gz* 796184 drwxr-xr-x 3 root root 4096 7月 31 21:33 li/ 796042 drwxr-xr-x 3 root root 4096 7月 9 04:08 lo/ 663800 drwxr-xr-x 3 root root 4096 7月 9 04:08 login/ 663149 -rw-r--r-- 1 root root 1048 6月 19 03:31 setlimit.sh 674331 drwxr-xr-x 2 root root 4096 8月 5 01:44 test/ 663148 drwxr-xr-x 3 root root 4096 6月 20 02:51 tsethadoop/
alias命令非常好用,是我们简化一长串命令的神器。
如果我们觉得这个命令,比较符合自己的胃口,我们可以在/etc/profile.d/目录下,新建自己的alias.sh脚本,里面定义自己的别名风格,这样以来,就可以在全局的shell会话里起作用了。
发表评论
-
如何在shell中curl一个带变量的post请求
2016-11-04 14:24 13782有时候,我们想在一个shell中,执行一段脚本,循环post一 ... -
跟散仙学shell命令(八)
2014-08-06 18:49 2153本篇是散仙shell命令篇的最后一篇博客(后阶段会写shell ... -
跟散仙学shell命令(七)
2014-08-05 19:52 1733本篇主要写关于Linux的文件系统的管理,在使用linux时, ... -
跟散仙学shell命令(六)
2014-08-05 17:58 1851继上篇散仙写的Linux下环境变量的配置与使用,本篇散仙要写的 ... -
跟散仙学shell命令(四)
2014-08-01 21:46 1283本篇主要讲述命令如下 ... -
跟散仙学shell命令(三)
2014-08-01 21:17 1863本篇散仙主要讲一些,linux进程的管理,磁盘信息统计,CPU ... -
跟散仙学shell命令(二)
2014-08-01 20:31 1931(1)rm删除命令,删除文件或目录 rm -rf source ... -
跟散仙学shell命令(一)
2014-07-31 13:51 3236linux系统的重要性不言而喻了,好多项目都要部署到linux ...
相关推荐
实验流程包括编写引导程序、底层功能实现(如清屏、加载用户程序等)、C代码实现(包括shell界面、用户程序清单、帮助文档等)、内核汇编代码集成,以及对实验二用户程序的适应性修改,使其能在新操作系统环境下运行...
基于改进粒子群算法的DG储能选址定容优化模型:解决电力系统时序性问题的可靠程序解决方案,基于改进粒子群算法的DG储能选址定容模型优化解决电力系统问题,DG储能选址定容模型matlab 程序采用改进粒子群算法,考虑时序性得到分布式和储能的选址定容模型,程序运行可靠 这段程序是一个改进的粒子群算法,主要用于解决电力系统中的优化问题。下面我将对程序进行详细分析。 首先,程序开始时加载了一些数据文件,包括gfjl、fljl、fhjl1、cjgs和fhbl。这些文件可能包含了电力系统的各种参数和数据。 接下来是一些参数的设置,包括三种蓄电池的参数矩阵、迭代次数、种群大小、速度更新参数、惯性权重、储能动作策略和限制条件等。 然后,程序进行了一些初始化操作,包括初始化种群、速度和适应度等。 接下来是主要的迭代过程。程序使用粒子群算法的思想,通过更新粒子的位置和速度来寻找最优解。在每次迭代中,程序计算了每个粒子的适应度,并更新个体最佳位置和全局最佳位置。 在每次迭代中,程序还进行了一些额外的计算,如潮流计算、储能约束等。这些计算可能涉及到电力系统的潮流计算、功率平衡等知识点。 最后,程序输
数学建模相关主题资源2
内容概要:本文详细介绍了一系列用于科学研究、工程项目和技术开发中至关重要的实验程序编写与文档报告撰写的资源和工具。从代码托管平台(GitHub/GitLab/Kaggle/CodeOcean)到云端计算环境(Colab),以及多种类型的编辑器(LaTeX/Microsoft Word/Overleaf/Typora),还有涵盖整个研究周期的各种辅助工具:如可视化工具(Tableau)、数据分析平台(R/Pandas)、项目管理工具(Trello/Jira)、数据管理和伦理审核支持(Figshare/IRB等),最后提供了典型报告的具体结构指导及其范本实例链接(arXiv/PubMed)。这为实验流程中的各个环节提供了系统的解决方案,极大地提高了工作的效率。 适合人群:高校学生、科研工作者、工程技术人员以及从事学术写作的人员,无论是新手入门还是有一定经验的人士都能从中受益。 使用场景及目标:帮助读者高效地准备并开展实验研究活动;促进团队间协作交流;规范研究报告的形式;提高对所收集资料的安全性和隐私保护意识;确保遵循国际公认的伦理准则进行实验。
四轮毂驱动电动汽车稳定性控制策略:基于滑模与模糊神经网络的转矩分配与仿真研究,四轮毂驱动电动汽车稳定性控制:基于滑模与模糊神经网络的转矩分配策略及联合仿真验证,四轮毂驱动电动汽车稳定性控制,分布式驱动转矩分配。 上层基于滑模,模糊神经网络控制器决策横摆力矩,下层基于动态载荷分配,最优分配,平均分配均可做。 simulink与carsim联合仿真。 ,四轮毂驱动;电动汽车稳定性控制;分布式驱动;转矩分配;滑模控制;模糊神经网络控制器;横摆力矩;动态载荷分配;最优分配;平均分配;Simulink仿真;Carsim仿真,四驱电动稳定性控制:滑模与模糊神经网络决策的转矩分配研究
本资源提供了一份详细的PyCharm安装教程,涵盖下载、安装、配置、激活及使用步骤,适合新手快速搭建Python开发环境。
毕业设计
原版宋体.ttf,原版宋体安装文件,安装方式,直接右键安装。
利用Xilinx FPGA内嵌的软核处理器MicroBlaze,加上自主编写的AXI_IIC控制器,实现对IMX327传感器IIC总线的控制,同时辅以UART调试串口,实现系统状态的实时监控与调试。
在 GEE(Google Earth Engine)中,XEE 包是一个用于处理和分析地理空间数据的工具。以下是对 GEE 中 XEE 包的具体介绍: 主要特性 地理数据处理:提供强大的函数和工具,用于处理遥感影像和其他地理空间数据。 高效计算:利用云计算能力,支持大规模数据集的快速处理。 可视化:内置可视化工具,方便用户查看和分析数据。 集成性:可以与其他 GEE API 和工具无缝集成,支持多种数据源。 适用场景 环境监测:用于监测森林砍伐、城市扩展、水体变化等环境问题。 农业分析:分析作物生长、土地利用变化等农业相关数据。 气候研究:研究气候变化对生态系统和人类活动的影响。
毕业设计
整个文件的代码
名字微控制器_STM32_DFU_引导加载程序_dapboo_1740989527.zip
详细介绍及样例数据:https://blog.csdn.net/T0620514/article/details/145991332
anaconda配置pytorch环境
立体仓库控制组态王6.55与三菱PLC联机仿真程序:视频教程与IO表接线图CAD详解,9仓位立体仓库控制系统优化方案:组态王6.55与三菱PLC联机仿真程序视频教程及IO表接线图CAD详解,9仓位立体仓库控制组态王6.55和三菱PLC联机仿真程序+视频+带io表接线图CAD ,关键词:立体仓库;控制组态王6.55;三菱PLC;联机仿真程序;视频;io表接线图;CAD,立体仓库控制组态王与三菱PLC联机仿真程序资源包
基于Maxwwell设计的经典外转子永磁同步电机案例:直流母线24V,大功率与高效率驱动设计,基于Maxwell设计的经典永磁同步电机案例:200W功率,外转子结构,直流母线电压与电机参数详解,基于maxwwell设计的经典200W,2200RPM 外转子,直流母线24V,42极36槽,定子外径81.5 轴向长度15 ,0.86Nm, 永磁同步电机(PMSM)设计案例,该案例可用于生产,或者学习用 ,经典设计案例; 200W; 2200RPM外转子; 直流母线24V; 42极36槽; 定子外径81.5; 轴向长度15; 永磁同步电机(PMSM); 生产学习用。,经典200W永磁同步电机设计案例:Maxwell外转子,高效率2200RPM直流母线系统
C# Modbus RTU协议主站设计工程源码详解:支持多从站访问与多线程实现,带注释开源dll文件,C# Modbus RTU协议主站设计工程源码解析:多线程实现访问多个从站功能的开源dll文件,C# Modbus RTU协议主站设计工程源码带注释,开源dll文件,支持访问多个从站,多线程实现 ,C#; Modbus RTU协议; 主站设计; 工程源码; 注释; 开源dll; 多从站访问; 多线程实现,《C# Modbus RTU主站源码:多线程支持访问多从站开源DLL文件详解》
MATLAB Simulink下的四旋翼无人机PID控制仿真模型研究,MATLAB Simulink下的四旋翼无人机PID控制仿真模型研究,MATLAB Simulink 四旋翼仿真模型 四轴无人机PID控制 ,MATLAB; Simulink; 四旋翼仿真模型; 四轴无人机; PID控制,MATLAB Simulink四旋翼仿真模型中四轴无人机的PID控制研究