Linux 常用命令总结(一):文件和目录操作命令


整理下linux基础命令,对于各种命令,仅仅列出常用的选项,如果想知道更详细,建议用cmd -h或者man cmd查看。
以下是最基本的文件操作命令。

pwd

 不带参数, 显示当前目录


cd [path]

 切换当前工作目录

范例

  • cd 不带参数,切换到用户的home目录
  • cd ~ 和不带参数一样,切换到用户的home目录
  • cd - 退回到切换前的目录
  • cd .. 切换到上一级目录

ls [-alh] [path]

 显示目录文件列表;不带path参数,显示当前目录文件列表

选项

  • -a 显示所有文件及目录,包括隐藏文件和目录
  • -l 输出结果用单列格式显示,包含更详细的信息(默认输出为多列)
  • -h 将文件和目录大小以便于人类阅读的方式显示(eg, 21K, 15M, 3.2G)

mkdir [OPTIONS] DIRECTORY...

 如果目录不存在,则创建目录(可以)

选项

  • -p 一次创建多级目录,如mkdir -p a/b/c/d
  • -v 对每个创建的目录输出一条消息

rmdir [OPTIONS] DIRECTORY...

 删除空目录(只能删除空目录)

选项

  • -p 一次删除多级空目录,如rmdir -p a/b/c/d
  • -v 对每个删除的目录输出一条消息

rm [OPTIONS] FILE...

 删除文件或目录(这个比rmdir更常用)

选项

  • -f 忽略不存在的文件或参数而不提示
  • -r -R 递归删除目录
  • -i 每一次删除前提示选择是否删除
  • -v 解释命令过程中的细节

touch [OPTIONS] FILE...

 如果FILE存在,更新FILE的访问和修改时间到当前时间
 如果文件不存在并且-c没有指定,则创建一个空文件

选项

  • -a 仅仅更新文件访问时间
  • -m 仅仅更新文件修改时间
  • -c 不创建任何文件

cp [OPTIONS] SOURCE DEST
cp [OPTIONS] SOURCE... DIRECTORY
cp [OPTIONS] -t DIRECTORY SOURCE...

 第一种格式是单文件拷贝;后面两种是将多文件拷贝到指定目录中

选项

  • -n 不覆盖已经存在的文件
  • -i 碰到已存在的文件时提示选择是否覆盖
  • -f 碰到已存在的文件直接覆盖
  • 如果-n-i都存在,只有后面一个生效;如果-n存在,则忽略-f
  • -l 生成硬链接而不实际发生拷贝
  • -s 生成软连接(符号链接)而不实际发生拷贝
  • -v 解释命令过程中的细节

mv [OPTIONS] SOURCE DEST
mv [OPTIONS] SOURCE... DIRECTORY
mv [OPTIONS] -t DIRECTORY SOURCE...

 第一种格式是单文件移动并/或重命名;后面两种是将多文件移动到指定目录中

选项

  • -n 不覆盖已经存在的文件
  • -i 碰到已存在的文件时提示选择是否覆盖
  • -f 碰到已存在的文件直接覆盖
  • 如果-n-i-f存在不止一个,只有最后一个生效
  • -u 仅当目标文件不存在或者SOURCE文件较新时移动文件
  • -v 解释命令过程中的细节

cat [OPTIONS] FILE...

 1. 显示整个文件内容 cat file
 2. 将标准输入写入一个新的文件(创建文件) cat > file (以Ctrl+D作为输入结束)
 3. 将一个或多个文件内容合并写入到另一个文件 cat file1 file2 > file3 (文件3的内容将丢失)
 4. 将一个或多个文件内容追加到另一个文件末尾 cat file1 file2 >> file3

选项

  • -n 显示输出行号(不是文件的真实行号)

  • -s 显示时缩减连续多个空行为一个空行

    范例

  • cat <<EOF > file或者cat > file <<EOF 将标准输入写入文件并以EOF结束(这里EOF可以替换为任意常规字符串)

  • cat -n file1 file2 > file3 将file1, file2的内容加上行号输入到file3

  • cat /dev/null > file 清空文件内容


head [OPTIONS] FILE...

 输出文件的开头部分内容,默认输出前10行。如果是单个文件,默认不输出文件名;如果是多个文件,则默认输出文件名。

选项

  • -c<num> 输出开头的num个字节;如果num以-开头,则输出除最后num字节外的全部内容
  • -n<num> 输出开头的num行;如果num以-开头,则输出除最后num行外的全部内容
  • -q 强制不输出文件名
  • -v 强制输出文件名

tail [OPTIONS] FILE...

 输出文件的最后部分内容,默认输出最后10行。如果是单个文件,默认不输出文件名;如果是多个文件,则默认输出文件名。

选项

  • -c<num> 输出最后的num个字节;如果num以-开头,则输出除前num字节外的全部内容
  • -n<num> 输出最后的num行;如果num以-开头,则输出除前num行外的全部内容
  • -q 强制不输出文件名
  • -v 强制输出文件名
  • -f 如果文件内容增长, 输出新增加的内容

more [OPTIONS] FILE...

 more命令是一个基于vi编辑器文本过滤器,它以全屏幕的方式按页显示文本文件的内容,支持vi中的关键字定位操作。more名单中内置了若干快捷键,常用的有H(获得帮助信息),Enter(向下翻滚一行),空格(向下滚动一屏),Q(退出命令)。 more命令只能向前浏览文件。

选项

  • +<num> 指定从num行开始显示
  • -<num> 指定每屏显示的num行
  • -d 显示提示[press space to continue,’q’ to quit.]”和“[Press ‘h’ for instructions]
  • -c 不进行滚屏操作,每次刷新当前屏幕
  • -s 将多个空行压缩成一行显示
  • -u 禁止下划线

less [OPTIONS] FILE...

 less命令的作用与more十分相似,都可以用来浏览文字档案的内容,不同的是less命令允许用户向前或向后浏览文件,而more命令只能向前浏览。用less命令显示文件时,用PageUp键向上翻页,用PageDown键向下翻页,按Q键退出less程序。

选项

  • -e 文件内容显示完毕后,自动退出
  • -f 强制显示文件
  • -g 不加亮显示搜索到的所有关键词,仅显示当前显示的关键字,以提高显示速度
  • -l 搜索时忽略大小写的差异
  • -N 每一行行首显示行号
  • -s 将连续多个空行压缩成一行显示
  • -S 在单行显示较长的内容,而不换行显示
  • -x<num> 将TAB字符显示为指定个数的空格字符