结构
在本教程中,我们将学习何时以及如何在 Linux 中使用/opt。我们将从它的定义开始。然后,我们将介绍它与/usr/local 的区别。
让我们看看在根级别执行ls的 Linux 目录结构:
bin dev lib opt usr
boot etc lib64 proc srv
cdrom home lost+found root config
media run sys core mnt
sbin tmp var
我们在输出中看到的是标准的 Linux 根级别目录。每个目录及其子目录在 Linux 系统中应包含的内容在FHS(文件系统层次结构标准)中定义。
1./usr/local
FHS 将/usr/local定义为"供系统管理员在本地安装软件时使用"。这可能会令人困惑,因为此描述与/opt非常相似。另一方面,有一个重要的区别。
对于传统的 UNIX 系统来说,通过复制目录来部署软件是非常规的。通常,UNIX 应用程序会将其库、二进制文件和其他文件放在单独的目录中,例如/usr/local/bin和/usr/local/lib。
/usr/local下的层次结构应模仿/usr下的层次结构。这意味着我们应该将所有应用程序二进制文件放在/usr/local/bin中,并将所有库放在/usr/local/lib中,依此类推。因此,我们将把它们与其他应用程序的文件放在一起。
因此,在部署到/usr/local时,我们不能为每个应用程序设置一个目录。相反,我们以更传统的 UNIX 样式组织它们,该样式将应用程序文件划分为单独的目录。
2./opt
FHS 将/opt定义为"为安装附加应用程序软件包而保留的"。在这种情况下,"附加组件"是指不属于系统一部分的软件;例如,任何外部或第三方软件。这个惯例的根源在于AT&T、Sun和DEC等供应商构建的旧UNIX系统。
让我们以公司开发的内部应用程序 CompanyApplication 为例。
如果我们不使用标准工具(例如dpkg或rpm)对其进行打包,我们很可能会将与 CompanyApplication 相关的所有文件放在一个目录中。因此,我们将二进制文件、库和配置放在一起。它们不会像传统的UNIX系统那样被分成不同的位置。
假设我们要在服务器上部署我们的应用程序。在这种情况下,我们只需将应用程序的目录复制到/opt/CompanyApplication目录中即可。
需要时,我们可以直接从那里执行它。因此,在使用/opt时,安装我们的应用程序就像复制,提取TAR或解压缩一样简单。当我们不再需要该应用程序时,我们只需删除/opt.
作为旁注,我们也可以更喜欢使用/opt/Company/Company应用程序目录结构。在这种情况下,我们应该使用LANANA注册的公司/提供商名称。
以cadence文件为例
.cdsinit文件的使用
.cdsinit文件负责Cadence软件的初始化配置,包括加载快捷方式、嵌入Calibre软件接口等。其实在功能上.cdsinit文件和.cdsenv文件有重叠,.cdsinit文件是一个skill脚本文件,其中内容需要符合skill语言语法,在.cdsinit文件内可以写入软件启动时的附加指令。
常用命令
- 文件管理 rm
在linux中创建文件很容易,系统中随时会有文件变得过时且毫无用处。用户可以用rm命令将其删除。该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是删除了链接,原有文件均保持不变。
rm命令的一般形式为:
rm [选项] 文件…
如果没有使用- r选项,则rm不会删除目录。
该命令的各选项含义如下:
- f 忽略不存在的文件,从不给出提示。
- r 指示rm将参数中列出的全部目录和子目录均递归地删除。
- i 进行交互式删除。
使用rm命令要格外小心。因为一旦一个文件被删除,它是不能被恢复的。例如,用户在输入cp,mv或其他命令时,不小心误输入了rm命令,当用户按 了回车键并认识到自己的错误时,已经太晚了,文件已经没有了。为了防止此种情况的发生,可以使用rm命令中的 i选项来确认要删除的每个文件。如果用户输入y,文件将被删除。如果输入任何其他东西,文件将被保留。在下一个例子中,用户要删除文件test和 example。然后会被要求对每个文件进行确认。用户最终决定删除example文件,保留teST文件。
$ rm - ii test example
Remove test ?n
Remove example ?y
如果需要删除目录机构庞大,使用 -r 时每个目录都会询问,所有目录键入 y 删除非常麻烦
可以使用 rm -rf filename 强制删除
注意:使用 -rf 不会出现确认提示
参考:What does /opt mean in Linux?
CenterOs系统
1.CentOS6 区域截屏快捷键设置
CentOS6中,系统并没有自带区域截屏的快捷键,若想截取屏幕的某个区域,必须在Terminal中输入以下命令行:
gnome-screenshot -a
然后出现十字图标选取所截区域,最后将截图保存。
我们可以将该命令保存为快捷键,以方便操作。具体操作步骤如下:
依次点击System–>Preference–>Keyboard Shortcuts–>Add,进入如下界面
在Name中填写快捷键名称(如截图或screenshot),在Command中填写gnome-screenshot -a,点击Apply。结果如下图所示:
此时,单击Disabled,此处文字变为"Newshotcut…",在键盘上敲击你所要设置的快捷键(如Alt+A)。
OK!截图快捷键设置成功。
然而在实际操作中我们会发现,每次按下Alt+A时,所截的总是整个屏幕,而不会跳出十字图标让你来选择截图的区域。
解决办法如下:
在/usr/local/bin/下新建名为gnome-screenshot的文件,文件内容如下:
#!/bin/bash
sleep 1
exec /usr/bin/gnome-screenshot $
@保存该文件,并修改文件权限为可执行(或直接设为777)。
再次进入添加快捷键的界面,将Command改为如下内容:./usr/local/bin/gnome-screenshot -a