Linux 常用命令 - 目录、文件等
valten Lv4

创建目录:mkdir

  • 命令格式:mkdir [选项] 目录
  • 命令功能:在指定位置创建指定文件名命名的文件夹或目录,要创建文件夹或目录的用户必须对所创建的文件夹的父文件夹具有写权限,且同一个目录下不能有重名的
  • 命令参数:
    • -m:<mode 模式> 设定权限 < 模式 >(类似 chmod ),而不是 rwxrwxrwx
    • -p: 可以是一个路径的名称,此时若路径中的某些目录不存在,加上此选项后系统将自动建立好 + 那些尚不存在的目录
    • -v: 显示操作进程
  • 命令实例:
    • mkdir test –> 在当前目录下创建 test 目录
    • mkdir –p ./test/1/11 –> 在当前目录下创建 test/1/11 目录,每级都会建起来
    • mkdir -p /usr/local/mydata/{data,tmp,run,log,etc} –> 同时建多个目录
    • mkdir –m 777 test777 –> 在当前目录下创建权限为 777 的目录
    • mkdir –v test –> 创建目录时会显示操作进程

查看目录:ls

  • 命令格式:ls [选项] [目录名]
  • 命令功能:列出目标目录中所有的子目录和文件
  • 命令参数:
    • -a:列出目录下的所有文件,包括以. 开头的隐藏文件
    • -l:除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来
    • -t:以文件的修改时间顺序排序
    • -c:以文件状态最后更改的时间 ctime 顺序排序,配合 -lt 根据 ctime 排序及根据 ctime , 配合 -l 显示 ctime 但根据名称排序
    • -u:以文件的访问时间顺序排序,配合 -lt 显示访问时间,而且依据访问时间排序,配合 -l 显示访问时间,但根据名称排序
    • -v:依据版本进行排序
    • -x:逐行列出项目,而不是逐栏列出
    • -X:根据扩展名进行排序
    • -1:每行只列出一个文件
    • -F:可以在显示子目录的时候在它的文件名之后加一个 “/” ,而文件后面的 “*” 表示这是一个可执行程序
    • -R:递归显示所有文件和目录
  • 命令实例:
    • ls –l t* –> 列出当前目录中所有以 “t” 开头的目录和文件的信息

统计目录大小:du

  • du -sh / –> 统计根目录大小
  • du -sh /* –> 统计根目录下每个子目录大小
  • du / –max-depth=1 -h –> 统计根目录(/)下,所有一级目录(–max-depth)的总大小,如 /var、/dev 等

切换目录:cd

  • 命令格式:cd [目录名]
  • 命令功能:切换当前目录至 dirName
  • 命令实例:
    • cd / –> 进入系统根目录
    • cd .. 或者 cd ..// –> 进入当前目录的上一级目录
    • cd 或者 cd ~ –> 进入当前用户的主目录
    • cd – –> 返回进入此目录之前所在的目录
    • cd !$ –> 把上个命令的参数作为 cd 参数使用

删除空目录:rmdir

  • 命令格式:rmdir [选项] 目录
  • 命令功能:该命令从一个目录中删除一个或多个子目录项(前提是空目录),删除某目录时也必须对父目录有写权限
  • 命令参数:
    • -p:递归删除父目录,当子目录被删除后如果使其父目录成为空目录的话,则父目录一同被删除
    • -v: 显示操作进程
  • 命令实例:
    • rmdir –p test/t1 –> 当 t1 被删除后如果使 test 成为空目录的话,则 test 一同被删除

创建文件或修改文件时间:touch

  • 命令格式:touch [选项] 文件
  • 命令功能:touch- 命令参数可更改文档或目录的日期时间,包括存取时间和更改时间
  • 命令参数:
    • -a:只更新访问时间,不改变修改时间
    • -c:不创建不存在的文件
    • -m:只更新修改时间,不改变访问时间
    • -t:将时间修改为参数指定的日期,如:07081556 代表 7 月 8 号 15 点 56 分
    • -r:将指定文档或目录的日期时间,设成和参考文档或目录的日期时间一样
  • 命令实例:
    • touch test –> 在当前目录下创建文件名为 test 的文件或者更新已有文件 test 的修改时间和访问时间
    • touch –r 1.txt 2.txtt –> 更新 2.txt 的时间和 1.txt 时间戳相同

复制目录 / 文件:cp

  • 命令格式:cp [选项] sourceFileName targetFileName
  • 命令功能:将源文件复制至目标文件,或将多个源文件复制至目标文件
  • 命令参数:
    • -i:<interactive 互动> 如果文件将覆盖目标中的文件,会提示确认
    • -r:<recursive 递归> 这个选项会复制整个目录树、子目录以及其他
    • -v:显示文件的复制进度
  • 命令实例:
    • cp test.log test2.log –> 复制文件
    • cp test.log aaa/test2.log –> 将当前目录下的 test.log 文件复制到 aaa 目录下,并重命名为 test2.log
    • cp –r test3 test5 –> 复制整个目录

移动、重命名目录 / 文件:mv

  • 命令格式:mv [选项] 源文件或目录 目标文件或目录
  • 命令功能:视 mv 命令中第二个参数类型的不同(是目标文件还是目标目录), mv 命令将文件重命名或将其移至一个新的目录中。当第二个参数类型是文件时, mv 命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。当第二个参数是已存在的目录名时,源文件或目录参数可以有多个,mv 命令将各参数指定的源文件均移至目标目录中。在跨文件系统移动文件时, mv 先拷贝,再将原有文件删除,而链接该文件的链接也将丢失
  • 命令参数:
    • -i:<interactive 互动> 若目标文件已经存在时,就会询问是否覆盖
    • -f:<强制> 如果目标文件已存在,不会询问而直接覆盖,属于很危险的选项
    • -v:显示文件的移动进度
    • -b:若需要覆盖文件,则覆盖前先行备份。
    • -t:指定 mv 的目标目录,该选项适用于移动多个源文件到一个目录的情况,此时目标目录在前,源文件在后
  • 命令实例:
    • mv test.log test –> 移动文件或文件重命名。如果 test 是已存在的目录,则移动文件,否则重命名文件
    • mv test.log test2.log test3.log test –> 移动多个文件到目录中
    • mv test.log test2.log –> 文件重命名
    • mv test.log test/test2.log –> 移动文件到其他目录并重命名
    • mv dir1 dir2 –> 目录的移动或重命名。如果目录 dir2 不存在,将目录 dir1 改名为 dir2 ,否则将 dir1 移动到 dir2 中
    • mv * ../ –> 移动当前文件夹下的所有文件到上一级目录
    • mv test3/*.txt test5 –> 把当前目录的一个子目录里的文件移动到另一个子目录里
    • mv -b test.log test2.log –> 文件被覆盖前做简单备份

删除目录 / 文件:rm

  • 命令格式:rm [选项] 文件
  • 命令功能:删除指定目录中的一个或多个文件或目录,如果没有使用 -r 选项,则 rm 不会删除目录,如果使用 rm 来删除文件,通常仍可以将文件恢复原状
  • 命令参数:
    • -i:<interactive 互动> 提示确认删除
    • -f:<force 强制> 代替互动模式,不提示确认删除
    • -r:<recursive 递归> 将删除某个目录以及其中所有的子目录和文件
    • -v:<recursive 强制> 显示文件的删除进度
  • 命令实例:
    • rm 11.log –> 删除文件
    • rm -f 11.log –> 强行删除文件
    • rm –r test –> 递归删除目录和文件
    • rm –rf test –> 递归强行删除目录和文件
    • rm – -f –> 删除以 -f 开头的文件

查看 / 合并文件:cat、tac(反向)

  • 命令格式:cat [选项] [文件]
  • 命令功能:cat 主要有三大功能:
    • 一次显示整个文件:cat filename
    • 创建一个新文件:cat>filename
    • 将几个文件合并为一个文件:cat file1 file2>file
  • 命令参数:
    • -A:
    • -b: 对非空输出行编号
    • -n: 对输出的所有行编号,由 1 开始对所有输出的行数编号
    • -s: 有连续两行以上的空白行,就代换为一行的空白行
    • -E: 在每行结束处显示 $
    • -T: 将跳格字符显示为 ^I
  • 命令实例:
    • cat 1.log –> 显示 1.log 文件内容
    • cat –n 1.log –> 显示 1.log 文件内容(加上行号)
    • cat –b 1.log 2.log –> 合并显示 1.log 和 2.log 文件内容(加上行号,空白行不加)
    • cat>1.log –> 创建新文件 1.log
    • cat –n 1.log>2.log –> 将 1.log 的文件内容加上行号后写入 2.log 这个文件里,如果 2.log 不存在,则会自动新建

查看文件:more(分页)

  • 命令格式:more [-dlfpcsu][-num][+/pattern][+linenum][file…]
  • 命令功能:more 命令和 cat 的功能一样都是查看文件里的内容,但有所不同的是 more 可以按页来查看文件的内容,还支持直接跳转行等功能
  • 命令参数:
    • +3:从第 3 行开始显示
    • -3:定义屏幕大小为 3 行
    • +/pattern:在每个档案显示前搜寻该字串( pattern ),然后从该字串前两行之后开始显示
    • -c:从顶部清屏,然后显示
    • -p:通过清除窗口而不是滚屏来对文件进行换页,与 -c 选项相似
  • 常用操作命令:
    • Enter:向下 n 行,需要定义,默认为 1 行
    • Ctrl+F 或空格键:向下滚动一屏
    • Ctrl+B: 返回上一屏
    • =: 输出当前行的行号
    • :f:输出文件名和当前行的行号
    • V:调用 vi 编辑器
    • q:退出 more
  • 命令实例:
    • more +3 1.log –> 显示文件中从第 3 行起的内容
    • more -3 1.log –> 设定每屏显示行数
    • more +/day3 1.log –> 从文件中查找第一个出现 “day3” 字符串的行,并从该处前两行开始显示输出
    • ls –l | more -5 –> 每页显示 5 个文件信息

查看文件:less(分页)

  • 命令格式:less [参数] 文件
  • 命令功能:less 与 more 类似,但使用 less 可以随意浏览文件,而且 less 在查看之前不会加载整个文件
  • 命令参数:
    • -b:<缓冲区大小> 设置缓冲区的大小
    • -e:当文件显示结束后,自动离开
    • -f:强迫打开特殊文件,例如外围设备代号、目录和二进制文件
    • -g:只标志最后搜索的关键词
    • -i:忽略搜索时的大小写
    • -m:显示类似 more 命令的百分比
    • -N:显示每行的行号
    • -o:<文件名> 将 less 输出的内容在指定文件中保存起来
    • -Q:不使用警告音
    • -s:显示连续空行为一行
    • -S:行过长时间将超出部分舍弃
    • -x:<数字> 将 “tab” 键显示为规定的数字空格
  • 常用操作命令:
    • / 字符串:向下搜索 “字符串” 的功能
    • ? 字符串:向上搜索 “字符串” 的功能
    • n:重复前一个搜索(与 / 或 ? 有关)
    • N:反向重复前一个搜索(与 / 或 ? 有关)
    • b:向后翻一页
    • d:向后翻半页
    • h:显示帮助界面
    • Q:退出 less 命令
    • u:向前滚动半页
    • y:向前滚动一行
    • 空格键:滚动一行
    • 回车键:滚动一页
    • [pagedown]:向下翻动一页
    • [pageup]:向上翻动一页
  • 命令实例:
    • less 1.log –> 查看文件
    • less 1.log 2.log –> 查看多个文件
    • ps -ef | less –> ps 查看进程信息并通过 less 分页显示
    • history | less –> 查看命令历史使用记录并通过 less 分页显示

查看文件:head(开头内容)

  • 命令格式:head [参数] [文件]
  • 命令功能:用来显示文件的开头至标准输出中,默认 head 命令打印其相应文件的开头 10 行
  • 命令参数:
    • -n:<行数> 显示的行数
    • -c:<字节> 显示的字节数
    • -q:隐藏文件名
    • -v:显示文件名
  • 命令实例:
    • head -n 5 1.log –> 显示文件内容(开头的 5 行)
    • head -n 5 1.log > 2.log –> 将文件内容(开头的 5 行)输出到 2.log 文件中
    • head -n -5 1.log –> 显示文件内容(除了最后的 5 行)
    • head -c 20 1.log –> 显示文件内容(开头的 20 个字节)
    • head -c -20 1.log –> 显示文件内容(除了最后的 20 个字节)

查看文件:tail(结尾内容,支持动态刷新)

  • 命令格式:tail [参数] [文件]
  • 命令功能:用于显示指定文件末尾内容,并且不断刷新(常用于查看日志文件)。不指定文件时,作为输入信息进行处理
  • 命令参数:
    • -f:循环读取
    • -n:<行数> 显示的行数
    • -c:<字节> 显示的字节数
    • -q:不显示处理信息
    • -v:显示详细的处理信息
  • 命令实例:
    • tail -f 1.log –> 循环查看文件末尾内容
    • tail -n 5 1.log –> 显示文件内容(最后的 5 行)
    • tail -n 5 1.log > 2.log –> 将文件内容(最后的 5 行)输出到 2.log 文件中
    • tail -n +5 1.log –> 显示文件内容(除了开头的 5 行)
  • 本文标题:Linux 常用命令 - 目录、文件等
  • 本文作者:valten
  • 创建时间:2020-04-24 09:17:07
  • 本文链接:https://valtenhyl.github.io/Linux/linux-comand/
  • 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
 评论