Loading... # linux命令入门 ## ls 命令的参数与选项 1. ls命令的参数的作用 可以指定要查看的文件夹(目录)的内容,如果不给定参数,就查看当前工作目录的内容 2. ls命令的选项: * -a选项,可以展示出隐藏的内容 * 以.开头的文件或文件夹默认被隐藏,需要-a才能显示出来 * -l选项,以列表的形式展示内容,并展示更多细节 * -h选项,需要和-l选项搭配使用,以更加人性化的方式显示文件的大小单位 3. 命令的选项组合使用 * 命令的选项是可以组合使用的,比如:`ls -lah`,等同于`ls -a -l -h` ## 目录切换相关命令 1. cd命令的作用 * cd命令来自英文:Change Directory * cd命令可以切换当前工作目录,语法是:<br>`cd [Linux路径]` * 没有选项,只有参数,表示目标路径 * 使用参数,切换到指定路径 * 不使用参数,切换工作目录到当前用户的HOME 2. pwd命令的作用 * pwd命令来自英文:Print WorkDirectory * pwd命令,没有选项,没有参数,直接使用即可 * 作用是:输出当前所在的工作目录 ## 相对路径、绝对路径 1.相对路径和绝对路径 * 绝对路径:以根目录做起点,描述路径的方式,路径以/开头 * 相对路径:以当前目录做起点,描述路径的方式,路径不需以/开头 * 如无特殊需求,后续学习中,将经常使用相对路径表示 2.特殊路径符有哪些? * .表示当前目录,比如cd或`cd ./Desktop` * ..表示上一级目录,比如: `cd .`或`cd ./..` * ~表示用户的HOME目录,比如: `cd~` 或 `cd~/Desktop` ## mkdir命令 1. mkdir命令的语法和功能 * mkdir用以创建新的目录(文件夹) * 语法: `mkdir [-p] Linux路径` * 参数必填,表示要创建的目录的路径,相对、绝对、特殊路径符都可以使用 2 -p选项的作用 * 可选,表示自动创建不存在的父目录,适用于创建连续多层级的目录 ## 文件操作命令 1. touch命令 * 用于创建一个新的文件 * 语法: touch Linux路径 * 参数必填,表示要创建的文件的路径,相对、绝对、特殊路径符都可以使用 2. cat命令 * 用于查看文件内容 * 语法: cat Linux路径 * 参数必填,表示要查看的文件的路径,相对、绝对、特殊路径符都可以使用 3. more命令 * 用于查看文件内容,可翻页查看 * 语法: more Linux路径 * 参数必填,表示要查看的文件的路径,相对、绝对、特殊路径符都可以使用 * 使用空格进行翻页,使用q退出查看 1. cp命令 * 用于复制文件或文件夹 * 语法: `cp [-r] 参数1 参数2` * -r选项,可选,用于复制文件夹使用,表示递归 * 参数1,Linux路径,表示被复制的文件或文件夹 * 参数2,Linux路径,表示要复制去的地方 2. mv命令 * 用于查看文件内容 * 语法: mv 参数1 参数2 * 参数1,Linux路径,表示被移动的文件或文件夹 * 参数2,Linux路径,表示要移动去的地方,如果目标不存在,则进行改名 3. rm命令 * 用于复制文件或文件夹 * 语法: `rm [-r -f] 参数1 参数2 ...... 参数N` * -r选项,可选,文件夹删除 * -f选项,可选,用于强制删除(不提示,一般用于root用户) * 参数,表示被删除的文件或文件夹路径,支持多个,空格隔开 * 参数也支持通配符*,用以做模糊匹配 ## 查找命令 1. which命令 * 查找命令的程序文件 * 语法:which 要查找的命令 * 无需选项,只需要参数表示查找哪个命令 2. find命令 * 用于查找指定的文件 * 按文件名查找: find 起始路径 -name "被查找文件名" * 支持通配符 * 按文件大小查找:find 起始路径 -size +|-n[kMG] ## 统计命令 1. grep 命令 * 从文件中通过关键字过滤文件行 * 语法: grep [-n]关键字文件路径 * 选项﹣n,可选,表示在结果中显示匹配的行的行号。 * 参数,关键字,必填,表示过滤的关键字,建议使用" "将关键字包围起来 * 参数,文件路径,必填,表示要过滤内容的文件路径,可作为管道符的输入 2. wc 命令 * 命令统计文件的行数、单词数量、字节数、字符数等 * 语法: `wc [-c -m -l -w ] 文件路径` * 不带选项默认统计:行数、单词数、字节数 * -c 字节数、-m 字符数、-l 行数、-w 单词数 * 参数,被统计的文件路径,可作为管道符的 3. 管道符 * 将管道将左边命令的结果,作为右边命令的输入 ## 查看命令 1. echo 命令 * 语法: `echo 输出的内容` * 无需选项,只有一个参数,表示要输出的内容,复杂内容可以用" "包围 2. 反引号符 * 被"`"包围的内容,会被作为命令执行,而非普通字符 3. 重定向符 * ">",将左侧命令的结果,覆盖写入到符号右侧指定的文件中 * ">>",将左侧命令的结果,追加写入到符号右侧指定的文件中 4. tail命令 * 查看文件尾部内容,并可以持续跟踪 * 语法:`tail [ -f -num ] Linux 路径` * -f 参数表示持续跟踪,- num表示查看尾部多少行,不填默认10行 * Linux 路径,表示被查看的文件 # vi/vim编辑器 ## vi\vim 编辑器的三种工作模式 1. 命令模式( Command mode ) * 命令模式下,所敲的按键编辑器都理解为命令,以命令驱动执行不同的功能 * 此模型下,不能自由进行文本编辑。 2. 输入模式( Insert mode ) * 也就是所谓的编辑模式、插入模式 * 此模式下,可以对文件内容进行自由编辑 3. n底线命令模式( Last line mode ) * 以":"开始,通常用于文件的保存、退出 ![vim 工作模式](https://lolisis.com/usr/uploads/2023/08/918850672.png) ## 命令模式快捷键 模式|命令|描述 --|--|-- 命令模式|i|在当前光标位置进入输入模式 命令模式|a|在当前光标位置之后进入输入模式 命令模式|I|在光前行的开关,进入输入模式 命令模式|A|在当前行的结尾,进入输入模式 命令模式|o|在当前光标下一行进入输入模式 命令模式|O|在光前光标上一行进入输入模式 输入模式|esc|任何情况下输入esc都能回到命令模式 命令模式|键盘上、键盘k|向上移动光标 命令模式|键盘下、键盘j|向下移动光标 命令模式|键盘左、键盘h|向左移动光标 命令模式|键盘右、键盘l|向后移动光标 命令模式|0|移动光标到当前行的开头 命令模式|$|移动光标到当前行的结尾 命令模式|pageup(PgUp)|向上翻页 命令模式|pangdown(PgDn)|向下翻页 命令模式|/|进入搜索模式 命令模式|n|向下继续搜索 命令模式|N|向上继续搜索 命令模式|dd|删除光标所在行的内容 命令模式|ndd|n是数字,表示删除当前光标向下n行 命令模式|yy|复制当前行 命令模式|nyy|n是数字,复制当前行和下面的n行 命令模式|p|粘贴复制的内容 命令模式|u|撤销修改 命令模式|ctrl + r|反向撤销修改 命令模式|gg|跳到首行 命令模式|G|跳到行尾 命令模式|dG|从当前行开始,向下全部删除 命令模式|dgg|从当前行开始,向上全部删除 命令模式|d$|从当前光标开始,删除到本行的结尾 命令模式|d0|从当前光标开始,删除到本行的开头 ## 底线命令模式 模式|命令|描述 --|--|-- 底线命令模式|:wq|保存并退出 底线命令模式|:q|仅退出 底线命令模式|:q!|强制退出 底线命令模式|:w|仅保存 底线命令模式|:set nu|显示行号 底线命令模式|:set paste|设置粘贴模式 # 权限控制 ## root用户 ### 认知root用户 在前面,我们接触过su命令切换到root账户。 su命令就是用于账户切换的系统命令,其来源英文单词:Switch User 语法: su [-][用户名] * ﹣符号是可选的,表示是否在切换用户后加载环境变量(后续讲解),建议带上 * 参数:用户名,表示要切换的用户,用户名也可以省略,省略表示切换到 root * 切换 用户后,可以通过 exit 命令退回上一个用户,也可以使用快捷键: ctrl + d <br> * 使用普通用户,切换到其它用户需要输入密码,如切换到 root 用户 * 使用 root 用户切换到其它用户,无需密码,可以直接切换 ### sudo命令 在我们得知 root 密码的时候,可以通过 su 命令切换到 root 得到最大权限。 是我们不建议长期使用 root 用户,避免带来系统损坏。 我们可以使用 sudo 命令,为普通的命令授权,临时以root身份执行。 语法: `sudo 其它命令` * 在其它命令之前,带上sudo ,即可为这一条命令临时赋予root授权 * 但是并不是所有的用户,都有权利使用sudo ,我们需要为普通用户配置sudo认证 ### 为普通用户配置sudo认证 * 切换到 root 用户,执行 visudo 命令,会自动通过 vi 编辑器打开:/ etc / sudoers * 在文件的最后添加: `itheima ALL=(ALL) NOPASSWD:ALL` * 其中最后的 NOPASSWD : ALL 表示使用 sudo 命令,无需输入密码 * 最后通过wq保存 * 切换回普通用户 * 执行的命令,均以 root 运行 ## 用户、用户组管理 ### 用户、用户组 Linux 系统中可以: * 配置多个用户 * 配置多个用户组 * 用户可以加入多个用户组中 Linux 中关于权限的管控级别有2个级别,分别是: * 针对用户的权限控制 * 针对用户组的权限控制 比如,针对某文件,可以控制用户的权限,也可以控制用户组的权限。所以,我们需要学习在 Linux 中进行用户、用户组管理的基础命令,为后面学习权限控制打下基础。 ### 用户组管理 以下命令需root用户执行 * 创建用户组 groupadd 用户组名 * 删除用户组 groupdel用户组名 为后续演示,我们创建一个itcast用户组:groupadd itcast ### 用户管理 以下命令需 root 用户执行 * 创建用户<br>`useradd [-g -d]用户名` * 选项:-g指定用户的组,不指定﹣g,会创建同名组并自动加入,指定﹣g需要组已经存在,如已存在同名组,必须使用﹣g * 选项:-d 指定用户 HOME 路径,不指定,HOME目录默认在:/home/用户名 * 删除用户<br>`userdel [-r] 用户名` 选项:- r ,删除用户的 HOME 目录,不使用﹣ r ,删除用户时, HOME 目录保留 * 查看用户所属组<br>`id [用户名]` * 参数:用户名,被查看的用户,如果不提供则查看自身 * 修改用户所属组<br>`usermod -aG 用户组 用户名`,将指定用户加入指定用户组 使用getent passwd查看passwd数据库,可以查看当前系统中有哪些用户 使用getent group查看系统全部组信息 ## 查看权限控制信息 ![权限控制信息](https://lolisis.com/usr/uploads/2023/08/1159957074.png) 那么,rwx到底代表什么呢 * r表示读权限 * w表示写权限 * x表示执行权限 针对文件、文件夹的不同, rwx 的含义有细微差别 * r,针对文件可以查看文件内容 * 针对文件夹,可以查看文件夹内容,如ls命令 * w,针对文件表示可以修改此文件 * 针对文件夹,可以在文件夹内:创建、删除、改名等操作 * x,针对文件表示可以将文件作为程序执行 * 针对文件夹,表示可以更改工作目录到此文件夹,即cd进入 ## chmod 我们可以使用chmod命令,修改文件、文件夹的权限信息。 注意,只有文件、文件夹的所属用户或root用户可以修改。 语法: chmod [-R]权限文件或文件夹 * 选项:-R,对文件夹内的全部内容应用同样的操作 示例: * `chmod u=rwx,g=rx,o=x hello.txt`,将文件权限修改为:rwxr-x--x * 其中:u表示user所属用户权限,g表示group组权限,o表示other其它用户权限 * `hmod -R u=rwx,g=rx,o=x test`,将文件夹test以及文件夹内全部内容权限设置为:rwxr-x--x 权限可以用三位数字来代表,第一位数字表示用户权限,第二位表示用户组权限,第三位表示其它用户权限。 数字的细节如下:r记为4、w记为2、x记为1 每位的权限代表的数字相加即为此位数字 例:751表示rwx(7)r-x(5)--x(1) ## chown命令 使用 chown 命令,可以修改文件、文件夹的的所属用户和用户组 <div class="tip inlineBlock error"> 普通用户无法修改所属为其它用户或组,所以此命令只适用于 root 用户执行 </div> 语法: `chown [-R] [用户][:][用户组] 文件或文件夹 * 选项,-R ,同chmo,对文件夹内全部内容容应用相同规则 * 选项用户,修改所属用户 * 选项用户组,修改所属用户组 * :用于分隔用户和用户组 示例 * `chown root hello.txt`,将 hello.txt 所斤属用户修改为root * `chown :root hello.txt`,将 hello.txt 所属用户组修改为root * `chown root:itheima helo.txt`,将hello.txt所属用户修改为root,用户组修改为 itheimima * `chown - R root test`,将文件夹test所属用户修改为root并对文件夹内内全部内容应用同样规则 Last modification:December 8, 2023 © Allow specification reprint Like 如果觉得我的文章对你有用,请留下评论。