【大数据 / linux 系统 / KEN】linux 基本命令的使用(3)

linux基本命令的使用

首次发布时间:2020/7/10
最后修改时间:2020/7/10

摘要
  • 常用 Linux 命令的基本使用
  • ls 常用选项及通配符的使用
  • 切换目录
  • 删除目录/文件
  • 修改文件名称/移动文件
  • 复制文件
  • 创建文件
  • 创建文件夹
  • 查看文件内容
  • 创建链接
  • find 命令
  • grep 命令
  • 管道 | 的介绍
  • Linux 权限描述格式解读
  • 修改文件权限

Linux 下文件和目录的特点
  • Linux 文件或者目录的名称最长可以有 256 个字符
  • . 开头的文件为隐藏文件,需要用 -a 参数才能显示(ls -a

目标:
  • 理解学习 linux 终端命令的原因
  • 常用 linux 命令实践

原因:
  • Linux 刚面世时并没有图形界面,所有的操作全靠命令完成,如磁盘操作文件存取目录操作进程管理文件权限设定
  • 工作中,大量的服务器维护工作都是在远程通过 SSH 客户端来完成的,并没有图形界面,所有的维护工作都需要通过命令来完成
  • Linux 发行版本的命令大概有 200 多个,但是常用的命令只有 10 多个而已
  • 学习终端命令的技巧:
    • 不需要死记硬背,对于常用命令,用的多了,自然就记住了
    • 不要尝试一次学会所有的命令,有些命令是非常不常用的,遇到时百度就可以了

常用 Linux 命令的基本使用
序号命令对应英文单词作用
01lslist列出当前文件夹下的文件
02pwdprint work directory查看当前所在文件夹的路径
03cd [目录名]change directory切换文件路径
04touch [文件名]touch如果文件不存在,新建文件
05mkdir [文件名]make directory创建目录
06rm [文件名/目录名]remove删除指定的文件或目录
07clearclear清屏,等同于 ctrl + L
08mv [文件名/目录名] [文件名/路径]move两个作用:[修改文件或目录名为新的名字][移动文件或目录到新的路径下]
09cp [文件名/目录名] [路径]copy复制文件/目录到新的路径下
10cat [文件名]Concatenate(连接)查看文件内容
11suSwitch user切换用户,切换到 root 用户;"-" 表示用户的环境变量一起切换;"-c",表示仅执行一次命令,而不切换用户身份
12chownChange owner改变所有者
13chgrpChange group改变用户组
14psChange group查看进程状态
15chmod 权限数字 [文件名/目录名]Change mode改变文件或目录权限
16headhead查看文件前几行(默认10行);-n:指定行数
17tailtail查看文件的后几行;-n:指定行数;-f(follow)动态显示文件内容
18lnlink产生链接文件,类似 win 中创建快捷方式
19manmanual获取命令或者配置文件的使用手册;详细可看:linux 终端命令格式
20helphelp查看 shell 内置命令的帮助信息
  • 注意:
    • touch 创建的是文件,而 mkdir 创建的是文件夹
    • 删除文件夹,需要用 rm -rf 文件夹名 命令来删除
    • susu root 表示切换至 root 用户su oracle 表示切换至普通用户
    • su -su - rootsu - oracle 表示既切换用户,又切换工作目录

小技巧:

ctrl + shift + =:放大 终端窗口的字体显示
ctrl + -:缩小 终端窗口的字体显示


文件系统操作
  • 常用选项
参数含义
-a显示指定目录下所有子目录与文件,包括隐藏文件
-l以列表方式显示文件的详细信息
-h配合 -l 使用,以人性化的方式显示文件大小(文件大小以 G,M,K 为单位显示,更加方便理解)

注意:ll 等同于 ls -al,使用起来相当方便

  • ls 通配符的使用
通配符含义
*表示任意个数的字符
?代表任意一个字符,至少 1 个
[]表示可以匹配字符组中的任意一个
[abc]匹配 a、b、c 中的任意一个字符
[a-f]匹配从 a 到 f 范围内的的任意一个字符

我一般就用 * 比较多,其它没用过
* 比较通用一点,要精确匹配的话可以用其它通配符


切换目录

注意:Linux 所有的 目录 和 文件名 都是大小写敏感的

命令含义
cd切换到当前用户的主目录(/home/用户目录)
cd ~切换到当前用户的主目录(/home/用户目录)
cd .保持在当前目录不变
cd ..切换到上级目录
cd -在最近两次工作目录之间来回切换(这个命令很好用,省去切换目录时输入路径的麻烦)
  • 相对路径和绝对路径
    • 相对路径:在输入路径时,最前面不是 / 或者 ~,表示相对 当前目录 所在的目录位置
      • 例如:~/directory$ cd work/job
    • 绝对路径:在输入路径时,最前面 / 或者 ~,表示从 根目录/家目录 开始的具体目录位置
      • 例如:cd /home/user/directory/work/job

删除目录/文件

使用 rm 命令要小心,因为文件删除后不能恢复

选项对应英文单词含义
-fforce强制删除,忽略不存在的文件,无需提示,即使是只读文件也直接删除,不作提示
-rrecursive递归地删除目录下的内容,删除目录时必须加此参数
扩展
  • 一些文件乱码后,使用 rm -rf 仍然无法删除
  1. 此时,先使用 ll -i 查找到文件的 inode 节点(下图 “23047…” 就是文件的 inode 编号)
    在这里插入图片描述
  2. 然后使用 find . -inum [查找到的 inode 编号] -exec rm {} -rf \\; 命令
    在这里插入图片描述
  • 就可以成功删除了

修改文件名称/移动文件
  • mv aaa bbb:把文件名 aaa 修改为 bbb
  • mv aaa bbb/ccc:将 aaa 文件移动到 bbb 目录下并改名为 ccc
    • bbb 目录必须存在,否则不能移动成功

复制文件

cp aaa 目标路径:复制 aaa 文件到 目标路径

选项含义
-r递归地复制目录下的内容,复制目录时必须加此参数
-p保留文件属性

创建文件
  • 创建文件或修改文件时间
    • 如果文件不存在,可以创建一个空白文件
    • 如果文件已存在,可以修改文件的末次修改日期(不改变文件内容)
  • 用法:
    • touch 文件名:创建文件
    • touch {文件名1,文件名2}:同时创建多个文件
      • 注意:
      • 大括号里面不能有任何空格,否则创建出的文件不会是你想要的文件,可以自己试试
    • echo "Hello World" > aaa:向文件 aaa 中写入 “Hello World”(如果 aaa 文件存在,则覆盖掉原来的内容)
    • echo "Hello World" >> aaa:向文件 aaa 中末尾处追加 “Hello World”(不会覆盖原来的内容)

创建文件夹
  • mkdir 目录名
选项含义
-p可以递归创建目录
  • 例如:
    • 执行 mkdir -p aaa/bbb
    • 假如 aaa 目录不存在,会顺便把 aaa 目录也创建了,然后创建 bbb
    • 而如果执行 mkdir aaa/bbb
    • 在 aaa 不存在的情况下,命令会报错

新建目录的名称不能与当前目录中已有的目录或文件同名,否则会提示错误 “File exists


查看文件内容
1. cat
  • cat 文件名
  • cat 命令可以用来查看文件内容、进行文件合并
  • cat 会一次性显示所有的内容,适合查看内容较少的文本文件
选项含义
-b非空输出行进行编号
-n输出的所有行进行编号
cat file1.txt > file2.txtfile1.txt 文件的内容输出到 file2.txt
  • 请看下图例子,帮助理解:
    在这里插入图片描述在这里插入图片描述
2. more
  • more 文件名
  • more 命令可以用于分屏显示文件内容,每次只显示一页内容
  • 适合于查看内容较多的文本文件

使用 more 的操作键:

操作键功能
空格键显示文件内容的下一屏
Enter 键一次滚动文件的一行
b回滚一屏
f前滚一屏
q退出
3. head
  • head 文件名
  • 查看文件的前几行
4. tail
  • tail 文件名
  • 查看文件的后几行

创建链接
  • ln
    • ln -s [源文件] [链接文件]
      • 创建软链接
    • ln [源文件] [链接文件]
      • 创建硬链接
  • 其实软链接文件就相当于 Windows 中的快捷方式,这样就很容易理解了
  • 硬链接文件,可以看成和源文件是同一个文件

工作中几乎不会建立文件的硬链接

源文件要使用绝对路径,不要使用相对路径,
这样可以方便移动链接文件后,仍然能够正常使用。
但其实用相对路径也能建立链接文件, 但是这样移动链接文件后就不能找到源文件了


find 命令
  • find [搜索路径] [匹配条件]
  • find 命令用于查找文件或目录
  • 例子:
    • find . -name 123.txt
      • 在当前路径下查找 “123.txt” 文件
选项作用示例
name按名称查找(精确查找)find / -name 123.txtfind . -name 123.txt,(/ 表示当前目录,. 表示根目录)
iname按名称查找,不区分大小写(模糊查找)find / -iname abc*,查找根目录下所有以 abc 开头的文件
size按文件大小查找(+:大于、-:小于、不写:等于)find / -size -100M,查找根目录下小于 100M 的文件
type按文件类型查找(f:二进制文件、l:软连接文件、d:目录、c:字符文件)find / -type f,查找根目录下的二进制文件
  • 其实最常用的就是 find . -name 123.txt,配合上通配符 *,一般就足够平常使用了

grep 命令
  • grep 命令是 Linux 系统中一个强大的文本搜索工具
  • 常见用法:grep -rn "需要查找的内容"
选项含义
-r递归地查找目录下指定的内容
-n显示匹配行及行号
-v显示不包含匹配文本的所有行(相当于求反)
-i忽略大小写
  • grep 允许对文本文件进行模式查找
  • 所谓模式查找,又被称为正则表达式
  • 常用的两种模式查找
参数含义
^a行首,搜寻以 a 开头的行
ke$行尾,搜寻以 ke 结束的行
  • 用法:
    • grep -rn ^start
      • 查找以 start 开头的行
    • grep -rn end$
      • 查找以 end 结束的行

注意:双引号可以加,也可以不加

在这里插入图片描述


管道 |
  • Linux 允许将一个命令的输出,通过管道,作为另一个命令的输入
    • 这里 | 分为左右两边,左边命令的结果作为右边命令的输入
  • 常用的管道命令有:
    • more:分屏显示内容
    • grep:在命令执行结果的基础上查询指定的文本
  • 例子:
    • ps | grep system
      • 首先 ps 获取到所有进程的信息
      • 然后 grep 命令在上述信息中找到包含 “system” 的行

Linux 权限描述格式解读
  • 示例:drwxr-xr-x
  • d:表示节点类型
    • d文件夹(directory)
    • -文件
    • l链接文件(link)(一定是软链接,因为硬链接跟源文件类型一致,不会是 l
  • r:可
  • w:可
  • x:可执行

第一组 rwx:表示 文件拥有者 对它的权限:可读可写可执行
第二组 x-r:表示 文件所属组 对它的权限:可读可执行,不可写
第三组 x--其他用户组 权限(不包含以上两组):可执行,不可写、不可读


修改权限
字符修改权限
  • chmod g -rw aaa:将 aaa 文件所在用户组权限设置为:不可读、不可写
  • chmod o -rw:将 aaa 文件其他用户组权限设置为:不可读、不可写
  • chmod u+x:将 aaa 文件所属用户权限增加 x
数字修改权限
  • 建议用数字修改权限的方法,因为容易记,不易弄错,更加常用

r = 4
w = 2
x = 1

  • 这种设置的巧妙之处在于,r/w/x 任意的组合,都对应着唯一的数字,所以可以方便地用下面的方式去设置权限:
  • chmod 777 aaa:将 aaa 文件全部用户组的权限设置为可读、可写、可执行权限
  • 以 777 为例,每一位分别代表一个用户组,顺序如下:
    • 文件拥有者/文件所属组/其他用户组
  • 示例:

444 r–r--r–
600 rw-------
644 rw-r–r--
666 rw-rw-rw-
700 rwx------
744 rwxr–r--
755 rwxr-xr-x
777 rwxrwxrwx

多级目录权限的修改【递归修改权限】
  • chmod -R 644 aaa:aaa 目录下所有的文件和文件夹的权限都更改为 644(包括 aaa 本身)

终端实用技巧
  • 自动补全
    • 在敲出 文件 / 目录 / 命令 的前几个字母之后,按下 TAB
    • 如果输入的没有歧义,系统会自动补全
    • 如果还存在其他 文件 / 目录 / 命令,再按一下 TAB 键,系统会提示可能存在的 文件 / 目录 / 命令
    • 建议使用 TAB 键,因为不但方便,而且可以保证最后输入的内容一定是对的(因为是系统自动补全的)
  • 曾经使用过的命令
    • 按上/下光标键可以在曾经使用过的命令之间来回切换
    • 如果想要退出选择,并且不想执行当前选中的命令,可以按 ctrl + c 退出
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值