1、命令概览

1.1 目录管理

  • 切换目录 - 使用 cd
  • 查看目录信息 - 使用 ls
  • 显示当前目录的绝对路径 - 使用 pwd
  • 树状显示目录的内容 - 使用 tree
  • 创建目录 - 使用 mkdir
  • 删除目录 - 使用 rmdir

1.2 文件管理

  • 创建空文件 - 使用 touch
  • 批量重命名 - 使用 rename
  • 查找文件或目录 - 使用 locate
  • 在指定目录下查找文件 - 使用 find
  • 查找命令的绝对路径 - 使用 which
  • 查找命令的程序、源代码等相关文件 - 使用 whereis

1.3 文件和目录通用管理

  • 复制文件或目录 - 使用 cp
  • 复制文件或目录到远程服务器 - 使用 scp
  • 移动文件或目录 - 使用 mv
  • 删除文件或目录 - 使用 rm

2、命令举例

2.1 cd

cd 命令用来切换工作目录。

cd          # 切换到用户主目录
cd ~        # 切换到用户主目录
cd -        # 切换到上一个工作目录
cd ..       # 切换到上级目录
cd ../..    # 切换到上两级目录

2.2 ls

ls 命令用来显示目录信息。

ls        # 列出当前目录可见文件
ls -l     # 列出当前目录可见文件详细信息
ls -la    # 列出所有文件(包括隐藏)的详细信息
ls -lh    # 列出详细信息并以可读大小显示文件大小
ls -lt    # 按时间列出文件和文件夹详细信息
ls -ltr   # 按修改时间列出文件和文件夹详细信息
ls --color=auto     # 列出文件并标记颜色分类

2.3 pwd

pwd 命令用来显示当前目录的绝对路径。

2.4 mkdir

mkdir 命令用来创建目录。

# 在当前目录中创建 zp 和 zp 的子目录 test
mkdir -p zp/test

# 在当前目录中创建 zp 和 zp 的子目录 test;权限设置为文件主可读、写、执行,同组用户可读和执行,其他用户无权访问
mkdir -p -m 750 zp/test

2.5 rmdir

rmdir 命令用来删除空目录。

# 删除子目录 test 和其父目录 zp
rmdir -p zp/test

2.6 touch

touch 命令有两个功能:一是用于把已存在文件的时间标签更新为系统当前的时间(默认方式),它们的数据将原封不动地保留下来;二是用来创建空文件。

touch test

2.7 rename

rename 命令用字符串替换的方式批量重命名。

# 将 main1.c 重命名为 main.c
touch main1.c
rename main1.c main.c

2.8 find

find 命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则 find 命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。

# 当前目录搜索所有文件,文件内容 包含 “140.206.111.111” 的内容,-type f表示史查找文件,-name '*' 表示所有文件,xargs grep "192.168.101.15"表示从前一个结果中找出包括192.168.101.15的行
find . -type f -name "*" | xargs grep "192.168.101.15"

# 列出当前目录及子目录下所有文件和文件夹
find .

# 在 /home 目录下查找以 .txt 结尾的文件名
find /home -name "*.txt"
# 同上,但忽略大小写
find /home -iname "*.txt"

# 当前目录及子目录下查找所有以 .txt 和 .pdf 结尾的文件
find . -name "*.txt" -o -name "*.pdf"

# 匹配文件路径或者文件
find /usr/ -path "*local*"

# 基于正则表达式匹配文件路径
find . -regex ".*\(\.txt\|\.pdf\)$"
# 同上,但忽略大小写
find . -iregex ".*\(\.txt\|\.pdf\)$"

# 找出 /home 下不是以 .txt 结尾的文件
find /home ! -name "*.txt"

2.9 cp

cp 命令用来将一个或多个源文件或者目录复制到指定的目的文件或目录。它可以将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下。cp 命令还支持同时复制多个文件,当一次复制多个文件时,目标文件参数必须是一个已经存在的目录,否则将出现错误。

参数:
源文件:制定源文件列表。默认情况下,cp 命令不能复制目录,如果要复制目录,则必须使用-R选项;
目标文件:指定目标文件。当“源文件”为多个文件时,要求“目标文件”为指定的目录。

touch file

# 将文件 file 复制到目录 /usr/men/tmp 下,并改名为 file1
cp file /usr/men/tmp/file1

# 将目录 /usr/men下的所有文件及其子目录复制到目录 /usr/zh 中
cp -r /usr/men /usr/zh

# 强行将 /usr/men下的所有文件复制到目录 /usr/zh 中,无论是否有文件重复
cp -rf /usr/men/* /usr/zh

# 将目录 /usr/men 中的以 m 打头的所有 .c 文件复制到目录 /usr/zh 中
cp -i /usr/men m*.c /usr/zh

2.10 mv

mv 命令用来对文件或目录重新命名,或者将文件从一个目录移到另一个目录中。source 表示源文件或目录,target 表示目标文件或目录。如果将一个文件移到一个已经存在的目标文件中,则目标文件的内容将被覆盖。

touch file1.txt file2.txt file3.txt file4.txt
mv file1.txt /tmp                      # 移动单个文件
mv file2.txt file3.txt file4.txt /tmp   # 移动多个文件
mv *.txt /tmp                         # 移动所有 txt 文件

mkdir dir1
mv dir1/ /tmp                         # 移动目录

mkdir dir2
mv /tmp/* dir2                     # 将指定目录中的所有文件移到当前目录中

touch file1.txt
mv file1.txt file2.txt          # 重命名文件

mkdir dir1
mv dir1/ dir2/                  # 重命名目录

2.11 rm

rm 命令可以删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下属的所有文件及其子目录均删除掉。对于链接文件,只是删除整个链接文件,而原有文件保持不变。

rm test.txt               # 删除文件
rm -i test.txt test2.txt  # 交互式删除文件
rm -r *                   # 删除当前目录下的所有文件和目录
rm -r testdir             # 删除目录下的所有文件和目录
rm -rf testdir            # 强制删除目录下的所有文件和目录
rm -v testdir             # 显示当前删除操作的详情

问题

  • 请在/tmp目录下创建一个名叫test.txt的文件和叫dir_test的目录
  • 把test.txt重命名这test1.txt,dir_test重命名为dir_test1
  • 把test1.txt移到于是dir_test1目录下
  • 列出dir_test1目录下的文件
  • 查看/tmp目录下的所有文件
  • 删除dir_test1目录

原创文章,转载请注明出处:http://b.nwumba.cn/article/101/