不加./就能运行当前目录下的某个脚本(csh脚本)
-
- 帖子: 22
- 注册时间: 2008-02-22 22:17
- 联系:
不加./就能运行当前目录下的某个脚本(csh脚本)
我的系统是ubuntu8.04,默认shell是bash,出于需要也安装了csh,tcsh。我需要运行当前目录下csh脚本时不添加./就能运行!(即在终端中cd到脚本所在目录,然后输入脚本名称就能运行脚本,而不是输入./脚本名称)
注:
实验室师兄们已经解决了此问题,但由于他们忘记了处理办法,而且我们所用系统不同(他们用的是scientific linux)。所以只有求助大家了!
QQ:156128352
解决方案:
10楼兄弟提供—— 用bash,写到~/.bashrc里;用csh,写到~/.cshrc里。
写的内容是:
代码:
.bashrc: export PATH=".:$PATH"
.cshrc: setenv PATH ".:$PATH"
source一下,或者重新打开term。你的输出说明根本没有完成添加路径的操作。
附:我解决问题所用的从网络上搜到的参考资料
在 Ubuntu 系统中有两种设置环境变量 PATH 的方法。第一种适用于为单一用户设置 PATH,第二种是为全局设置 PATH。
第一种方法:
在用户主目录下有一个 .bashrc 文件,可以在此文件中加入 PATH 的设置如下:
export PATH=”$PATH:/your path1/:/your path2/…..”
注意:每一个 path 之间要用 “:“ 分隔。
注销重启 X 就可以了。
第二种方法:
在 /etc/profile中增加。
PATH="$PATH:/home/zhengb66/bin"
export PATH
如果要使得计时生效,使用 source 命令
source .bashrc
注:
实验室师兄们已经解决了此问题,但由于他们忘记了处理办法,而且我们所用系统不同(他们用的是scientific linux)。所以只有求助大家了!
QQ:156128352
解决方案:
10楼兄弟提供—— 用bash,写到~/.bashrc里;用csh,写到~/.cshrc里。
写的内容是:
代码:
.bashrc: export PATH=".:$PATH"
.cshrc: setenv PATH ".:$PATH"
source一下,或者重新打开term。你的输出说明根本没有完成添加路径的操作。
附:我解决问题所用的从网络上搜到的参考资料
在 Ubuntu 系统中有两种设置环境变量 PATH 的方法。第一种适用于为单一用户设置 PATH,第二种是为全局设置 PATH。
第一种方法:
在用户主目录下有一个 .bashrc 文件,可以在此文件中加入 PATH 的设置如下:
export PATH=”$PATH:/your path1/:/your path2/…..”
注意:每一个 path 之间要用 “:“ 分隔。
注销重启 X 就可以了。
第二种方法:
在 /etc/profile中增加。
PATH="$PATH:/home/zhengb66/bin"
export PATH
如果要使得计时生效,使用 source 命令
source .bashrc
上次由 cavalier 在 2008-10-31 21:07,总共编辑 3 次。
- bones7456
- 帖子: 8495
- 注册时间: 2006-04-12 20:05
- 来自: 杭州
- 联系:
-
- 帖子: 22
- 注册时间: 2008-02-22 22:17
- 联系:
Re: 不加./就运行当前目录下的某个脚本
加了也还是不对,我是这么做的,有什么不对敬请指点。bones7456 写了:PATH环境变量里面加 "."
不推荐这么干
xlianw@xlianw-desktop:~$ sudo -i
[sudo] password for xlianw:
root@xlianw-desktop:~# cd /etc
root@xlianw-desktop:/etc# ls
ConsoleKit ggi pam.conf
NetworkManager gimp pam.d
PolicyKit gnome pango
X11 gnome-app-install papersize
acpi gnome-system-tools passwd
adduser.conf gnome-vfs-2.0 passwd-
adjtime gnome-vfs-mime-magic pcmcia
aliases gre.d perl
alternatives groff pm
anacrontab group pnm2ppa.conf
apm group- popularity-contest.conf
apparmor grub.d power
apparmor.d gshadow ppp
apport gshadow- profile
apt gtk-2.0 profile.d
at.deny hal protocols
avahi hdparm.conf pulse
bash.bashrc hesiod.conf purple
bash_completion host.conf python
bash_completion.d hostname python2.5
belocs hosts qt3
bindresvport.blacklist hosts.allow rc.local
blkid.tab hosts.deny rc0.d
blkid.tab.old hp rc1.d
bluetooth hwtest.d rc2.d
bogofilter.cf init.d rc3.d
bonobo-activation initramfs-tools rc4.d
brlapi.key inputrc rc5.d
brltty iproute2 rc6.d
brltty.conf issue rcS.d
ca-certificates.conf issue.net readahead
calendar kde3 resolv.conf
chatscripts kernel-img.conf resolvconf
compizconfig laptop-mode rmt
complete.tcsh ld.so.cache rpc
console-setup ld.so.conf samba
console-tools ld.so.conf.d sane.d
cron.d ldap scim
cron.daily lftp.conf screenrc
cron.hourly libao.conf scrollkeeper.conf
cron.monthly libpaper.d securetty
cron.weekly locale.alias security
crontab localtime services
csh logcheck sgml
csh.cshrc login.defs shadow
csh.login logrotate.conf shadow-
csh.logout logrotate.d shells
cups lsb-base skel
dbus-1 lsb-base-logging.sh sound
debconf.conf lsb-release ssh
debian_version ltrace.conf ssl
default magic sudoers
defoma magic.mime sysctl.conf
deluser.conf mailcap syslog.conf
depmod.d mailcap.order terminfo
devfs manpath.config thunderbird
dhcp3 mediaprm timezone
dictionaries-common menu-methods ucf.conf
dm mime.types udev
doc-base mke2fs.conf ufw
dpkg modprobe.d uniconf.conf
e2fsck.conf modules update-manager
emacs modutils update-notifier
environment mono updatedb.conf
esound motd usplash.conf
event.d motd.tail vga
fdmount.conf mplayer vim
firefox-3.0 mtab w3m
fonts nanorc wgetrc
foomatic netscsid.conf wodim.conf
fstab network wpa_supplicant
fuse.conf networks wvdial.conf
gai.conf nsswitch.conf xdg
gamin openalrc xml
gconf openoffice xulrunner-1.9
gdm opt zsh_command_not_found
root@xlianw-desktop:/etc# cd skel
root@xlianw-desktop:/etc/skel# ls
Examples
root@xlianw-desktop:/etc/skel# ls -a
. .. .bash_logout .bashrc .profile .profile~ Examples
root@xlianw-desktop:/etc/skel# gedit .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
#umask 022
# if running bash
if [ -n "$BASH_VERSION" ]; then
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
修改: PATH=".:$HOME/bin:$PATH"
root@xlianw-desktop:/etc/skel# cd
root@xlianw-desktop:~# exit
logout
xlianw@xlianw-desktop:~$ ls -a
. .gconf .mcoprc .sudo_as_admin_successful
.. .gconfd .metacity .themes
.adobe .gimp-2.4 .mozilla .thumbnails
.bash_history .gksu.lock .mplayer .transmission
.bash_logout .gnome2 .nautilus .update-manager-core
.bashrc .gnome2_private .openoffice.org2 .update-notifier
.cache .gnupg .profile .wapi
.chewing .gstreamer-0.10 .profile~ .Xauthority
.config .gtk-bookmarks .profile_back .xinput.d
Desktop .gvfs .pulse .xsession-errors
.dmrc .ICEauthority .pulse-cookie 公共的
Documents.odt .icons .purple 模板
.esd_auth job .qt 视频
.eva .kde .recently-used 图片
.evolution .local .recently-used.xbel 文档
Examples .macromedia .scim 音乐
.fontconfig .mcop .ssh 桌面
xlianw@xlianw-desktop:~$ gedit .profile
(原内容和修改均和/etc/skel/.profile相同)
修改后重启执行结果:
xlianw@xlianw-desktop:~$ ls
Desktop Examples 公共的 视频 文档 桌面
Documents.odt job 模板 图片 音乐
xlianw@xlianw-desktop:~$ cd job
xlianw@xlianw-desktop:~/job$ ls
bfvcc-cyy.tgz bfvcc.tar feng-bfvcc feng-bfvcc.tgz t
xlianw@xlianw-desktop:~/job$ cd feng-bfvcc/
xlianw@xlianw-desktop:~/job/feng-bfvcc$ ls
bin clean Makefile package run setup src store work
xlianw@xlianw-desktop:~/job/feng-bfvcc$ cd run
xlianw@xlianw-desktop:~/job/feng-bfvcc/run$ ls
bfvcc.s linalg.s static.s tot_rr.s tt.s vpola.s
dcs.s multipole.s sumpot.s tot_vib.s tune.s wlam.s
xlianw@xlianw-desktop:~/job/feng-bfvcc/run$ bfvcc.s
bash: bfvcc.s:找不到命令
xlianw@xlianw-desktop:~/job/feng-bfvcc/run$ ./bfvcc.s
(说明:能运行)
xlianw@xlianw-desktop:~/job/feng-bfvcc/run$ csh
xlianw-desktop:~/job/feng-bfvcc/run> ls
bfvcc.s linalg.s static.s tot_rr.s tt.s vpola.s
dcs.s multipole.s sumpot.s tot_vib.s tune.s wlam.s
xlianw-desktop:~/job/feng-bfvcc/run> bfvcc.s
bfvcc.s: Command not found.
xlianw-desktop:~/job/feng-bfvcc/run> ./bfvcc.s
(说明:能运行)
-
- 帖子: 1331
- 注册时间: 2006-07-09 12:22
- 来自: 南京
Re: 不加./就能运行当前目录下的某个脚本(csh脚本)
要bash读取就修改~/.bashrc而不是~/.profile,因为你是非login shell。详情google一下吧。:)
csh与bash类似,即~/.cshrc。
程序文件要有可执行权限。
另:你想让新用户也能实现你的这一要求(不要./就能执行),才需要去改skel。
PS:很高兴看到你实验室的师兄弟都能用Linux。:D
csh与bash类似,即~/.cshrc。
程序文件要有可执行权限。
另:你想让新用户也能实现你的这一要求(不要./就能执行),才需要去改skel。
PS:很高兴看到你实验室的师兄弟都能用Linux。:D
-
- 帖子: 22
- 注册时间: 2008-02-22 22:17
- 联系:
Re: 不加./就能运行当前目录下的某个脚本(csh脚本)
谢谢回答,但你的回答对于解决问题........aBiNg 写了:要bash读取就修改~/.bashrc而不是~/.profile,因为你是非login shell。详情google一下吧。:)
csh与bash类似,即~/.cshrc。
程序文件要有可执行权限。
另:你想让新用户也能实现你的这一要求(不要./就能执行),才需要去改skel。
PS:很高兴看到你实验室的师兄弟都能用Linux。:D
希望能和你认真交流!
- bones7456
- 帖子: 8495
- 注册时间: 2006-04-12 20:05
- 来自: 杭州
- 联系:
-
- 帖子: 22
- 注册时间: 2008-02-22 22:17
- 联系:
Re: 不加./就能运行当前目录下的某个脚本(csh脚本)
xlianw-desktop:~> echo $PATHbones7456 写了:你怎么一堆看着晕啊,啥都别说了, echo $PATH 看看有没有"."就行了
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
如何实现你所说的?(把当前目录添加到环境变量?)
- xiooli
- 帖子: 6956
- 注册时间: 2007-11-19 21:51
- 来自: 成都
- 联系:
Re: 不加./就能运行当前目录下的某个脚本(csh脚本)
骨头的意思大概是将/etc/environment 的那行改成:cavalier 写了:xlianw-desktop:~> echo $PATHbones7456 写了:你怎么一堆看着晕啊,啥都别说了, echo $PATH 看看有没有"."就行了
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
如何实现你所说的?(把当前目录添加到环境变量?)
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:.
不知是不是。
- zhan
- 帖子: 1880
- 注册时间: 2005-08-15 0:04
- 来自: 南7技校
Re: 不加./就能运行当前目录下的某个脚本(csh脚本)
。。。。 不晓得听谁说的, 竟然去改 .profile 。。。
改 .bashrc 就是了,具体的 man bash 一下来看它启动的时候是如何读取配置文件的。
另,这个方法是不推荐的,以后如果出了问题,责任自负哦。
改 .bashrc 就是了,具体的 man bash 一下来看它启动的时候是如何读取配置文件的。
另,这个方法是不推荐的,以后如果出了问题,责任自负哦。
飞得高,飞得低,学习再学习,多少大秘密!
http://zhan.blog.ubuntu.org.cn
http://zhan.blog.ubuntu.org.cn
-
- 帖子: 1331
- 注册时间: 2006-07-09 12:22
- 来自: 南京
Re: 不加./就能运行当前目录下的某个脚本(csh脚本)
xiooli, 不是。那里是root设置环境变量的一种方式。
cavalier, 用bash,写到~/.bashrc里;用csh,写到~/.cshrc里。
写的内容是:
source一下,或者重新打开term。你的输出说明根本没有完成添加路径的操作。
cavalier, 用bash,写到~/.bashrc里;用csh,写到~/.cshrc里。
写的内容是:
代码: 全选
.bashrc: export PATH=".:$PATH"
.cshrc: setenv PATH ".:$PATH"
-
- 帖子: 22
- 注册时间: 2008-02-22 22:17
- 联系:
Re: 不加./就能运行当前目录下的某个脚本(csh脚本)
谢谢,此方法有效!aBiNg 写了:xiooli, 不是。那里是root设置环境变量的一种方式。
cavalier, 用bash,写到~/.bashrc里;用csh,写到~/.cshrc里。
写的内容是:source一下,或者重新打开term。你的输出说明根本没有完成添加路径的操作。代码: 全选
.bashrc: export PATH=".:$PATH" .cshrc: setenv PATH ".:$PATH"
又问:
代码: 全选
.cshrc: setenv PATH ".:$PATH"
上次由 cavalier 在 2008-10-31 21:14,总共编辑 1 次。
- xiooli
- 帖子: 6956
- 注册时间: 2007-11-19 21:51
- 来自: 成都
- 联系:
Re: 不加./就能运行当前目录下的某个脚本(csh脚本)
呵呵,桌面linux一般就只有一个用户嘛,全局的和个人的也差不多啦。不过貌似这样不太安全还是怎么的,不太清楚具体的讲究aBiNg 写了:xiooli, 不是。那里是root设置环境变量的一种方式。
cavalier, 用bash,写到~/.bashrc里;用csh,写到~/.cshrc里。
写的内容是:source一下,或者重新打开term。你的输出说明根本没有完成添加路径的操作。代码: 全选
.bashrc: export PATH=".:$PATH" .cshrc: setenv PATH ".:$PATH"
-
- 帖子: 62
- 注册时间: 2007-06-27 14:42
Re: 不加./就能运行当前目录下的某个脚本(csh脚本)
不用./确实不好,可以想象:有个人很坏,他在一个写了一个脚本里面是rm -rf / ,然后脚本的名字叫ls,这样超级用户进入这个目录ls一下就有得好看了。
-
- 帖子: 1331
- 注册时间: 2006-07-09 12:22
- 来自: 南京
Re: 不加./就能运行当前目录下的某个脚本(csh脚本)
xiooli, Ub默认的users在admin组,所以修改/etc/environment应该对users有影响。但如果users只在users组里的话,对environment修改的变量将不会对他产生影响。
要不,你测试一下,然后给个详细的说明和结论吧。:D
要不,你测试一下,然后给个详细的说明和结论吧。:D
- xiooli
- 帖子: 6956
- 注册时间: 2007-11-19 21:51
- 来自: 成都
- 联系:
Re: 不加./就能运行当前目录下的某个脚本(csh脚本)
我创建了一个叫test的用户试了下,是可以的阿(在桌面弄了个小脚本,赋予可执行权限,然后cd到该目录,直接运行之,没加./结果正确运行了。)aBiNg 写了:xiooli, Ub默认的users在admin组,所以修改/etc/environment应该对users有影响。但如果users只在users组里的话,对environment修改的变量将不会对他产生影响。
要不,你测试一下,然后给个详细的说明和结论吧。:D
ps:不知道adm组和admin组有什么区别,以下是一些信息:
代码: 全选
test@XIOOLI:~/Desktop$ id test
uid=1001(test) gid=1001(test) 组=1001(test),4(adm),20(dialout),21(fax),24(cdrom),25(floppy),26(tape),29(audio),30(dip),44(video),46(plugdev),105(scanner),107(fuse)
test@XIOOLI:~/Desktop$ id xiooli
uid=1000(xiooli) gid=1000(xiooli) 组=1000(xiooli),4(adm),20(dialout),24(cdrom),25(floppy),29(audio),30(dip),44(video),46(plugdev),107(fuse),113(lpadmin),114(admin)
test@XIOOLI:~/Desktop$ cat /etc/environment
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:."
CLASSPATH=.:/usr/lib/jvm/java-6-sun/lib
JAVA_HOME=/usr/lib/jvm/java-6-sun