目录
1.常用快捷键和基础命令
1.1 who
语法 | 功能 |
who am i | 显示自身用户名称 |
whoami | 显示登录用户的用户名 |
who | 查看本台机器登录了哪些用户 |
#自身用户为root
[root@localhost ~]# whoami
root
#显示当前登录的用户名
[root@localhost ~]# who am i
root pts/0 2021-12-29 15:31 (192.168.48.1)
#当前root用户和hadoop用户登录到了本台机器上
[root@localhost ~]# who
root pts/0 2021-12-29 15:31 (192.168.48.1)
hadoop pts/1 2021-12-29 15:31 (192.168.48.1)
root :0 2021-12-29 15:30 (:0)
1.2 pwd
显示当前工作目录的绝对路径
[root@localhost etc]# pwd
/etc
1.3 cd 切换路径
语法 | 功能 |
cd 路径 | 切换到所给的路径下 |
cd ~ 或 cd | 切换到家目录 |
cd / | 切换到根目录 |
cd .. | 回到上一级目录 |
cd - | 回到上一次所在目录 |
[root@localhost /]# cd /opt/aaa
[root@localhost aaa]# cd ~
[root@localhost ~]# cd /
[root@localhost /]# cd /opt/aaa
[root@localhost aaa]# cd ..
[root@localhost opt]# cd -
/opt/aaa
[root@localhost aaa]#
1.4 ifconfig
查看网络配置信息
1.5 history
查看近1000条历史命令
1.6 常用快捷键
快捷键 | 功能 |
ctrl + c | 停止进程 |
ctrl + l | 清屏操作 |
tab | 自动补全命令 |
上下键 | 查找执行过的命令 |
2.常用命令
2.1文件编辑命令
vi 文件名 或 vim文件名
2.2 文件目录类命令
1.ls
显示指定目录下的所有内容
语法:
ls + [选项] + 目录
选项;
-a:显示全部的文件 包括隐藏文件
-l:以列表形式显示 包含文件的属性与权限等数据
-i:查看文件的inode号
[root@localhost opt]# ls
aaa rh
[root@localhost opt]# ls -a
. .. aaa rh
[root@localhost opt]# ls -l
总用量 0
drwxr-xr-x 2 root root 6 12月 29 15:42 aaa
drwxr-xr-x. 2 root root 6 10月 31 2018 rh
[root@localhost opt]# ll -i
总用量 0
33773688 drwxr-xr-x 2 root root 6 12月 29 15:42 aaa
17873388 drwxr-xr-x. 2 root root 6 10月 31 2018 rh
2.touch
创建新的空文件
[root@localhost opt]# touch 1.txt
[root@localhost opt]# touch {1..4}.class
[root@localhost opt]# ls
1.class 1.txt 2.class 3.class 4.class aaa rh
3.mkdir
mkdir + 目录 创建新的目录
mkdir -p + 目录 递归创建多级目录
[root@localhost opt]# mkdir abc
[root@localhost opt]# ls
1.class 1.txt 2.class 3.class 4.class aaa abc rh
[root@localhost opt]# mkdir -p abc/1/2/3
[root@localhost opt]# ls abc
1
[root@localhost opt]# ls abc/1
2
[root@localhost opt]# ls abc/1/2
3
4.echo和重定向
echo + 输出内容:将输出内容进行输出展示
echo + 输出内容 >> 文件:将输出内容追击存储在指定文件中
echo + 输出内容 > 文件:将输出内容覆盖在指定文件中
[root@localhost opt]# echo 'hellozhangsan'
hellozhangsan
[root@localhost opt]# vim 1.txt
[root@localhost opt]# cat 1.txt
hello 1
[root@localhost opt]# echo 'hello 2' >> 1.txt
[root@localhost opt]# cat 1.txt
hello 1
hello 2
[root@localhost opt]# echo 'hello 3' > 1.txt
[root@localhost opt]# cat 1.txt
hello 3
5.printf
printf + 格式 + 参数 :将数据指定格式进行输出
[root@localhost opt]# printf "%s \t %d \t %s \n" "zhangsan" 19 "beijing"
zhangsan 19 beijing
6.mv
1.重命名(在同级目录下)
mv + 原文件名 + 新文件名
2.移动
mv + 文件/目录 + 路径
#把1.txt重命名为2.java
[root@localhost opt]# mv 1.txt 2.java
[root@localhost opt]# ls
1.class 2.class 2.java 3.class 4.class aaa abc rh
#把1.class移动到/opt/abc/1/2
[root@localhost opt]# mv 1.class abc/1/2
[root@localhost opt]# ls abc/1/2
1.class 3
7.cp
cp + 原文件 + 目标路径:将一个或多个文件复制到指定的路径下
cp + 原文件 + 目标文件:将一个文件复制到目标文件中 如果目标文件存在则覆盖 如果不存 在则创建目标文件
cp -r + 原目录 + 目标路径:将该目录以及所有子目录下的所有文件拷贝到目标路径下 如果 目标文件存在则拷贝到此目录下 如果不存在则创建目标目录
[root@localhost opt]# cp 2.class abc/1
[root@localhost opt]# ls abc/1
2 2.class
[root@localhost opt]# mkdir def
[root@localhost opt]# cp -r abc def
[root@localhost opt]# ls def
abc
[root@localhost opt]# ls def/abc
1
[root@localhost opt]# ls def/abc/1
2 2.class
[root@localhost opt]# ls def/abc/1/2
1.class 3 abc
8.cat
查看文件内容 从第一行开始输出显示
-n 显示行号
[root@localhost opt]# cat 1.txt
hello 1
hello 2
hello 3
hello 4
hello 5
hello 6
hello 7
hello 8
hello 9
hello 10
[root@localhost opt]# cat -n 1.txt
1 hello 1
2 hello 2
3 hello 3
4 hello 4
5 hello 5
6 hello 6
7 hello 7
8 hello 8
9 hello 9
10 hello 10
11
9.tac
查看文件内容 倒序输出
[root@localhost opt]# tac 1.txt
hello 10
hello 9
hello 8
hello 7
hello 6
hello 5
hello 4
hello 3
hello 2
hello 1
10.head
默认显示文件前10内容
-c:显示的字节数
-n:显示的行数
[root@localhost opt]# head 1.txt
hello 1
world 2
hello 3
hello 4
hello 5
hello 6
hello 7
hello 8
hello 9
hello 10
[root@localhost opt]# head -c 10 1.txt
hello 1
wo[root@localhost opt]# head -n 5 1.txt
hello 1
world 2
hello 3
hello 4
hello 5
11.tail
倒叙显示文件内容 默认显示后十行
-c 倒叙按字节显示的字节数
-n : 倒序按行显示的行数
-f : 实时追踪文档的更新内容
-F : 根据文件名字进行实时追踪,当文件改名或删除文件后,保持重试,当有新的文件和它同名时,继续追踪
tailf + [选项] + 文件:几乎等同于tail -f, 当文件改名之后它也能继续跟踪。与tail -f不同的是,如果文件不增长,它不会去访问磁盘文件
[root@localhost opt]# tail 1.txt
hello 8
hello 9
hello 10
sfasf
afsf
zfsfwf
sfaff
afafewf
sfwegg
[root@localhost opt]# tail -c 10 1.txt
f
sfwegg
[root@localhost opt]# tail -n 3 1.txt
afafewf
sfwegg
12.more
查看文件内容 一页一页的显示文件内容 并显示查看进度
13.less
查看文件内容 不显示查看进度
14.egrep
egrep + 字符串规则 + 文件或目录:在文件或目录中查找指定的字符串
[root@localhost opt]# egrep e 1.txt
hello 1
hello 3
hello 4
hello 5
hello 6
hello 7
hello 8
hello 9
hello 10
afafewf
sfwegg
15.rm
删除文件或目录
-r:删除目录及以下的所有文件
-f:不需要询问是否删除
[root@localhost 2]# rm -rf 3
[root@localhost 2]# cd /opt
[root@localhost opt]# ls
1.txt 2.class 2.java 3.class 4.class aaa abc def rh
[root@localhost opt]# rm -rf abc
[root@localhost opt]# ls
1.txt 2.class 2.java 3.class 4.class aaa def rh
16.rmdir
删除一个空目录
[root@localhost opt]# mkdir b
[root@localhost opt]# ls
1.txt 2.class 2.java 3.class 4.class a aaa b def rh
[root@localhost opt]# ls b
[root@localhost opt]# rmdir b
[root@localhost opt]# ls
1.txt 2.class 2.java 3.class 4.class a aaa def rh
2.3 时间日期类命令
date:显示当前日期
[root@localhost opt]# date
2021年 12月 29日 星期三 17:10:24 CST
[root@localhost opt]# date +"%Y-%m-%d"
2021-12-29
2.4用户管理命令
1.useradd
添加新用户
[root@localhost opt]# useradd hadoop123
2.passwd
设置用户密码
[root@localhost opt]# passwd hadoop123
更改用户 hadoop123 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
3.id
判断用户是否存在
[root@localhost opt]# id hadoop123
uid=1001(hadoop123) gid=1001(hadoop123) 组=1001(hadoop123)
4.su
su + 用户名:切换用户,只能获得用户执行权限,不能获得环境变量
su - + 用户名:切换用户,获得该用户的执行权限和环境变量
[root@localhost opt]# su hadoop
[hadoop@localhost opt]$ su root
密码:
5.visudo
修改用户权限
[root@localhost opt]# visudo
6.sudo
设置普通用户以root用户权限执行命令
[hadoop@localhost opt]$ rm -rf a
rm: 无法删除"a": 权限不够
[hadoop@localhost opt]$ sudo rm -rf a
我们信任您已经从系统管理员那里了解了日常注意事项。
总结起来无外乎这三点:
#1) 尊重别人的隐私。
#2) 输入前要先考虑(后果和风险)。
#3) 权力越大,责任越大。
[sudo] hadoop 的密码:
对不起,请重试。
[sudo] hadoop 的密码:
7.usermod
修改用户信息
-g 修改用户所属组
-l 修改用户名称
#修改用户名称
[root@localhost opt]# ll /home/
总用量 0
drwx------. 5 hadoop hadoop 147 12月 29 17:20 hadoop
drwx------ 3 hadoop123 hadoop123 78 12月 29 17:12 hadoop123
[root@localhost opt]# usermod -l hadoop456 hadoop123
[root@localhost opt]# ll /home/
总用量 0
drwx------. 5 hadoop hadoop 147 12月 29 17:20 hadoop
drwx------ 3 hadoop456 hadoop123 78 12月 29 17:12 hadoop123
#修改用户所属组
[root@localhost opt]# usermod -g hadoop hadoop456
[root@localhost opt]# ll /home
总用量 0
drwx------. 5 hadoop hadoop 147 12月 29 17:20 hadoop
drwx------ 3 hadoop456 hadoop 78 12月 29 17:12 hadoop123
[root@localhost opt]# id hadoop456
uid=1001(hadoop456) gid=1000(hadoop) 组=1000(hadoop)
8.userdel
userdel + 用户名 删除用户但保存用户主目录
userdel -r + 用户名 删除用户以及对应的主目录
[root@localhost opt]# userdel hadoop456
[root@localhost opt]# id hadoop456
id: hadoop456: no such user
2.5 用户组管理命令
1.查看已创建用户组
2.groupadd
新建一个工作组
[root@localhost ~]# groupadd group1
[root@localhost ~]# cat /etc/group
3.groupmod
修改用户组名
groupmod -n 新组名 旧组名
[root@localhost ~]# groupmod -n group2 group1
[root@localhost ~]# cat /etc/group
4.groupdel
删除组
[root@localhost ~]# groupdel group2
2.6文件权限命令
1.chmod
chmod + {ugoa}{+-=}{rwx} + 文件或目录:变更文件或目录的权限
2.chown
chown + 用户名 + 文件或目录:变更文件或目录的所有者(只有root用户可操作)
chown + 用户名:用户组 + 文件或目录:变更文件或目录的所有者及所属组
chown -R + 用户名 + 目录:递归变更目录的所有者
3.chgrp
chgrp + 用户组 + 文件或目录:改变文件或目录的所属组