linux 介绍Linux 是一种开源的类 Unix 操作系统,广泛应用于服务器、个人电脑和嵌入式系统,因其稳定性和灵活性而受到欢迎。
Linux的特点:
开源:Linux 的源代码是公开的,任何人都可以自由获取、修改和分发,这使得它拥有庞大的开发者社区,推动了其不断发展和创新。
稳定性:Linux 被认为是一个性能稳定的操作系统,尤其适合用于服务器环境。
多样性:Linux 有许多不同的发行版,如 Ubuntu、Red Hat、CentOS、Debian 等,每个发行版都有其特点和适用场景
安全性:Linux 系统通常被认为比其他操作系统更安全,尤其是在服务器和网络环境中,因其权限管理和用户管理机制较为严格。
其中linux与windows最大的区别之一就是windows是开箱即用的能用纯ui使用的,但用linux你就不得不与命令行打交道, 但好消息是linux提供了比windows乐色一样的命令行强大的多的命令行工具帮住我们管理文件、目录、软件、配置和系统。
查询命令的使用方法 你不可能完整的记住所有命令的使用方法和参数,最好的方法就是知道如何去查询命令该如何使用,以下介绍两种查询方法
{command} --help:大多数命令都会提供一个--help的flag项,如果你不清楚一个命令有什么用,那就大胆的--help你就能得到你需要的细节
例如对ls进行查询:
输出:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 用法:ls [选项]... [文件]... 列出 <文件>(默认为当前目录)的信息。 如果既没有指定 -cftuvSUX 中任何一个,也没有指定 --sort,则按字母排序项目。 长选项的必选参数对于短选项也是必选的。 -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[=何时] 指定 <何时> 使用彩色输出;更多信息请见下文 -d, --directory 列出目录本身,而不是目录的内容 -D, --dired 产生适合 Emacs 的 dired 模式使用的输出 -f 等于 -a -U -F, --classify[=何时] 指定 <何时> 在项目后追加指示符号(*/=>@| 中的一个) --file-type 类似 -F,但不追加 "*" 字符 --format=关键字 across,horizontal (-x), commas (-m), long (-l), single-column (-1), verbose (-l), vertical (-C) --full-time 等于 -l --time-style=full-iso -g 类似 -l,但不列出所有者 --group-directories-first 将目录排在文件前面 -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[=何时] 指定 <何时> 使用超链接显示文件名 --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=关键字 按照 <关键字> 而非默认值 "名称 (name)" 进行排序: none(同 -U)、size(同 -S)、time(同 -t)、 version(同 -v)、extension(同 -X)、name、width --time=关键字 选择用于显示或排序的时间戳; 访问时间(同 -u):atime、access、use; 元数据变更时间(同 -c):ctime、status; 修改时间(默认):mtime、modification; 创建时间:birth、creation; 和 -l 同时使用时,<关键字> 指定要显示的时间类型; 和 --sort=time 同时使用时,按照 <关键字> 进行排序(最新的最前) --time-style=时间风格 使用 -l 时显示的时间/日期格式;参见下文 <时间风格> -t 按时间排序,最新的最前;参见 --time -T, --tabsize=列数 指定制表符宽度为 <列数>,而非默认的 8 -u 与 -lt 同时使用时:显示访问时间且按访问时间排序; 与 -l 同时使用时:显示访问时间但按名称排序; 其他情况:按访问时间排序,最新的最前 -U 不对目录项目进行排序 -v 对文本中的数字(或版本号)进行自然排序 -w, --width=列数 设置输出宽度为 <列数>。0 表示无限制 -x 逐行列出项目而不是逐列列出 -X 按照扩展名的字母顺序排序 -Z, --context 输出每个文件的所有安全上下文信息 --zero 以 NUL 字符而非换行结束每个输出行 -1 每行只列出一个文件 --help 显示此帮助信息并退出 --version 显示版本信息并退出 <大小> 参数是一个整数,后面可以跟一个单位(例如:10K 指 10*1024)。 可用的单位有 K、M、G、T、P、E、Z、Y、R、Q(1024 的幂), 以及 KB、MB、...(1000 的幂)。 也可以使用二进制前缀:KiB=K、MiB=M,以此类推。 <时间风格> 参数可以是 full-iso、long-iso、iso、locale,或者 +格式。 <格式> 的解析方式同 date(1)。如果 <格式> 是 格式1<换行符>格式2 的话, 则 <格式1> 将应用于时间较久远的文件,<格式2> 将应用于时间较近的文件。 <时间风格> 如果带有 "posix-" 前缀,则它只会在区域设置非 POSIX 时生效。 另外,可以使用 TIME_STYLE 环境变量设置默认使用的风格。 <何时> 参数的默认值是 "always",也可以设为 "auto" 或 "never"。 使用颜色来区分文件类型的功能默认禁用,也可以使用 --color=never 禁用。 若使用 --color=auto 选项,ls 只在标准输出连接至终端时才生成颜色代码。 LS_COLORS 环境变量可以改变颜色设置。可以使用 dircolors(1) 命令来设置它。 退出状态: 0 表示正常, 1 表示小问题(例如:无法访问子目录), 2 表示严重问题(例如:无法使用命令行参数)。 请向 <[email protected] > 报告软件错误。 GNU coreutils 的主页:<https://www.gnu.org/software/coreutils/> GNU 软件一般性帮助:<https://www.gnu.org/gethelp/> 完整文档 <https://www.gnu.org/software/coreutils/ls> 或者在本地使用:info '(coreutils) ls invocation'
man {command}:查看完成的使用手册man命令是manual的缩写,用来查看各种命令、函数和配置的完整手册,一般会比--help查到的信息更加完整
使用方法:man [选项] [节号] 命令
主题:
-f:显示与指定关键字相关的手册页面。
-k:搜索手册页中与关键字匹配的条目。
-a:显示所有匹配的手册页面。
-w:仅显示手册页的位置,而不显示其内容。
常见的节号包括:
用户命令
系统调用
C库函数
设备和特殊文件
文件格式和约定
游戏和演示
杂项
系统管理命令
例如:
1 2 3 4 5 6 7 8 # 查看ls的用法 man ls # 要查看 C 语言标准库函数 printf 的手册页面,可以执行: man 3 printf # 要搜索包含特定关键字的手册页面条目,可以使用 -k 选项: man -k keyword
man的显示会调用分页器,其的具体使用教程会在查看内容部分讲解,此处只需要知道man的用法即可
文件与目录相关命令 ls:列出目录命令ls的语法是ls [选项] [目录/文件]
最核心的显示格式选项:
-l(长格式)是使用频率最高的选项,输出包含权限、链接数、所有者、组、大小、修改时间和文件名。
-h(人类可读)必须配合-l或-s使用,把字节数转成1K、234M这类易读单位。
-a/-A控制隐藏文件:-a显示所有包括.和..;-A显示隐藏文件但不显示这两个特殊目录。
-F/--classify在文件名后追加类型指示符:目录加/,可执行文件加*,符号链接加@,管道加|。
排序与时间相关:
递归与目录处理:
-R递归列出所有子目录内容,不推荐使用,更推荐使用tree命令,能更直观的展示目录层级。
信息增强选项:
-i显示inode号(linux文件或目录唯一的标识码)。
-g让目录排在文件前面。
-L对符号链接显示其指向目标的信息,而非链接本身。
常用组合速查:
组合
效果
ls -lh
详细列表+易读大小(最常用)
ls -lht
详细列表+易读大小+按时间排序
ls -la
详细列表+包含隐藏文件
ls -lha
上述两者的结合
pwd: 当前目录命令这是一个相当简单的命令,就两种使用方法
pwd/pwd -L(Logical):显示环境变量的逻辑目录
pwd -P(Physical):解析符号链接,显示真实的底层的物理目录
cd: 切换目录命令cd的语法:cd [目录]
参数也和pwd一样只有-L/-P,且用法一致,-P会额外将pwd当前目录重置为真实的物理目录
常见的特殊参数:
不带参数/cd ~:直接回到当前用户的home目录
..:回到上一级目录
-: 回到上一个工作目录,在两个工作目录间切换成很常用
~{username}: 回到某个用户的home目录