Linux文件目录管理
1.Linux文件系统架构
- Linux是将文件系统挂载到每个目录下。
- Linux文件系统中没有区的概念。
- 在建立系统时候,Linux首先需要建立一个根目录 / ,并在这个文件系统中建立一系列空目录,然后将其他硬盘分区挂载到这个目录中。
- Linux系统主要目录及其内容
/bin:构建起最小系统所需要的命令 /etc:系统软件的启动和配置文件 /home: 用户的主目录 /lib:C编译器的库 /usr:非系统的程序和命令 /dev:各种设备文件
2.文件和目录处理
mkdir 建立目录:
mkdir catkin_ws
mkdir ~/home/catkin_ws
mkdir -p catkin_ws/src
touch 建立空文件:
touch hello
touch pre_doc.php
mv 移动和重命名
mv hello download/
mv -i hello download/
mv -b hello download/
mv hello hello2
cp 复制文件
cp hello.cpp download/
cp -i hello download/
cp -b hello download/
cp -r test/ download/
删除目录和文件
rm test/*.cpp
rm -i test/hello.cpp
rm -f hello_bak
rm -r test/
3.权限
- Linux有三个权限主:文件所有者、文件属组用户、其他人
- 三种权限:r w x
- 可执行文件有两种:shell 脚本程序、可直接由CPU执行的二进制代码
ls -l 查看文件和目录的权限
ls -l /test/hello.cpp
$ ls -l CMakeLists.txt
lrwxrwxrwx 1 rosfun rosfun 50 Apr 24 09:08 CMakeLists.txt -> /opt/ros/kinetic/share/catkin/cmake/toplevel.cmake
- 第一个字符:文件类型
chmod 改变文件权限
chmod a+x hello.cpp 所有权限主加x权限
chmod a-x hello.cpp 所有权限主删除x权限
chmod 777 hello.cpp 所有权限主赋予最高权限 r w x
ln 建立链接 软链接 ln -s
ln -s TARGET LINK_NAME 建立一个名为LINK_NAME的符号链接,指向TARGET,从此访问LINK_NAME就相当于访问TARGET
硬链接 ln 硬链接:将两个独立的文件联系在一起。是直接引用。而软链接是通过名称引用。 硬链接后的两个文件完全被联系在了一起,两个文件拥有相同的内容 ,对其中一个文件的改动会反映在另一个文件中。
ln hello.cpp hell0.cpp
4.重定向和管道
重定向和管道允许用户人为地改变程序获取输入和产生输出的位置。
- 输出重定向 输出默认指向显示器 输出重定向默认把程序的输出转到另一个地方去
$ ls
MPC.cpp MPC_Node.cpp Pure_Pursuit.cpp
ls > ~/ls_out
这样ls的输出就不会显示在显示器上,而是出现在ls_out文件中。 如果该文件不存在,>重定向符号会试图建立这个文件。如果该文件已经存在,则>会覆盖原内容。 如果不想覆盖原内容:
$ date > data_out
$ cat date_out
xxxxx
$ nume -r >> date_out
$ cat dateout
- 输入重定向 程序默认接收输入的地方是键盘。 如果不使用带任何参数的cat命令,cat会停在那里,等待标准输入获取数据。输入的每一样都会立即显示在屏幕上
~$ cat
hello world
hello world
** | 管道** | 将一条命令的输出连接到另一条命令的输入。
$ ls | grep MPC
MPC.cpp
MPC_Node.cpp
ls首先列出当前目录下的所有文件名,管道“ | ” 在这对文件列表中查找包括字符串MPC的文件名,并在标准输出中显示。
|