1. ls 查看文件列表命令
语法: ls [-a -l -h] [Linux路径]
- -a -l -h 是可选的选项 (-h需配合-l命令一起使用)
- Linux路径是此命令可选的参数
ls #查看当前目录所有非隐藏文件(平铺方式显示)
ls -a #查看当前目录下所有文件 -a=> all
ls -l #查看当前目录所有非隐藏文件(列表方式显示) -l => list
ls -lh #查看当前目录以可读方式显示 -h => human-readable
ls -alh #查看所有人间以可读方式显示
ls -l /root #查看/root下的文件列表
2. cd 切换工作目录
来源: Change Directory
语法: cd [Linux路径]
- cd命令无选项,只有参数,表示切换到哪个目录下
- cd命令直接执行,不写参数,表示回到用户的Home目录
3. pwd 查看当前工作目录
来源: Print Work Directory
语法:pwd
- pwd命令,无现象,无参数,直接输入pwd即可
4. mkdir创建文件夹命令
来源: Make Directory
语法: mkdir [-p] linux路径
- 参数必填,表示Linux路径
- -p 选项可选,表示自动创建不存在的父目录 。来源parents
5. touch、cat、more、cp、mv、rm 文件操作命令
5.1 touch 创建文件
语法:touch linux路径
- touch命令无选项,参数必填,表示要创建的文件路径,相对、绝对、特殊路径均可使用
5.2 cat查看文件
语法:cat linux路径
- cat命令无选项,参数必填,表示要查看的文件路径,相对、绝对、特殊路径均可使用
5.3 more查看文件,可翻页
语法:more linux路径
- more命令参数必填,表示要查看文件的路径,相对、绝对、特殊路径符都可以使用
- 使用空格进行翻页,b查看上一页,使用q退出查看
5.4 cp 复制文件/文件夹
来源:copy
语法:cp [-r] 参数1 参数2
- -r选项,可选,用于复制文件夹使用,表示递归,来源:recursive
- 参数1,linux路径,表示被复制的文件或文件夹
- 参数2,linux路径,表示要复制去的地方
5.5 mv 移动文件/文件夹
来源: move
语法:mv 参数1 参数2
参数1,linux路径,表示被移动的文件或文件夹
参数2,linux路径,表示要移动去的地方,如果目标不存在,则进行改名,确保目标存在
5.6 rm 删除文件、文件夹
来源:remove
语法:rm [-r -f] 参数1 参数2 ... 参数N
- -r选项,可选,用于递归删除文件夹使用,来源:recursive
- -f选项,强制删除 (不会弹出提示确认消息)
- 普通用户删除内容不会弹出提示,root管理员删除内容会有提示
- 所以一般用户用不到-f选项
- 参数1、参数2、....、参数N表示要删除的文件或文件夹路径,按照空格隔开
6. which 命令程序文件查找
语法:which 要查找的命令
我们可以通过which命令查看所使用的一系列命令的程序文件存放在哪里
7. find命令查找文件
7.1 find按文件名查找文件
语法: find 起始路径 -name "被查找文件名"
[root@master ~]# find / -name java* #在根目录查查找以java开头的文件
find: ‘/proc/40515’: 没有那个文件或目录
find: ‘/proc/40525’: 没有那个文件或目录
/etc/pki/ca-trust/extracted/java
/etc/pki/java
/etc/java
/etc/java/java.conf
/etc/bash_completion.d/javaws.bash
/etc/alternatives/java
/etc/alternatives/java.1.gz
/etc/alternatives/javaws
/etc/alternatives/javaws.1.gz
/var/lib/alternatives/java
/var/lib/docker/overlay2/c03734f930fcd52491fceb7e388db90242d56a11f4b83474c04a45bc746ed9f8/diff/usr/share/java
/var/cache/yum/x86_64/7/updates/packages/java-1.8.0-openjdk-headless-1.8.0.332.b09-1.el7_9.x86_64.rpm
/var/cache/yum/x86_64/7/updates/packages/java-1.8.0-openjdk-1.8.0.332.b09-1.el7_9.x86_64.rpm
/var/cache/yum/x86_64/7/updates/packages/java-1.8.0-openjdk-headless-1.8.0.402.b06-1.el7_9.x86_64.rpm
/var/cache/yum/x86_64/7/updates/packages/java-1.8.0-openjdk-1.8.0.402.b06-1.el7_9.x86_64.rpm
/usr/bin/java
....
7.2 find按文件大小查找文件
语法:find 起始路径 -size +/-n[kMG]
- +、- 表示大于和小于
- n表示大小数字
- 看MG表示大小单位,k(小写字母)表示kb,M表示MB,G表示GB
示例:
- 查找小于10KB的文件: find / -size -10k
- 查找大于100MB的文件:find / -size +100M
- 查找大于1GB的文件: find / -size +1G
[root@master ~]# find /proc/ -size +10k
/proc/kcore
8. grep命令
可以通过grep命令,从文件中通过关键字过滤文件行。
语法: grep [-n] 关键字 文件路径
- 选项-n,可选,表示在结果中显示匹配的行的行号
- 参数,关键字,必填,表示过滤的关键字,带有空格或其他特殊符号,建议使用“ ” 将关键字包围起来
- 参数,文件路径,必填,表示要过滤内容的文件路径,可作为内容输入端口号
9. wc数量统计命令
可以通过wc命令行统计文件的行数、单词数量等
语法: wc [-c -m -l -w] 文件路径
- 选项,-c,统计bytes数量
- 选项,-m,统计字符数量
- 选项,-l,统计行数
- 选项,-w,统计单词数量
- 参数,文件路径,被统计的文件,可作为内容输入端口
10. | 管道符
将管道附件左边命令的结果作为右边命令的输入
11. echo 命令
可以使用echo命令在命令行内输出指定内容
语法:echo 输出的内容
- 无需选项,只有一个参数,表示要输出的内容,复杂内容可以用“ ”包围
在终端上显示:Hello Linux
- 带有空格或\等特符号,建议使用双引号包围。因为不包围的话,空格后很容易被识别为参数2,尽管echo不受影响,要养成好习惯
12、反引号 `
在控制台要用echo输出命令行的结果,可以用反引号配合使用,在编写shell脚本时会用的比较多
13、重定向符 >和>>
- >,将左侧命令的结果,覆盖写入到符号右侧指定的文件中
- >>,将左侧命令行的结果,追加到符号右侧指定的文件中
演示:
- echo "hello dolphin" > a.txt
- echo "hello dolphin1" > a.txt 再次执行覆盖内容
- echo "hello dolphin2" >> a.txt 执行命令行,追加新内容
命令行的执行结果写入指定文件中
- ls -l >a.txt, ls -l命令行的结果覆盖到a.txt
- ls >>a.txt,ls命令行的结果追加到a.txt
14. tail命令
使用tail命令,可以查看文件尾部内容,跟踪文件的最新更改
语法:tail [ -f -num ] Linux路径
- 参数,linux路径,表示被跟踪的文件路径
- 选项,-f,表示持续跟踪
- 选项,-num,表示,查看尾部多少行,不填默认10行
15. su 和 exit 命令
su命令,用于账户切换到系统命令
来源:Switch User
语法:su [ - ] [ 用户名 ]
- - 符号是可选的,表示是否在切换用户后加载环境变量,建议带上
- 参数:用户名,表示要切换的用户,用户名也可以省略,省略表示切换到root
- 切换用户后,可以通过exit命令返回上一个用户,也可以使用快捷键:ctrl + d
- 使用普通用户,切换到其他用户需要输入密码,如切换到root用户
- 使用root用户切换到其它用户,无需密码,可以直接切换
16. sudo 命令
在我们得知root密码的时候,可以通过su命令切换到root得到最大权限。但是我们不建议长期使用root用户,避免带来系统损坏。
我们可以使用sudo命令,为普通的命令授权,临时以root身份执行
语法:sudo 其它命令
- 在其他命令之前,带上sudo,即可为这一条命令临时赋予root授权
- 但是并不是所有的用户,都有权利使用sudo,我们需要为普通用户配置sudo认证
案例:
这里新建一个用户sudo mkdir /test-demo 创建文件夹提示 :
dolphin 不在 sudoers 文件中。此事将被报告。
# 创建用户并设置密码
[root@master ~]# useradd dolphin
[root@master ~]# passwd dolphin
更改用户 dolphin 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。# 切换dolphin用户
[root@master ~]# su - dolphin# 普通命令在根目录创建文件夹test-demo
[dolphin@master ~]$ mkdir /test-demo
mkdir: 无法创建目录"/test-demo": 权限不够# sudo 命令+ 命令行创建文件夹
[dolphin@master ~]$ sudo mkdir /test-demo我们信任您已经从系统管理员那里了解了日常注意事项。
总结起来无外乎这三点:#1) 尊重别人的隐私。#2) 输入前要先考虑(后果和风险)。#3) 权力越大,责任越大。[sudo] dolphin 的密码:
dolphin 不在 sudoers 文件中。此事将被报告。
visudo 为普通用户配置sudo认证
- 切换到root用户,执行visudo命令,会自动通过vi编辑器打开:/etc/sudoers
- 在文件的最后添加:
dolphin ALL=(ALL) NOPASSWD: ALL
其中最后的NOPASSWD: ALL 表示使用sudo命令,无需输入密码
下边这种写法表示使用sudo命令,需要输入密码
dolphin ALL=(ALL) ALL
- 最后通过wq保存
- 切换普通用户
- 执行的普通命令,均以root运行
17. 用户组管理命令
-
groupadd 创建用户组
语法:groupadd 用户组名
-
groupdel 删除用户组
语法:groupdel 用户组名
-
getent group 查看有哪些用户组
语法:gentent group
同 cat /etc/group 一样
包含3份信息,组名称:组认证(显示未x):组ID
18. 用户管理命令
-
useradd 创建用户
语法:useradd [-g -d] 用户名
- 选项:-g 指定用户的组,不指定-g,会创建同名组并自动加入,指定-g需要组已经存在,如已存在同名组,必须使用-g
- 选项:-d 指定用户HOME路径,不指定,HOME目录默认在:/home/用户名
-
userdel 删除用户
语法:userdel [ -r ] 用户名
- 选项:-r,删除用户的HOME目录,不使用-r,删除用户时,HOME目录保留
-
id 查看用户所属组
语法: id [用户名]
- 参数:用户名,被查看的用户,如果不提供则查看自身
-
usermod 修改用户所属组
语法:usermode-aG 用户组 用户名,将指定用户加入指定用户组
[root@master ~]# id test
uid=1006(test) gid=1006(test) 组=1006(test)
[root@master ~]# getent group | tail -3
chendaoxin:x:1004:
testgroup:x:1005:
test:x:1006:
[root@master ~]# usermod -aG testgroup test
[root@master ~]# id test
uid=1006(test) gid=1006(test) 组=1006(test),1005(testgroup)
-
getent passwd 查看有哪些用户
语法:getent passwd
同cat /etc/passwd 一样
共有7分信息,分别是:
用户名:密码(x):用户ID:组ID:描述信息(无用):HOME目录:执行终端(默认bash)