实训—Linux常用命令

417 阅读6分钟

Linux常用命令

一.用户

  • 超级管理员root:一般不给普通员工使用
  • 普通用户

二.命令

格式:command [options*][arguments*] 中括号的内容可写可不写

项目描述
命令command指定系统要去做什么
选项options是一种修饰符,指定命令如何运行,选项以"-"开头
参数arguments指定命令作用于何处(文件、目录或文本)

常用命令

功能命令实例
操作系统信息unameimage-20210121103331817
输出硬件平台uname -iimage-20210121103432373
某一个command(例如uname)的帮助信息uname --helpimage-20210121103812156

非常常用

功能命令实例
查看当前操作的路径pwdimage-20210121104157979
进入homecd ~
清屏clear
返回当前时间dateimage-20210121104258804
查看当前日历calimage-20210121104324456
查看指定时间日历cal 07 2020image-20210121104718072
设置系统时间sudo date -s "2021-01-21 10:52"image-20210121105326796
切换用户,从普通用户切换成超级管理员(密码是hadoop)su root(root可以省略)image-20210121105637892
从超级管理员切换成普通用户su hadoopimage-20210121105927927
自动补全智能按键"TAB"

linux目录命令

目录切换与创建

功能命令实例
切换到根路径下的opt目录("/"代表根路径)cd /opt
查看当前路径pwd
切换到上级父目录cd ..
切换到当前用户所在的家cd ~
创建目录(绝对路径)mkdir /opt/dataimage-20210121111931190
创建目录(基于当前路径,也可以创建多级目录)mkdir -p data2image-20210121112100577
基于绝对路劲进行切换cd /opt/data
基于相对路劲进行切换(要保证当前已经在要切换文件夹的父文件夹下)cd /data

目录查看

功能命令实例
#-a:代表显示所有文件和目录信息,包含隐藏内容ls -a /optimage-20210121112609134
#-l:代表以长列表显示目录和文件详细信息ls -l /optimage-20210121112737207
相当于 ls -lll /opt
查看opt下的所有内容,包括隐藏内容,以长列表的形式展示ls -al /optimage-20210121163550437

文件创建

功能命令实例
创建空文件【touch】,创建两个空文件touch file1.txt file2.txtimage-20210121163942124
覆盖写入内容【echo】>echo "hello world">hello.txt如果文件不存在就创建
追加写入内容【echo】>>echo "i am a girl">>hello.txt
查看文件内容【cat】cat hello.txtimage-20210121164322945
【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 取消行号

image-20210121165615384

2)复制(以光标所在位置为基准)
	复制当前行1行: yy
	复制当前行到下n行: nyy(比如:4yy)
注意:没有冒号,直接按键盘yy

3)粘贴(以光标所在位置为准)
	p(小写):光标位置向下粘贴
	P(大写):光标位置向上粘贴

输入3yy:

image-20210121172643541

按p

image-20210121172714449

4) 删除
	删除当前1行: dd
	删除当前行到下n行: ndd(比如:4dd)
5)定位光标
	:set nu #先显示行号
	5.1)定位到首行: gg
	5.2) 定位到最后1行: G
	5.3) 定位到指定行: nG (比如:20G)
6)搜索
	语法: /搜索内容 #从光标处向下查找内容
	比如:/property

image-20210121172944002

7)查找替换
语法: :开始行号,截止行号 s/oldword/newword
$ : 表示最后1行
需求:将hdfs-site.xml文件中的property换成PROPERTY
命令实现:(有冒号)
:1,$ s/property/PROPERTY

image-20210121173205263

文件、目录复制【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文件权限管理

介绍文件权限

image-20210121182449289

-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要大写