在linux文件系统中,应该放置用户脚本吗?
我正在考虑用cron调用python脚本。
答案 0 :(得分:35)
我得到的信息:
/usr/local/sbin custom script meant for root
/usr/local/bin custom script meant for all users including non-root
聊天记录来自irc.debian.org #debian:
(02:48:49) c33s: question: where is the _correct_ location, to put custom scripts
for the root user (like a script on a webserver for createing everything needed
for a new webuser)? is it /bin, /usr/local/bin,...? /usr/local/scripts is
mentioned in (*link to this page*)
(02:49:15) Hydroxide: c33s: typically /usr/local/sbin
(02:49:27) Hydroxide: c33s: no idea what /usr/local/scripts would be
(02:49:32) Hydroxide: it's nonstandard
(02:49:53) Hydroxide: if it's a custom script meant for all users including
non-root, then /usr/local/bin
(02:52:43) Hydroxide: c33s: Debian follows the Filesystem Hierarchy Standard,
with a very small number of exceptions, which is online in several formats at
http://www.pathname.com/fhs/ (also linked from http://www.debian.org/devel/ and
separately online at http://www.debian.org/doc/packaging-manuals/fhs/fhs-2.3.html)
(02:53:03) Hydroxide: c33s: if you have the debian-policy package installed, it's
also in several formats at /usr/share/doc/debian-policy/fhs/ on your system
(02:53:37) Hydroxide: c33s: most linux distributions follow that standard, though
usually less strictly and with more deviations than Debian.
感谢Hydroxide
答案 1 :(得分:19)
如果您正在讨论将由该用户crontab运行的用户创建的脚本,我通常将它们放在主目录中的bin或scripts文件夹中,或者如果它们打算在用户之间共享,/ usr / local / scripts目录。
答案 2 :(得分:8)
对于它感兴趣的人,Filesystem Hierarchy Standard (FHS)是一份标准文件,仍然是一本非常好的读物。我描述了几乎所有Linux发行版的基础,并且正式认可,例如由Debian和Linux Standards Base(LSB)。
但是,你不会找到任何肯定的答案,因为......它没有定义;-)。我只能说:不要放入/ bin(既不在/ usr / bin中)。 / usr / local / scripts也很不寻常。 $ HOME / bin似乎是一个可接受的地方,如果该脚本仅由该单个用户使用。
答案 3 :(得分:3)
我是一个强大的beleiver,如果一个文件是由用户创建的,它会进入他的用户目录(/ home / username),如果他没有成功,那么它会变得更复杂。我过去只是将它们放在/ usr / local / bin,/ bin或/ usr / local / scripts中,我不确定etch,但你需要检查以确保/ usr / local /脚本实际上是在Cron的$ PATH中。
答案 4 :(得分:3)
对于Ubuntu,Debian guide非常有用:
根据指南,通常,程序会将自己安装在/ usr / local子目录中。但是,Debian软件包不能使用该目录,因为它是为系统管理员(或用户)的私人使用而保留的
/usr/local/bin
似乎是可以接受的。
我个人将脚本放在$HOME/.scripts
。
我希望LSB能够专门解决这个问题。
答案 5 :(得分:2)
/ home / username / bin怎么样?
将〜/ bin添加到$ PATH并使用chmod + x filename使脚本可执行。
答案 6 :(得分:2)
我个人更喜欢
/home/username/.bin
这样就可以隐藏bin文件夹了,但你仍然可以将它添加到PATH中并使用x-bit执行所有脚本。
我喜欢我的主目录是干净的(乍一看),只有很少的文件夹。
答案 7 :(得分:0)
您还可以添加crontab文件的路径,如previous cron-related question。
所示