Shell Scripting使可执行文件成为本机命令

时间:2013-06-11 18:15:19

标签: shell

我在linux中编写了一个名为cleanup的shell脚本。我是新手,我正在读书。它告诉我将文件保存在/ usr / local / bin /中但是当我运行以下命令时出现此错误:

$ cp cleanup /usr/local/bin/
     

cp:无法创建常规文件`/ usr / local / bin / cleanup':权限   拒绝

我不知道如何在该文件夹中写入文件。这是清理代码:

#!/bin/bash
# Proper header for a Bash script.
# Cleanup, version 2
# Run as root, of course.
# Insert code here to print error message and exit if not root.

# Variables are better than hard-coded values.
cat ./hello > cleaning
echo "Logs cleaned up."
exit 
# The right and proper method of "exiting" from a script.
# A bare "exit" (no parameter) returns the exit status
#+ of the preceding command. 

你能帮我把文件复制到/ usr / local / bin / 我这样做是因为它是一个可执行文件,如果我把它放在上面提到的文件夹中,我可以像本机命令一样运行文件的名称。 我在ubuntu的终端工作......如果它有所作为,请告诉我。

1 个答案:

答案 0 :(得分:0)

linux中的/usr/local/bin/目录是受保护的目录。它包含许多可执行文件,因此必须保护它们免受可能造成安全问题的文件的侵害。

因此,对目录的写权限仅限于root用户。

您可以使用sudo命令获取root权限。在cp命令前面使用sudo,例如sudo cp ....。为此,您必须是管理员用户

如果您不是管理员用户,则会收到错误消息,您必须以root用户或任何其他管理员用户身份登录才能执行此操作。

复制文件后,请务必检查文件的权限。它必须具有执行权限。您可以使用sudo chmod +x <filename>分配执行权限。