/bin:包含系统启动和基本维护所需的二进制可执行文件。
/boot:包含用于系统引导的文件,包括内核文件和引导加载程序。
/dev:包含与设备相关的文件,如硬盘驱动器、键盘等。
/etc:包含系统全局配置文件,如网络设置、用户帐户和打印机设置等。
/home:包含每个用户的主目录。
/lib:包含系统运行所需的共享库。
/media:用于挂载外部存储设备(例如 USB 驱动器)的目录。
/mnt:也用于挂载文件系统,通常是管理员暂时使用的目录。
/opt:用于安装第三方软件的目录。
/proc:包含系统内存中运行进程的信息。
/root:超级用户(root 用户)的主目录。
/run:包含在系统运行过程中需要访问的临时文件。
/sbin:包含系统管理命令,例如网络管理和磁盘分区。
/srv:用于存储网站数据或其他服务数据的目录。
/sys:包含设备驱动程序的信息。
/tmp:用于存储临时文件的目录。
/usr:用于存储用户应用程序和共享资源的目录树。
/var:包含系统日志、邮件、数据库和其他变化频繁的文件。
以下是作为 Linux 用户经常需要使用或者配置的一些文件:
~/.bashrc:Bash shell 的配置文件。可以在其中定义别名、修改环境变量、设置命令提示符等。
~/.bash_profile:登录 shell 的启动文件。可以在其中加载 ~/.bashrc,以便每次打开终端时都应用相同的配置。
~/.profile:类似于 ~/.bash_profile,但适用于所有 shell。
~/.ssh/config:OpenSSH 客户端的配置文件。可以在其中指定主机和用户别名、设置 SSH 代理和端口转发等。
~/.gitconfig:Git 的全局配置文件。可以在其中设置用户名、电子邮件地址、编辑器等。
~/.vimrc:Vim 编辑器的配置文件。可以在其中启用语法高亮、设置缩进、定义键盘映射等。
~/.tmux.conf:Tmux 终端复用器的配置文件。可以在其中设置快捷键、调整窗格大小、定义状态栏等。
/etc/fstab:文件系统表,用于指定系统启动时要自动挂载的文件系统。
/etc/hosts:包含本地主机名与 IP 地址的映射。可以在其中添加自定义主机名,以便轻松访问其他计算机。
/etc/resolv.conf:DNS 解析器的配置文件。可以在其中指定 DNS 服务器和搜索域。
作为一名 C++ 开发者,以下是需要注意的 Linux 目录和环境变量:
/usr/include:包含系统标准头文件。例如,<stdio.h> 和 <stdlib.h>。
/usr/lib:包含共享库文件。可以使用 -l 标志指定要链接的库名称,例如,-lm 表示链接数学库 libm.so。
/usr/local/include 和 /usr/local/lib:可以将自定义头文件和共享库安装在该目录下,以便它们可以被全局访问。
$PATH 环境变量:定义了 shell 用于查找可执行文件的目录。可以使用 echo $PATH
命令查看当前设置。可以通过将路径添加到 PATH 变量中来添加新目录,例如:export PATH=$PATH:/opt/myapp/bin
。
$LD_LIBRARY_PATH 环境变量:定义了共享库文件的搜索路径。可以使用 ldd
命令查看程序所依赖的共享库。可以使用 export LD_LIBRARY_PATH=/usr/local/lib
将路径添加到 LD_LIBRARY_PATH 变量中。
$CPLUS_INCLUDE_PATH 环境变量:与 C++ 头文件的搜索路径有关。可以使用 echo $CPLUS_INCLUDE_PATH
命令查看当前设置。可以使用 export CPLUS_INCLUDE_PATH=/usr/local/include
将路径添加到 CPLUS_INCLUDE_PATH 变量中。
/usr/bin/g++:默认情况下,C++ 编译器位于此目录下。可以使用 g++
命令编译源代码并生成可执行文件。可以通过 -I
标志指定头文件搜索路径,例如:g++ -c main.cpp -I/usr/local/include
。
/usr/share/doc/gcc-x.x.xx:包含 GCC 编译器的文档和示例。可以使用 info gcc
命令或浏览器打开 /usr/share/doc/gcc-x.x.xx/html/index.html
查看文档。
~/.bashrc:可以在其中添加别名、环境变量、函数等,以提高工作效率。可以使用 nano ~/.bashrc
命令编辑文件,并使用 source ~/.bashrc
命令使更改立即生效。
当编译 C++ 程序时,如果使用了共享库文件,那么编译器需要知道这些库的位置才能将其链接到可执行程序中。以下是一些方法,可以让编译器找到共享库:
使用 -L 标志:可以使用 -L 标志告诉编译器在哪些目录中查找共享库。例如,g++ main.cpp -L/path/to/lib
将在 /path/to/lib 目录下查找共享库。
使用 -l 标志:可以使用 -l 标志指定要链接的共享库名称。例如,-lmylib 表示链接名为 libmylib.so 的库。
使用环境变量 LD_LIBRARY_PATH:可以设置 LD_LIBRARY_PATH 环境变量,以便在运行时找到共享库。例如,在 bash shell 中,可以使用 export LD_LIBRARY_PATH=/path/to/lib
命令设置该变量,使编译器和程序都能够找到共享库。
在默认搜索路径中安装共享库:可以将共享库安装在默认的系统搜索路径(如 /usr/lib)或其他标准搜索路径(如 /usr/local/lib)。这样,编译器会在这些目录中自动查找共享库。
总的来说,最常用的方法是通过 -L 和 -l 标志指定共享库的位置和名称,或者将共享库安装在默认搜索路径中。如果您需要在非标准目录中使用共享库,则可以使用 LD_LIBRARY_PATH 环境变量,但请注意,这种方法可能会导致不必要的安全风险和依赖问题。
本文作者:Dong
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!