Linux常用命令
一.用户
- 超级管理员root:一般不给普通员工使用
- 普通用户
二.命令
格式:command [options*][arguments*] 中括号的内容可写可不写
| 项目 | 描述 |
|---|---|
| 命令command | 指定系统要去做什么 |
| 选项options | 是一种修饰符,指定命令如何运行,选项以"-"开头 |
| 参数arguments | 指定命令作用于何处(文件、目录或文本) |
常用命令
| 功能 | 命令 | 实例 |
|---|---|---|
| 操作系统信息 | uname | |
| 输出硬件平台 | uname -i | |
| 某一个command(例如uname)的帮助信息 | uname --help |
非常常用
| 功能 | 命令 | 实例 |
|---|---|---|
| 查看当前操作的路径 | pwd | |
| 进入home | cd ~ | |
| 清屏 | clear | |
| 返回当前时间 | date | |
| 查看当前日历 | cal | |
| 查看指定时间日历 | cal 07 2020 | |
| 设置系统时间 | sudo date -s "2021-01-21 10:52" | |
| 切换用户,从普通用户切换成超级管理员(密码是hadoop) | su root(root可以省略) | |
| 从超级管理员切换成普通用户 | su hadoop | |
| 自动补全智能按键 | "TAB" |
linux目录命令
目录切换与创建
| 功能 | 命令 | 实例 |
|---|---|---|
| 切换到根路径下的opt目录("/"代表根路径) | cd /opt | |
| 查看当前路径 | pwd | |
| 切换到上级父目录 | cd .. | |
| 切换到当前用户所在的家 | cd ~ | |
| 创建目录(绝对路径) | mkdir /opt/data | |
| 创建目录(基于当前路径,也可以创建多级目录) | mkdir -p data2 | |
| 基于绝对路劲进行切换 | cd /opt/data | |
| 基于相对路劲进行切换(要保证当前已经在要切换文件夹的父文件夹下) | cd /data |
目录查看
| 功能 | 命令 | 实例 |
|---|---|---|
#-a:代表显示所有文件和目录信息,包含隐藏内容 | ls -a /opt | |
#-l:代表以长列表显示目录和文件详细信息 | ls -l /opt | |
相当于 ls -l | ll /opt | |
| 查看opt下的所有内容,包括隐藏内容,以长列表的形式展示 | ls -al /opt |
文件创建
| 功能 | 命令 | 实例 |
|---|---|---|
| 创建空文件【touch】,创建两个空文件 | touch file1.txt file2.txt | |
| 覆盖写入内容【echo】> | echo "hello world">hello.txt | 如果文件不存在就创建 |
| 追加写入内容【echo】>> | echo "i am a girl">>hello.txt | |
| 查看文件内容【cat】 | cat hello.txt |
【vi编辑器】
语法: vi/vim 文件名
[hadoop@hadoop01 data]$ vi hello.txt #打开已有文件
[hadoop@hadoop01 data]$ vi hi.txt #新建文件
1)默认进入命令模式(不能编辑文件)
--->进入到编辑模式:输入i 或 输入a
2)编辑完毕后,如何"保存"文件并退出?
2.1)按"esc"键,退出编辑模式,进入命令模式
2.2)输入命令 :wq
2.3)输入完毕,执行enter
3)编辑完毕后,如何"不保存"文件并退出?
3.1)按"esc"键,退出编辑模式,进入命令模式
3.2)输入命令 :q!
3.3)输入完毕,执行enter
【vi编辑器基于命令模式的操作】
(就是执行完vi命令了,进入了文件内部,没有输入i进入【编辑模式】,有哪些可用的操作)
1)行号
:set nu 显示行号
:set nonu 取消行号
2)复制(以光标所在位置为基准)
复制当前行1行: yy
复制当前行到下n行: nyy(比如:4yy)
注意:没有冒号,直接按键盘yy
3)粘贴(以光标所在位置为准)
p(小写):光标位置向下粘贴
P(大写):光标位置向上粘贴
输入3yy:
按p
4) 删除
删除当前1行: dd
删除当前行到下n行: ndd(比如:4dd)
5)定位光标
:set nu #先显示行号
5.1)定位到首行: gg
5.2) 定位到最后1行: G
5.3) 定位到指定行: nG (比如:20G)
6)搜索
语法: /搜索内容 #从光标处向下查找内容
比如:/property
7)查找替换
语法: :开始行号,截止行号 s/oldword/newword
$ : 表示最后1行
需求:将hdfs-site.xml文件中的property换成PROPERTY
命令实现:(有冒号)
:1,$ s/property/PROPERTY
文件、目录复制【cp】
| 备注 | 命令 | 实例 |
|---|---|---|
| 将文件1复制到文件2 【可以使用相对路径或者绝对路径】 | cp 文件1 文件2 | |
| 将a.txt、b.log 复制到p路径【相对路径或绝对路径】 | cp a.txt b.txt p | |
| 将非空目录p 复制到另一个目录/home/log 【-r 递归复制】 | cp -r p /home/log |
文件、目录移动、重命名【mv】
命令: mv
【重命名】
特点:文件的目标地址与原地址一致
[hadoop@hadoop01 data]$ mv hello.txt newhello.log
【移动】
特点:文件的目标地址与原地址不一致
[hadoop@hadoop01 data]$ mv hi.txt /opt/data/1
[hadoop@hadoop01 data]$ ll 1
总用量 4
drwxrwxr-x 3 hadoop hadoop 15 1月 18 14:31 2
-rw-rw-r-- 1 hadoop hadoop 45 1月 18 15:11 hi.txt
文件、目录删除【rm】
【删除文件】
[hadoop@hadoop01 data]$ rm -i newhello.log #删除文件:之前会询问
rm:是否删除普通文件 'newhello.log'?n
【删除目录】
[hadoop@hadoop01 data]$ rm -r logs #删除目录 -r:递归删除信息
[hadoop@hadoop01 data]$ rm -ri orderlog/ #-i:删除前询问
文件查看
【cat】 查看所有,适合文件内容不多
[hadoop@hadoop01 data]$ cat hdfs-site.xml
【wc】
[hadoop@hadoop01 data]$ wc -l hadoop-hadoop-datanode-hadoop01.log #-l:line 显示文件行数
【head】从前往后查看,可指定前N行
[hadoop@hadoop01 data]$ head -2 hdfs-site.xml#查看hdfs-site.xml的前两行
【tail】从后往前看,可指定查看范围#数据量特别大的时候,只想看看最后更新的内容,一般查看日志的时候用
tail -1 hadoop-hadoop-datanode-hadoop01.log #查看最后一行
用户管理
用户组group操作
[hadoop@hadoop01 data]$ sudo vi /etc/group #查看组
[hadoop@hadoop01 data]$ sudo groupadd hainan02 #创建组
[hadoop@hadoop01 data]$ sudo vi /etc/group #查看创建的效果
hainan02:x:1004: #文件的最后1行(1004是组的编号)
[hadoop@hadoop01 data]$ sudo groupdel hainan02 #删除某组
用户操作
[hadoop@hadoop01 data]$ sudo vi /etc/passwd #查看用户列表
【添加用户tianqi ,指定在组hainan02】
[hadoop@hadoop01 data]$ sudo useradd tianqi -g 1004 #1004组编号
[hadoop@hadoop01 data]$ sudo vi /etc/passwd
tianqi:x:1004:1004::/home/tianqi:/bin/bash
说明: x(加密密码)
1004:1004 ->第1个1004(用户编号),后者1004(分配好的组编号)
/home/tianqi -> 当前用户的家
【把tianqi用户,分配到hainan03组】
[hadoop@hadoop01 data]$ sudo groupadd hainan03
[hadoop@hadoop01 data]$ sudo usermod tianqi -g 1005 #调组命令
tianqi:x:1004:1005::/home/tianqi:/bin/bash #调整后的效果
【设置密码】
[hadoop@hadoop01 data]$ sudo passwd tianqi
【删除某用户,并且一并删除家目录】
[hadoop@hadoop01 data]$ sudo userdel -r tianqi
Linux文件权限管理
介绍文件权限
-rw-rw-r-- 1 hadoop hadoop 91 1月 18 15:37 2021_01_18_orderlog.log
- rw- rw- r--(1,3,3,3): 文件类型、文件权限
1)文件类型
d: 是目录
-: 是文件
l: 是文件超链接
2)文件权限(r:read可读 w:write可写 x:execute 可执行)
rw- rw- r--
2.1)rw-: 当前的拥有者 对 该文件具有的权限
2.2)rw-: 当前的拥有组成员 对 该文件具有的权限
2.3)r--: 其他用户 对 该文件具有的权限
第一行信息:drwxrwxr-x 2 hadoop hadoop 6 1月 21 11:18 data
d代表data是目录类
第一个rwx: 当前拥有者对这个文件的权限是可读可写可执行。
两个hadoop代表 :这个文件的拥护者是hadoop用户,hadoop组
所以hadoop用户对data目录的权限是可读可写可执行
第二个rwx:代表当前的拥有组成员对该文件可读可写可执行,当前组是hadoop组
第三部分r-x:代表其他用户对该文件的权限是可读不可写可执行
修改文件权限【chmod】
u、g、o或者4、2、1
【没有修改前】
[hadoop@hadoop01 data]$ pwd
/opt/data
-rw-r--r-- 1 hadoop hadoop 1380 1月 18 15:33 hdfs-site.xml
【需求1:让本组的用户能对hdfs-site.xml具有"修改"的功能】
说明: u:用户 g:组 o:其他用户
[hadoop@hadoop01 data]$ sudo chmod g+w hdfs-site.xml
【思考问题?】
[hadoop@hadoop01 data]$ sudo chmod g-r,o+w,u+x hdfs-site.xml
【需求2:hdfs-site.xml对所有人都 可读可写可执行】
read:4 write:2 execute:1 4+2+1=7可读可写可执行
[hadoop@hadoop01 data]$ sudo chmod 777 hdfs-site.xml
#每一个7都代表一个角色,7代表权限拉满
修改文件、目录拥有者【chown】
【需求1:让hdfs-site.xml属于tianqi用户、hainan02组】
#改之前的效果
-rwxrwxrwx 1 hadoop hadoop 1380 1月 18 15:33 hdfs-site.xml
#执行修改
[hadoop@hadoop01 data]$ sudo chown tianqi:hainan02 hdfs-site.xml
#改之后的效果
-rwxrwxrwx 1 tianqi hainan02 1380 1月 18 15:33 hdfs-site.xml
【需求2:修改某个目录的拥有者】
[hadoop@hadoop01 data]$ sudo chown -R tianqi:hainan02 目录名 #递归修改目录权限、注意R要大写