Linux 中的可执行文件不是与 Windows 一样通过文件扩展名来标识的,而是通过设置文件相应 的可执行属性来实现的。
cd
cd: cd [-L|[-P [-e]] [-@]] [目录]
改变 shell 工作目录。改变当前目录至 <目录>。默认的 <目录> 是 shell 变量 HOME 的值。
变量 CDPATH 定义了搜索含有 <目录> 的目录的搜索路径。CDPATH 中额外的目录名称以冒号 (:) 隔开。空的 CDPATH 表示当前目录。如果 <目录> 以斜杠 (/) 开头,则不会使用 CDPATH。
如果找不到目录,并且 shell 选项 "cdable_vars" 被设定,则假定参数是一个变量名。如果该变量有值,则它的值被当作 <目录>。
选项:
-L 强制跟随符号链接: 在处理 ".." 之后解析 <目录> 中的符号链接
-P 使用物理目录结构而不跟随符号链接: 在处理 ".." 之前
解析 <目录> 中的符号链接
-e 如果使用了 -P 选项,但无法成功确定当前工作目录时,以非零状态退出
-@ 在支持扩展属性的系统上,将一个具有扩展属性的文件当作
含有文件属性的目录。默认情况下,跟随符号链接,正如指定了 "-L" 一样。
".." 的处理方式是,移除路径名中的上一个组成部分,以 <目录> 的开头
或者斜杠为界限。
cd [路径]其中的路径为要改变的工作目录,可为相对路径或绝对路径
pwd(显示当前目录)
可使用“cd –”可以回到前次工作目录。
“./”代表当前目录,“../”代表上级目录。
ls
显示格式:显示格式说明如下。 文件类型与权限 链接数 文件属主 文件属组 文件大小 修改的时间 名字
用法:ls [选项]... [文件]...
列出 <文件>(默认为当前目录)的信息。
-a, --all 不要隐藏以 . 开头的项目(列出目录中所有文件,包括以.开头的隐藏文件)
-A, --almost-all 列出除 . 及 .. 以外的所有项目
--author 与 -l 同时使用时,列出每个文件的作者
-b, --escape 以 C 风格的转义序列表示不可打印的字符
--block-size=大小 与 -l 同时使用时,将文件大小以此处给定的大小为
单位进行缩放;例如:“--block-size=M”;
请参考下文的大小格式说明
-B, --ignore-backups 不列出任何以 ~ 字符结束的项目
-c 与 -lt 共同使用时:根据 ctime 排序并显示
ctime(文件状态最后更改的时间);
与 -l 共同使用时:显示 ctime 并按照名称排序;
其它情况:按照 ctime 排序,最新的最前
-C 每栏由上至下列出项目
--color[=WHEN] 控制是否使用带颜色的输出;WHEN 可以是
“always”(默认缺省值)、“auto”或
“never”;更多信息请见下文
-d, --directory 当遇到目录时列出目录本身而非目录内的文件
-D, --dired 产生适合 Emacs 的 dired 模式使用的结果
-f 不进行排序,-aU 选项生效,禁用 -ls --color
-F, --classify 加上文件类型的指示符号(*/=@| 其中一个)
--file-type 类似,但不后缀‘*’字符
--format=关键字 交错 -x,逗号分隔 -m,水平 -x,长 -l,
单栏 -1,详细 -l,垂直 -C
--full-time 类似 -l --time-style=full-iso
-g 类似 -l,但不列出所有者
--group-directories-first
在文件前分组目录;
此选项可与--sort 一起使用,但是一旦使用
--sort=none (-U) 将禁用分组
-G, --no-group 使用长列表格式时,不输出组名
-h, --human-readable 同时使用 -l 或 -s 时,将大小表示为 1K 234M 2G 等
--si 类似,但是使用 1000 的幂,而不是 1024
-H, --dereference-command-line
跟随命令行中列出的符号链接
--dereference-command-line-symlink-to-dir
跟随命令行中列出的、指向目录的符号链接
--hide=模式 隐藏符合 shell <模式> 的项目
(-a 或 -A 使此选项失效)
--hyperlink[=何时] 文件名使用超链接;<何时> 可以是 "always"
(省略时的默认值)、"auto" 或 "never"
--indicator-style=方式 指定在每个项目名称后加上指示符号方式:
none(默认)、slash(-p)、
file-type(--file-type)以及 classify(-F)
-i, --inode 显示每个文件的索引编号(inode 号)
-I, --ignore=模式 不显示任何匹配指定 shell <模式>的项目
-k, --kibibytes 默认使用 1024 字节的块显示磁盘使用量;
只用于 -s 和每个目录的总计
-l 使用较长格式列出信息
-L, --dereference 当显示符号链接的文件信息时,显示符号链接所指示
的对象而并非符号链接本身的信息
-m 所有项目以逗号分隔,并填满整行行宽
-n, --numeric-uid-gid 类似 -l,但列出用户和组的 ID 号
-N, --literal 输出不加引号的项目名称
-o 类似 -l,但不列出有关组的信息
-p, --indicator-style=slash
对目录追加 "/" 作为指示符号
-q, --hide-control-chars 以“?”字符代替无法打印的字符
--show-control-chars 原样显示无法打印的字符(这是默认行为,除非被调用
本程序的名称是“ls”而且是在终端中进行输出)
-Q, --quote-name 将条目名称括上双引号
--quoting-style=方式 使用指定引用的方式显示条目的名称:
literal, locale, shell, shell-always,
shell-escape, shell-escape-always, c, escape
(该选项优先于 QUOTING_STYLE 环境变量的配置)
-r, --reverse 排序时逆序排列
-R, --recursive 递归地列出子目录
-s, --size 显示给每个文件分配的大小,单位为块
-S sort by file size, largest first
--sort=WORD sort by WORD instead of name: none (-U), size (-S),
time (-t), version (-v), extension (-X)
--time=WORD change the default of using modification times;
access time (-u): atime, access, use;
change time (-c): ctime, status;
birth time: birth, creation;
with -l, WORD determines which time to show;
with --sort=time, sort by WORD (newest first)
--time-style=TIME_STYLE 使用 -l 时显示的时间/日期格式;请见下面
TIME_STYLE 的相关内容
-t 按时间排序,最新的最前;参见 --time
-T, --tabsize=列数 指定制表符宽度为 <列数>,而非默认的 8
-u 与 -lt 一起使用:按照访问时间排序,并显示访问时间;
与 -l 一起使用:显示访问时间,并按文件名排序;
其它情况:按照访问时间排序,最新的最前
-U 不进行排序;按照目录顺序列出项目
-v 对文本中的数字(或版本号)进行自然排序
-w, --width=COLS 设置输出宽度为 COLS 对应的值。0 代表无限制
-x 逐行列出项目而不是逐栏列出
-X 根据扩展名按字母顺序排序
-Z, --context 输出每个文件的所有安全上下文信息
-1 每行只列出一个文件。与 -q 或 -b 共用时避免 '\n'
--help 显示此帮助信息并退出
--version 显示版本信息并退出
mkdir 命令要求创建目录的用户在创建路径的上级目录中具有写权限,并且路径名不能是当前目录中已有的目录或文件名称。
用法:mkdir [选项]... 目录...
若 <目录> 不存在,则创建 <目录>。长选项的必选参数对于短选项也是必选的。
-m, --mode=模式 设置权限模式(类似chmod),而不是 a=rwx 减 umask
-p, --parents 需要时创建目标目录的上层目录,但即使这些目录已存在
也不当作错误处理(即一次可以建立多个目录-多级目录)
-v, --verbose 每次创建新目录都显示信息
-Z 将每个创建的目录的 SELinux 安全上下文设置为默认类型
--context[=上下文] 类似 -Z,但如果指定了 <上下文>,则将 SELinux
或 SMACK 安全上下文设置为 <上下文>
--help 显示此帮助信息并退出
--version 显示版本信息并退出如:
mkdir -m 777 ./wyy
mkdir -p ./hello/my(hello不存在时会自动创建)
cat
用法:cat [选项]... [文件]...
连接一个或多个 <文件> 并输出到标准输出。如果没有指定 <文件>,或者 <文件> 为 "-",则从标准输入读取。
-A, --show-all 等价于 -vET
-b, --number-nonblank 对非空输出行编号,使 -n 失效
-e 等价于 -vE
-E, --show-ends 在每行行末显示 "$"
-n, --number 对输出的所有行编号
-s, --squeeze-blank 不重复输出空行
-t 等价于 -vT
-T, --show-tabs 将 TAB 显示为 ^I
-u (被忽略)
-v, --show-nonprinting 使用 ^ 和 M- 表示法,LFD 和 TAB 字符除外
--help 显示此帮助信息并退出
--version 显示版本信息并退出示例:
cat f - g 先输出 f 的内容,然后输出标准输入的内容,最后输出 g 的内容。
cat 将标准输入的内容复制到标准输出。
cp
用法:cp [选项]... [-T] 源 目标
或:cp [选项]... 源... 目录
或:cp [选项]... -t 目录 源...
将 <源> 复制至 <目标>,或将多个 <源> 复制至 <目录>。长选项的必选参数对于短选项也是必选的。
-a, --archive 等于 -dR --preserve=all(保留链接、文件属性、并赋值其子目录;作用相当于dpr组合)
--attributes-only 仅复制属性而不复制文件数据
--backup[=控制] 为每个已存在的目标文件创建备份
-b 类似 --backup 但不接受参数
--copy-contents 在递归操作时复制特殊文件的内容
-d 等于 --no-dereference --preserve=links(拷贝时保留链接)
-f, --force 如果已存在的目标文件无法打开,则将其删除并重试(删除已存在为目标文件而不提示)
(该选项在与 -n 选项同时使用时将被忽略)
-i, --interactive 覆盖前询问(使前面的 -n 选项失效)
-H 跟随命令行里的 <源> 中的符号链接
-l, --link 硬链接文件以代替复制
-L, --dereference 总是跟随 <源> 里的符号链接
-n, --no-clobber 不要覆盖已存在的文件(使前面的 -i 选项失效)
-P, --no-dereference 从不跟随 <源> 中的符号链接
-p 等于 --preserve=mode,ownership,timestamps(除复制源文件的内容外,还把其修改时间和访问权限也复制到新文件中)
--preserve[=属性列表] 如果可能的话,保留指定的属性(默认:
mode,ownership,timestamps)
其他属性:context、links、xattr、all
--no-preserve=属性列表 不保留指定的属性
--parents 在 <目录> 下使用完整的源文件路径
-R, -r, --recursive 递归地复制目录文件须为一个目录名()
--reflink[=何时] 控制克隆/CoW 副本。见下文
--remove-destination 尝试打开目标文件前先删除已存在的目标
文件(和 --force 选项有区别)
--sparse=何时 控制创建稀疏文件的方式。见下文
--strip-trailing-slashes 删除参数中所有 <源> 末尾的斜杠
-s, --symbolic-link 只创建符号链接而不复制文件
-S, --suffix=后缀 自行指定备份文件的后缀
-t, --target-directory=目录 将所有 <源> 参数复制到 <目录>
-T, --no-target-directory 将 <目标> 视为普通文件
-u, --update 只在 <源> 比目标文件新,或目标文件
不存在时才进行复制
-v, --verbose 显示详细步骤
-x, --one-file-system 不跨越文件系统进行操作
-Z 设置目标文件的 SELinux 安全上下文为默认类型
--context[=上下文] 类似 -Z,但如果指定了 <上下文>,则将 SELinux
或 SMACK 安全上下文设置为 <上下文>
--help 显示此帮助信息并退出
--version 显示版本信息并退出
mv
用法:mv [选项]... [-T] 源 目标
或:mv [选项]... 源... 目录
或:mv [选项]... -t 目录 源...
将 <源> 重命名为 <目标>,或将 <源> 移动至 <目录>。长选项的必选参数对于短选项也是必选的。
--backup[=控制] 为每个已存在的目标文件创建备份
-b 类似 --backup 但不接受参数
-f, --force 覆盖前不询问
-i, --interactive 覆盖前询问
-n, --no-clobber 不覆盖已存在的文件
如果您指定了 -i、-f、-n 中的多个,仅最后一个生效。
--strip-trailing-slashes 去掉每个 <源> 尾部的斜杠
-S, --suffix=后缀 用 <后缀> 替代通常使用的备份文件后缀
-t, --target-directory=目录 将所有 <源> 移动至 <目录> 中
-T, --no-target-directory 将 <目标> 视为普通文件
-u, --update 仅在 <源> 比目标文件更新,或者目标文件
不存在时,才进行移动操作
-v, --verbose 显示详细步骤
-Z, --context 将目标文件的 SELinux 安全上下文设置为默认类型
--help 显示此帮助信息并退出
--version 显示版本信息并退出
rm
用法:rm [选项]... [文件]...
删除 (unlink) 一个或多个 <文件>。-f, --force 忽略不存在的文件和参数,且从不询问
-i 每次删除前询问
-I 在删除超过三个文件或者递归删除前询问一次;此选项比 -i
提示次数更少,但仍可以避免大多数错误的发生
--interactive[=何时] 根据 <何时> 的值进行询问:never、once(同 -I)或者
always(同 -i);如果省略 <何时>,则默认为 always
--one-file-system 递归删除目录时,跳过所有和该目录所对应的命令行参
数不在同一个文件系统上的目录
--no-preserve-root 不要对 "/" 特殊处理
--preserve-root[=all] 不要删除 "/"(默认行为);
如添加了 "all" 参数,将拒绝处理与其父目录位于
不同设备上的命令行参数
-r, -R, --recursive 递归删除目录及其内容
-d, --dir 删除空目录
-v, --verbose 显示详细步骤
--help 显示此帮助信息并退出--version 显示版本信息并退出
实例:
mv -f ./test2/ ./test3/.
将test2目录下的文件整体移至test3后,删除test2文件夹mv -f ./test/* ./test4/
将test下的所有文件拷贝至test4下后将test下的所有文件删除cp -a ./boringC/. ./test/.
将boringC目录下的所有文件拷贝至test目录下,boringC目录及文件会保留不会被删除
mv -r 目录名称 可以删除指定目录,如果没有使用- r 选项,则 rm 不会删除目录
使用该命令时一旦文件被删除,它是不能被恢复的,所以最好使用-i 参数。
chown 修改文件所有这个和组别
用法:chown [选项]... [所有者][:[组]] 文件...
或:chown [选项]... --reference=参考文件 文件...
修改每个 <文件> 的所有者和/或组为给定的 <所有者> 和/或 <组>。
使用 --reference 时,将每个 <文件> 的所有者和组修改为和 <参考文件> 一样。-c, --changes 类似 verbose 选项,但仅在做出修改时进行报告(详尽地描述每个file实际改变了哪些所有权)
-f, --silent, --quiet 不显示大多数错误消息(不打印文件所有权就不能修改的报错信息)
-v, --verbose 为每个处理的文件输出一条诊断信息
--dereference 影响每个符号链接指向的文件(这是默认行为),而非
符号链接本身
-h, --no-dereference 影响符号链接,而非其指向的文件
(仅当系统支持更改符号链接的所有权时,
该选项才有用)
--from=当前所有者:当前组
仅在文件的当前所有者和/或组和这里指定的一致时,才更改
所有者和/或组。其中一个可以省略,表示不对被省略的属性
作出要求
--no-preserve-root 不特殊对待 "/"(默认行为)
--preserve-root 不允许在 "/" 上递归操作
--reference=参考文件 使用指定 <参考文件> 的所有者和组信息,而非
手工指定 <所有者:组> 的值
-R, --recursive 递归操作文件和目录指定了 -R 选项时,以下选项设置如何遍历目录层次。
如果您指定了多于一个选项,那么只有最后一个会生效。-H 如果命令行参数是一个指向目录的符号链接,则对其
进行遍历
-L 遍历每一个遇到的指向目录的符号链接
-P 不遍历任何符号链接(默认)--help 显示此帮助信息并退出
--version 显示版本信息并退出
chgrp 改变文件的组的所有权
用法:chgrp [选项]... 组 文件...
或:chgrp [选项]... --reference=参考文件 文件...
将每个指定 <文件> 的属组变更为 <组>。
使用 --reference 选项时,把指定 <文件> 的属组设置为与 <参考文件> 相同。-c, --changes 类似 verbose 选项,但仅在做出修改时进行报告
-f, --silent, --quiet 不显示大多数错误消息
-v, --verbose 为每个处理的文件输出一条诊断信息
--dereference 影响每个符号链接指向的文件(这是默认行为),而非
符号链接本身
-h, --no-dereference 影响符号链接,而非其指向的文件
(仅当系统支持更改符号链接的所有权时,
该选项才有用)
--no-preserve-root 不特殊对待 "/"(默认行为)
--preserve-root 不允许在 "/" 上递归操作
--reference=参考文件 使用 <参考文件> 的属组信息而非指定一个
<组> 的值
-R, --recursive 递归操作文件和目录指定了 -R 选项时,以下选项设置如何遍历目录层次。
如果您指定了多于一个选项,那么只有最后一个会生效。-H 如果命令行参数是一个指向目录的符号链接,则对其
进行遍历
-L 遍历每一个遇到的指向目录的符号链接
-P 不遍历任何符号链接(默认)--help 显示此帮助信息并退出
--version 显示版本信息并退出示例:
chgrp staff /u 将 /u 的属组更改为 "staff"。
chgrp -hR staff /u 将 /u 及其子目录下所有文件的属组更改为 "staff"。
chown 和chgrp 必须拥有root权限
如同用户修改权限时:使用sudo chown 权限名 目录名
chmod
用法:chmod [选项]... 模式[,模式]... 文件...
或:chmod [选项]... 八进制模式 文件...
或:chmod [选项]... --reference=参考文件 文件...
将每个 <文件> 的模式变更为指定 <模式>。
使用 --reference 时,把每个 <文件> 的模式设置为与 <参考文件> 相同。-c, --changes 类似 verbose 选项,但仅在做出修改时进行报告
-f, --silent, --quiet 不显示大多数错误消息
-v, --verbose 为每个处理的文件输出一条诊断信息
--no-preserve-root 不特殊对待 "/"(默认行为)
--preserve-root 不允许在 "/" 上递归操作
--reference=参考文件 使用 <参考文件> 的模式而非给定 <模式> 的值
-R, --recursive 递归修改文件和目录
--help 显示此帮助信息并退出
--version 显示版本信息并退出
文件的访问权限可表示成:- rwx rwx rwx。
访问权限:读(r)、写(w)和运行(x)
用户级别:文件拥有者(u)、所属的用户组(g)和系统里的其他用户(o)
用加号“+”代表增加权限,用减号“−” 删除权限,等于号“=”设置权限
- a是all, u是user, g:group o:other
转换后8进制数 2进制 对应权限 转换后8进制数 2进制 对应权限 0 000 无任何权限 1 001 仅可执行 2 010 只写 3 011 只写和执行 4 100 只读 5 101 只读和执行 6 110 读和写 7 111 读写执行 使用 chmod 必须具有 root 权限。
grep 在指定文件中搜索特定的内容,并将含有这些内容的行标准输出
-c 只输出匹配行的计数
-I 不区分大小写-只适用于单字符
-h 查询多文件时不显示文件名
-l 查询多文件时只输出包含匹配字符的文件名
-n 显示匹配行及行号
-s 不显示不存在或无匹配文本的错误信息
-v显示不包含匹配文本的所有行
用法:grep [选项]... 模式 [文件]...
在每个 <文件> 中查找指定的 <模式>。选项 为指定要搜索的内容格式,却行文件及路径,表示在当前目录下搜索
例如:grep -i 'hello world' menu.h main.c
<模式> 可以包含多个模式字符串,使用换行符进行分隔。模式选择与解释:
-E, --extended-regexp <模式> 是扩展正则表达式
-F, --fixed-strings <模式> 是字符串
-G, --basic-regexp <模式> 是基本正则表达式
-P, --perl-regexp <模式> 是 Perl 正则表达式
-e, --regexp=模式 使用指定的 <模式> 进行匹配
-f, --file=文件 从指定的 <文件> 中获得 <模式>
-i, --ignore-case 对于模式和数据,忽略大小写
--no-ignore-case 不要忽略大小写(默认)
-w, --word-regexp 仅匹配整个单词
-x, --line-regexp 仅匹配整行
-z, --null-data 数据行以 0 字节 (NUL) 结束,而非换行符杂项:
-s, --no-messages 不显示错误信息
-v, --invert-match 选中不匹配的行
-V, --version 显示版本信息并退出
--help 显示此帮助信息并退出输出控制:
-m, --max-count=数值 选中 <数值> 行后停止执行
-b, --byte-offset 输出的同时打印字节偏移量
-n, --line-number 输出的同时打印行号
--line-buffered 每行输出后排空输出缓冲区
-H, --with-filename 输出的同时打印文件名
-h, --no-filename 输出时不显示文件名前缀
--label=标签 使用指定 <标签> 作为标准输入文件名前缀
-o, --only-matching 只显示行中非空的匹配部分
-q, --quiet, --silent 不显示所有常规输出
--binary-files=类型 假定二进制文件是 <类型>;
<类型> 可以是 "binary"、"text" 或 "without-match"
-a, --text 等价于 --binary-files=text
-I 等价于 --binary-files=without-match
-d, --directories=动作 处理目录的方式;
<动作> 可以是 "read"、"recurse" 或 "skip"
-D, --devices=动作 处理设备、FIFO 和套接字的方式;
<动作> 可以是 "read" 或 "skip"
-r, --recursive 等价于 --directories=recurse
-R, --dereference-recursive 同上,但跟随所有符号链接
--include=GLOB 只查找匹配 GLOB(含通配符的文件模式)的文件
--exclude=GLOB 跳过匹配 GLOB 的文件
--exclude-from=文件 跳过匹配 <文件> 内容中任一文件模式的文件
--exclude-dir=GLOB 跳过匹配 GLOB 的目录
-L, --files-without-match 只打印没有被选中的行的 <文件> 的名称
-l, --files-with-matches 只打印有被选中的行的 <文件> 的名称
-c, --count 只打印每个 <文件> 的被选中的行的数量
-T, --initial-tab 使制表符对齐(如有必要)
-Z, --null 在 <文件> 名后打印 0 字节 (NUL)文件控制:
-B, --before-context=数值 打印前面 <数值> 行上下文
-A, --after-context=数值 打印后面 <数值> 行上下文
-C, --context=数值 打印前后 <数值> 行上下文
-数值 等价于 --context=数值
--group-separator=分隔符 在带有上下文的匹配块之间打印 <分隔符>
--no-group-separator 不要在带有上下文的匹配块之间打印分隔符
--color[=何时],
--colour[=何时] 使用标记高亮匹配的字符串;
<何时> 可以是 "always"、"never" 或 "auto"
-U, --binary 不要清除行尾的 CR 字符 (MSDOS/Windows)
忽略子目录:grep -d skip。
当预料到有许多输出,可以通过管道将其转到“less”(分页器)上阅读:如 grep "h" ./ -r |less分页阅读
grep 特殊用法: grep pattern1|pattern2 files:显示匹配 pattern1 或 pattern2 的行; grep pattern1 files|grep pattern2:显示既匹配 pattern1 又匹配 pattern2 的行;
pattern 正则表达式
正则表达式的主要参数有: · \:忽略正则表达式中特殊字符的原有含义; · ^:匹配正则表达式的开始行; · $:匹配正则表达式的结束行; · :到匹配正则表达式的行结束; · [ ]:单个字符,如[A]即 A 符合要求; · [-]:范围,如[A-Z],即 A、B、C 一直到 Z 都符合要求; · 。:所有的单个字符; · *:所有字符,长度可以为 0
find 指定目录中搜索文件,权限:所有用户
find [路径][选项][描述]
路径 搜索文件路径
选项常见参数列表
-depth使用深度级别的查找过程方式,在某层指定目录中优先查找文件内容
-mount 不在其他文件系统(如 Msdos、Vfat 等)的目录和文件中查找
描述常见参数列表
-name 支持通配符*和?
-user 用户名:搜索文件属主为用户名(ID 或名称)的文件
-print 输出搜索结果,并且打印
locate 查找文件
ln 为某文件在另一个位置建立一个符号链接,当需要在不同的目录用到相同的文件 时,Linux 允许用户不用在每一个需要的目录下都存放一个相同的文件,而只需将其他目录 下文件用 ln 命令链接即可,这样就不必重复地占用磁盘空间。ln[选项] 目标 目录
常见参数 -s 建立符号链接(这也是通常唯一使用的参数)。
ln 的链接又软链接和硬链接两种: 软链接就是上面所说的 ln -s ** **,它只会在用户选定的位置上生成一个文件的镜像, 不会重复占用磁盘空间,平时使用较多的都是软链接; 硬链接是不带参数的 ln ** **,它会在用户选定的位置上生成一个和源文件大小相同的 文件,无论是软链接还是硬链接,文件都保持同步变化。