我有一个应该在任何目录中执行的程序。
例如: 我已编译的c程序位于“/ Desktop / Folder1 /”目录中,并命名为“program”。 我现在所在的目录(在终端中)是“/ Desktop / Folder2 / another /”。在这个文件夹里面是一个“file.txt”。 我想做的就是做点什么 “myProgram zip file.txt”,这将压缩该文件。
我四处搜索并发现了别名和bash函数...据我所知,我无法将参数传递给别名,所以我尝试使用bash函数:
myProgram() { /Desktop/Folder1/program "$1" "$2" ; }
但是,只有当前目录是我的c程序目录时,这才有效。
我是否完全错了,功能不像这样? 还有另一种方法可以做我想要的吗?
如果我不清楚请告诉我,因为英语不是我的母语。 谢谢。
答案 0 :(得分:0)
我有一个应该在任何目录中执行的程序。
方法1
通常~/.bashrc
修改您的bash个人资料文件,添加:
export PATH=$PATH:/path/to/your/command
但是,这样做有一个缺点,就是您的路径中的其他二进制文件也很容易访问,这可能是不可取的。
<强>方法2 强>
cp -n your_command_name /usr/local/bin/
#-n option is not to overwrite an existing file
注意:
我建议使用像paco这样的包管理器来管理本地编译的程序。
请参阅下面的讨论,了解存储本地编译二进制文件的好地方。
答案 1 :(得分:0)
你说这一切都错了。相反,花点时间了解其他程序是如何做到的。了解ggplot(data=df,aes(x=numb)) +
geom_bar(stat="identity", aes(y=mydist, fill="green"), colour="green") +
geom_line(aes(y=basedist,group=1, colour="base distribution")) +
geom_point(aes(y=basedist), colour="red") +
ggtitle("My Chart") +
labs(x="numb", y="percentage") +
scale_x_discrete(limits=c("1","2","3","4","5","6","7","8","9")) +
scale_y_continuous(breaks=seq(0,100,10)) +
scale_fill_manual(values = "green", labels = "my distribution") +
theme(axis.title.x = element_text(size=10, colour ="#666666")) +
theme(axis.title.y = element_text(size=10, color="#666666")) +
theme(plot.title = element_text(size=16, face="bold", hjust=0, color="#666666")) +
theme(axis.text = element_text(size=12)) +
theme(legend.title = element_text(colour="white", size = 16, face='bold'))
环境变量。
所有现代操作系统(是的,包括Windows)都有$PATH
环境变量的概念。此变量包含安装可执行文件(包括二进制文件和脚本)的所有目录的列表。
传统上,unix系统在许多用户之间共享。你现在仍然会在sysadmin,db admin和开发人员都拥有自己的登录服务器的服务器中看到这一点(他们并不都以root身份登录对吧?对吗?)。因此,通常如果您编写自己的脚本或程序,通常无法在PATH
或/bin
或/usr/bin
等常用位置安装软件。
幸运的是,每个用户都可以修改自己的/usr/local/bin
变量,以便他们可以将自己的PATH
文件夹添加到bin
变量中。
传统上,解决方案是在您的主目录中创建一个PATH
文件夹(您可以将其命名为任何名称,有些人喜欢bin
,但传统上它是programs
因为所有标准文件夹是bin
):
bin
然后将文件夹添加到mkdir ~/bin
变量:
PATH
有时export PATH="$PATH:~/bin"
扩展不起作用,因此有时您可能需要使用主目录的完整路径:
~
要对export PATH="$PATH:/home/ohiohi/bin"
永久修改,请将其添加到$PATH
或.profile
现在,您可以将撰写的程序复制到.bashrc
,以便随时随地使用
~/bin
现在你可以输入:
cp /Desktop/Folder1/program ~/bin
传统上,您拥有的所有内容都只能保存在您的主目录中。这包括个人脚本,可执行文件等。这样做的好处是,如果您升级到新PC或基于unix的新操作系统,您只需要复制主目录,然后继续使用您已经习惯的操作。
我个人一直在从1997年开始学习这个当前的主页目录。它从Linux PPC开始然后转移到Red Hat Linux然后转移到Windows95,Windows98,Windows2000,WindowsNT上的Cygwin然后再转移到Red Hat Linux然后是Centos,Ubuntu,Linux Mint,它目前驻留在Mac上。
如果转移到不兼容的平台,显然二进制可执行文件将不起作用。这解释了为什么许多unix用户倾向于喜欢脚本语言。但是你总是可以重新编译。