当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 17 篇帖子 ]  前往页数 1, 2  下一页
作者 内容
1 楼 
 文章标题 : 不加./就能运行当前目录下的某个脚本(csh脚本)
帖子发表于 : 2008-10-30 20:28 

注册: 2008-02-22 22:17
帖子: 22
送出感谢: 0 次
接收感谢: 0 次
我的系统是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


最后由 cavalier 编辑于 2008-10-31 21:07,总共编辑了 3 次

页首
 用户资料  
 
2 楼 
 文章标题 : Re: 不加./就运行当前目录下的某个脚本
帖子发表于 : 2008-10-30 22:04 
头像

注册: 2006-04-12 20:05
帖子: 8495
地址: 杭州
送出感谢: 0 次
接收感谢: 8
PATH环境变量里面加 "."
不推荐这么干


_________________
关注我的blog: ε==3


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 不加./就运行当前目录下的某个脚本
帖子发表于 : 2008-10-31 12:06 

注册: 2008-02-22 22:17
帖子: 22
送出感谢: 0 次
接收感谢: 0 次
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
(说明:能运行)


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 不加./就能运行当前目录下的某个脚本(csh脚本)
帖子发表于 : 2008-10-31 15:08 

注册: 2006-07-09 12:22
帖子: 1331
地址: 南京
送出感谢: 0 次
接收感谢: 1
要bash读取就修改~/.bashrc而不是~/.profile,因为你是非login shell。详情google一下吧。:)
csh与bash类似,即~/.cshrc。
程序文件要有可执行权限。

另:你想让新用户也能实现你的这一要求(不要./就能执行),才需要去改skel。

PS:很高兴看到你实验室的师兄弟都能用Linux。:D


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 不加./就能运行当前目录下的某个脚本(csh脚本)
帖子发表于 : 2008-10-31 15:28 

注册: 2008-02-22 22:17
帖子: 22
送出感谢: 0 次
接收感谢: 0 次
aBiNg 写道:
要bash读取就修改~/.bashrc而不是~/.profile,因为你是非login shell。详情google一下吧。:)
csh与bash类似,即~/.cshrc。
程序文件要有可执行权限。

另:你想让新用户也能实现你的这一要求(不要./就能执行),才需要去改skel。

PS:很高兴看到你实验室的师兄弟都能用Linux。:D


谢谢回答,但你的回答对于解决问题........
希望能和你认真交流!


页首
 用户资料  
 
6 楼 
 文章标题 : Re: 不加./就能运行当前目录下的某个脚本(csh脚本)
帖子发表于 : 2008-10-31 15:33 
头像

注册: 2006-04-12 20:05
帖子: 8495
地址: 杭州
送出感谢: 0 次
接收感谢: 8
你怎么一堆看着晕啊,啥都别说了, echo $PATH 看看有没有"."就行了


_________________
关注我的blog: ε==3


页首
 用户资料  
 
7 楼 
 文章标题 : Re: 不加./就能运行当前目录下的某个脚本(csh脚本)
帖子发表于 : 2008-10-31 15:52 

注册: 2008-02-22 22:17
帖子: 22
送出感谢: 0 次
接收感谢: 0 次
bones7456 写道:
你怎么一堆看着晕啊,啥都别说了, echo $PATH 看看有没有"."就行了


xlianw-desktop:~> echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

如何实现你所说的?(把当前目录添加到环境变量?)


页首
 用户资料  
 
8 楼 
 文章标题 : Re: 不加./就能运行当前目录下的某个脚本(csh脚本)
帖子发表于 : 2008-10-31 16:10 
头像

注册: 2007-11-19 21:51
帖子: 6956
地址: 成都
送出感谢: 0 次
接收感谢: 4
cavalier 写道:
bones7456 写道:
你怎么一堆看着晕啊,啥都别说了, echo $PATH 看看有没有"."就行了


xlianw-desktop:~> echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

如何实现你所说的?(把当前目录添加到环境变量?)

骨头的意思大概是将/etc/environment 的那行改成:
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:.

不知是不是。


页首
 用户资料  
 
9 楼 
 文章标题 : Re: 不加./就能运行当前目录下的某个脚本(csh脚本)
帖子发表于 : 2008-10-31 16:23 
头像

注册: 2005-08-15 0:04
帖子: 1880
地址: 南7技校
送出感谢: 0 次
接收感谢: 0 次
。。。。 不晓得听谁说的, 竟然去改 .profile 。。。

改 .bashrc 就是了,具体的 man bash 一下来看它启动的时候是如何读取配置文件的。

另,这个方法是不推荐的,以后如果出了问题,责任自负哦。


_________________
飞得高,飞得低,学习再学习,多少大秘密!
http://zhan.blog.ubuntu.org.cn


页首
 用户资料  
 
10 楼 
 文章标题 : Re: 不加./就能运行当前目录下的某个脚本(csh脚本)
帖子发表于 : 2008-10-31 16:27 

注册: 2006-07-09 12:22
帖子: 1331
地址: 南京
送出感谢: 0 次
接收感谢: 1
xiooli, 不是。那里是root设置环境变量的一种方式。

cavalier, 用bash,写到~/.bashrc里;用csh,写到~/.cshrc里。
写的内容是:
代码:
.bashrc: export PATH=".:$PATH"
.cshrc: setenv PATH ".:$PATH"

source一下,或者重新打开term。你的输出说明根本没有完成添加路径的操作。


页首
 用户资料  
 
11 楼 
 文章标题 : Re: 不加./就能运行当前目录下的某个脚本(csh脚本)
帖子发表于 : 2008-10-31 21:00 

注册: 2008-02-22 22:17
帖子: 22
送出感谢: 0 次
接收感谢: 0 次
aBiNg 写道:
xiooli, 不是。那里是root设置环境变量的一种方式。

cavalier, 用bash,写到~/.bashrc里;用csh,写到~/.cshrc里。
写的内容是:
代码:
.bashrc: export PATH=".:$PATH"
.cshrc: setenv PATH ".:$PATH"

source一下,或者重新打开term。你的输出说明根本没有完成添加路径的操作。


谢谢,此方法有效! :em50

又问:
代码:
.cshrc: setenv PATH ".:$PATH"
中的PATH后没有等号吗?恕我对系统这反面的知识了解不多,能否推荐一些关于这方面的经典书籍?


最后由 cavalier 编辑于 2008-10-31 21:14,总共编辑了 1 次

页首
 用户资料  
 
12 楼 
 文章标题 : Re: 不加./就能运行当前目录下的某个脚本(csh脚本)
帖子发表于 : 2008-10-31 21:13 
头像

注册: 2007-11-19 21:51
帖子: 6956
地址: 成都
送出感谢: 0 次
接收感谢: 4
aBiNg 写道:
xiooli, 不是。那里是root设置环境变量的一种方式。

cavalier, 用bash,写到~/.bashrc里;用csh,写到~/.cshrc里。
写的内容是:
代码:
.bashrc: export PATH=".:$PATH"
.cshrc: setenv PATH ".:$PATH"

source一下,或者重新打开term。你的输出说明根本没有完成添加路径的操作。

呵呵,桌面linux一般就只有一个用户嘛,全局的和个人的也差不多啦。不过貌似这样不太安全还是怎么的,不太清楚具体的讲究 :em03


页首
 用户资料  
 
13 楼 
 文章标题 : Re: 不加./就能运行当前目录下的某个脚本(csh脚本)
帖子发表于 : 2008-10-31 21:42 

注册: 2007-06-27 14:42
帖子: 62
送出感谢: 0 次
接收感谢: 0 次
不用./确实不好,可以想象:有个人很坏,他在一个写了一个脚本里面是rm -rf / ,然后脚本的名字叫ls,这样超级用户进入这个目录ls一下就有得好看了。


页首
 用户资料  
 
14 楼 
 文章标题 : Re: 不加./就能运行当前目录下的某个脚本(csh脚本)
帖子发表于 : 2008-10-31 22:17 

注册: 2006-07-09 12:22
帖子: 1331
地址: 南京
送出感谢: 0 次
接收感谢: 1
xiooli, Ub默认的users在admin组,所以修改/etc/environment应该对users有影响。但如果users只在users组里的话,对environment修改的变量将不会对他产生影响。

要不,你测试一下,然后给个详细的说明和结论吧。:D


页首
 用户资料  
 
15 楼 
 文章标题 : Re: 不加./就能运行当前目录下的某个脚本(csh脚本)
帖子发表于 : 2008-10-31 22:57 
头像

注册: 2007-11-19 21:51
帖子: 6956
地址: 成都
送出感谢: 0 次
接收感谢: 4
aBiNg 写道:
xiooli, Ub默认的users在admin组,所以修改/etc/environment应该对users有影响。但如果users只在users组里的话,对environment修改的变量将不会对他产生影响。

要不,你测试一下,然后给个详细的说明和结论吧。:D

我创建了一个叫test的用户试了下,是可以的阿(在桌面弄了个小脚本,赋予可执行权限,然后cd到该目录,直接运行之,没加./结果正确运行了。)
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


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 17 篇帖子 ]  前往页数 1, 2  下一页

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 3 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译