linux的目录
一、linux的安装
(一)centos版本选择和下载(Linux发行版)
版本:centos7.9
(二)VMware下载安装
VMware pro是专业版
(三)VMware里创建虚拟机
(四)安装CentOS
安装前,root用户密码设置、普通用户账号密码设置
账号:root
密码:atguigu
账号:atguigu
密码:atguigu
输入法加入:汉语拼音
super(win按键)+空格:切换输入法
二、基础篇–linux的操作
(一)桌面和终端基本操作
方法一:在桌面右键,点开终端(图形化界面)
方法二:Ctrl+alt+f2~f6(任选一个)进入无图形化界面;呼唤出鼠标:Ctrl+alt;退出无图形化界面:Ctrl+alt+f1
(二)文件系统
挂载点:在linux中,挂载就是利用一个目录当成进入点,将磁盘分区的数据放置在该目录下,而进入点的目录就称为挂载点;简单来说,挂载点就是linux中的磁盘文件系统的入口目录。
(三)VIM文本编辑器
vim 文本名:打开文本,即进入一般模式
i:插入(i代表进入编辑模式)
:w:保存(:代表进入命令模式)
esc:退出到一般模式
u:撤回上个编辑内容
:q:回到之前的控制台(:代表进入命令模式)
1.一般模式–常用语法
2.编辑模式–常用语法
3.命令模式–常用语法
在一般模式当中,输入『 : / ?』3个中的任何一个按钮,就可以将光标移动到最底下那
一行。
(四)网络配置
1.配置网络 ip 地址
修改 IP 地址
1) 查看 IP 配置文件,如图 5-5 所示
[root@hadoop100 桌面]#vim /etc/sysconfig/network-scripts/ifcfg-ens33
修改:其中ip要根据自己的
2)执行 service network restart 重启网络
ifconfig
查一下
如下图,即改成功
3)到主机那边ping一下
至此都能ping通
2.配置主机名
修改主机名称
1)修改 linux 的主机映射文件(hosts 文件)
后续在 hadoop 阶段,虚拟机会比较多,配置时通常会采用主机名的方式配置,
比较简单方便。 不用刻意记 ip 地址。
(1)打开/etc/hosts
[root@hadoop100 桌面]# vim /etc/hosts
添加如下内容
192.168.163.100 redis100
192.168.163.101 redis101
192.168.163.102 redis102
192.168.163.103 redis103
192.168.163.104 redis104
2)修改 windows 的主机映射文件(hosts 文件)
(1)进入 C:\Windows\System32\drivers\etc 路径
(2)打开 hosts 文件并添加如下内容
192.168.163.100 redis100
192.168.163.101 redis101
192.168.163.102 redis102
192.168.163.103 redis103
192.168.163.104 redis104
以后ping直接ping主机名
(五)远程登录ssh–使用Xshell软件
远程登录工具就是必不可缺的,目前,比较主流的有 Xshell=, SSH Secure Shell, SecureCRT,FinalShell 等。
比较常用的xshell,安装后。。。
新建会话:
设置一些习惯操作
(六)Xftp的下载–传文件用
xftp学生版下载地址:
https://www.xshell.com/zh/free-for-home-school/
xftp中文乱码问题:
解决:文件-当前会话属性,点击选项按钮
(七)系统管理
1.systemctl (CentOS 7 版本-重点掌握)
1) 基本语法
systemctl start | stop | restart | status 服务名
2) 去关闭下network 并开启NetworkManager
systemctl status network
systemctl status NetworkManager
systemctl stop network
systemctl restart NetworkManager
2.系统运行级别–略
(略:setup
后进入
选系统服务,enter
开机自启动的前面是有标星号的
不让开机自启动的,选中按空格
按tab会跳到下面的按钮)
1)CentOS7 的运行级别简化为:
multi-user.target 等价于原运行级别 3(多用户有网,无图形界面)
graphical.target 等价于原运行级别 5(多用户有网,有图形界面)
运行级别 3等价于
方法二:Ctrl+alt+f2~f6(任选一个)进入无图形化界面;呼唤出鼠标:Ctrl+alt;退出无图形化界面:Ctrl+alt+f1
2)查看当前运行级别:
systemctl get-default
3)查看开机自启动的
systemtrl list-unit-files
在日常运维中,很多软件安装好后续要配置开机自启动,这样级市服务器重启,也不需要挨个启动这些服务了,比如Redis,Myqsl,Tomcat,PHP,Nginx,Docker等
3.关闭防火墙–略
4.关机重启命令
在 linux 领域内大多用在服务器上,很少遇到关机的操作。毕竟服务器上跑一个服务是永无止境的,除非特殊情况下,不得已才会关机。
1)基本语法
(1)sync (功能描述:将数据由内存同步到硬盘中)
(2)halt (功能描述:停机,关闭系统,但不断电)
(3)poweroff (功能描述:关机,断电)
(3)reboot (功能描述:就是重启,等同于 shutdown -r now)
(4)shutdown [选项] 时间
三、实操篇–常用基本命令(重要)
(一)shell命令整体介绍及帮助命令
1、 man 获得帮助信息(命令手册manual)
1)基本语法
man [命令或配置文件] (功能描述:获得帮助信息,内部命令、外部命令都可以用)
或者外部命令使用: 命令 --help
3)案例实操
(1)查看 ls 命令的帮助信息
[root@hadoop101 ~]# man ls
2、help 获得 shell 内置命令的帮助信息
一部分基础功能的系统命令是直接内嵌在 shell 中的,系统加载启动之后会随着 shell 一起加载,常驻系统内存中。这部分命令被称为“内置(built-in)命令”;相应的其它命令被称为“外部命令”
cd、exit均为内置命令
type cd用诸如此类方式就可判断是否内置命令还是外部命令
1)基本语法
help 命令(功能描述:获得 shell 内置命令的帮助信息,缺点纯英文)
2)案例实操
(1)查看 cd 命令的帮助信息
[root@hadoop101 ~]# help cd
3.常用快捷键
(二)文件目录类
1.pwd 显示当前工作目录的绝对路径
pwd:print working directory 打印工作目录
1)案例实操
(1)显示当前工作目录的绝对路径
[root@hadoop101 ~]# pwd
/root
2.ls 列出目录的内容
ls:list 列出目录内容
1)基本语法
ls [选项] [目录或是文件]
2)选项说明
ls -l等价于ll
3.cd 切换目录
cd:Change Directory 切换路径
1)基本语法
cd [参数]
2)参数说明
4.mkdir 创建一个新的目录
mkdir:Make directory 建立目录
1)基本语法
mkdir [选项] 要创建的目录
2)选项说明
5.rmdir 删除一个空的目录
rmdir:Remove directory 移除目录
1)基本语法
rmdir 要删除的空目录
6.touch 创建空文件
1)基本语法
touch 文件名称
vim 文件名称(也会创建文件,:wq会保存空文件,:q就是退出没保存空文件了)
7.cp 复制文件或目录
1)基本语法
cp [选项] source dest (功能描述:复制source文件到dest)
2)选项说明
文件夹底下有文件夹文件等,递归都复制过去
3)经验技巧
强制覆盖不提示的方法:\cp
8. rm 删除文件或目录
1)基本语法
rm [选项] deleteFile (功能描述:递归删除目录中所有内容)
2)选项说明
删目录 记得加-r
-rf 不会提示是否确认删除,直接强制执行删除
9. mv 移动文件与目录或重命名
1)基本语法
(1)mv oldNameFile newNameFile (功能描述:重命名)
(2)mv /temp/movefile /targetFolder (功能描述:移动文件)
10. cat 查看文件内容
改文件可用用vim
比如日志那些,只想看,用cat看一下,查看文件内容,从第一行开始显示。
1)基本语法
cat [选项] 要查看的文件
2)选项说明
3)经验技巧
一般查看比较小的文件,一屏幕能显示全的。
11. more 文件内容分屏查看器
1)基本语法
more 要查看的文件
2)操作说明
12.less 分屏显示文件内容
less 指令用来分屏查看文件内容,它的功能与 more 指令类似,但是比 more 指令更加强大,支持各种显示终端。less 指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率。
1)基本语法
less 要查看的文件
2)操作说明
g 回到开头
G 到尾部
13.echo输出内容到控制台
1)基本语法
echo [选项] [输出内容]
echo “hello word”这样才能保留制表符
echo $ 显示系统环境变量
14.head 显示文件头部内容
1)基本语法
head 文件 (功能描述:查看文件头10行内容)
head -n 5 文件 (功能描述:查看文件头5行内容,5可以是任意行数)
2)选项说明
15.tail 输出文件尾部内容
tail 用于输出文件中尾部的内容,默认情况下 tail 指令显示文件的后 10 行内容。
1) 基本语法
(1)tail 文件 (功能描述:查看文件尾部10行内容)
(2)tail -n 5 文件 (功能描述:查看文件尾部5行内容,5可以是任意行数)
(3)tail -f 文件 (功能描述:实时追踪该文档的所有更新,f:follow)
ctrl +c:退出
ctrl+s:暂停
ctrl+q:继续
16.> 输出重定向和 >> 追加
1)基本语法
(1)ls -l > 文件 (功能描述:列表的内容写入文件 a.txt 中(覆盖写))
(2)ls -al >> 文件 (功能描述:列表的内容追加到文件 aa.txt 的末尾)
(3)cat 文件 1 > 文件 2 (功能描述:将文件 1 的内容覆盖到文件 2)
(4)echo “内容” >> 文件
17.ln 软链接
link
软链接也称为符号链接,类似于 windows 里的快捷方式,有自己的数据块,主要存放了链接其他文件的路径。
1)基本语法
ln -s [原文件或目录] [软链接名] (功能描述:给原文件创建一个软链接,s:source)
pwd -P:抛开软链接,显示实际的文件夹绝对路径(P:physcial物理的)
2)经验技巧
删除软链接: rm -rf 软链接名,而不是 rm -rf 软链接名/
如果使用 rm -rf 软链接名/ 删除,会把软链接对应的真实目录下内容删掉,所以不要这样做
查询:通过 ll 就可以查看,列表属性第 1 位是 l,尾部会有位置指向。
硬链接:ln 文件 链接(用的少)
硬连接就是相当于一个指针,软连接就是一个文件指向
18.history 查看已经执行过历史命令
1)基本语法
history (功能描述:查看已经执行过历史命令)
!行数:显示这行命令
history -c:清空所有历史命令
(三)时间日期类
1)基本语法
date [OPTION]… [+FORMAT]
2)选项说明
3)参数说明
1.date 显示当前时间
1)基本语法
(1)date (功能描述:显示当前时间)
(2)date +%Y (功能描述:显示当前年份)
(3)date +%m (功能描述:显示当前月份)
(4)date +%d (功能描述:显示当前是哪一天)
(5)date “+%Y-%m-%d %H:%M:%S” (功能描述:显示年月日时分秒)
date +%S:当前秒数
date +%s:当前时间戳(1970年到现在秒数)
2.date 显示非当前时间
1)基本语法
(1)date -d ‘1 days ago’ (功能描述:显示前一天时间)
(2)date -d ‘-1 days ago’ (功能描述:显示明天时间)
3.date 设置系统时间
1)基本语法
date -s 字符串时间
2)案例实操
(1)设置系统当前时间
[root@hadoop101 ~]# date -s “2017-06-19 20:52:18”
4.cal 查看日历
1)基本语法
cal [选项] (功能描述:不加选项,显示本月日历)
2)选项说明
(四)用户管理命令
1.useradd 添加新用户
1)基本语法
useradd 用户名 (功能描述:添加新用户)
useradd -g 组名 用户名 (功能描述:添加新用户到某个组)
useradd -d 路径 用户名
2.passwd 设置用户密码
1)基本语法
passwd 用户名 (功能描述:设置用户密码)
3.id 查看用户是否存在
1)基本语法
id 用户名
4.cat /etc/passwd 查看创建了哪些用户
查看文件,查看创建了哪些用户
第一字段:用户名;第二字段:密码占位符
第三字段:用户UID;第四字段:用户GID
第五字段:用户的全名;第六字段:用户家目录;第七段:用户的登录shell
5.su 切换用户
su: switch user 切换用户
1)基本语法
su 用户名称 (功能描述:切换用户,只能获得用户的执行权限,不能获得环境变量)
su - 用户名称 (功能描述:切换到用户并获得该用户的环境变量及执行权限)
exit 退出上一层,回退
6.who 查看登录用户信息
su切来切去,不知道自己是哪个用户了,可用who
1)基本语法
(1)whoami (功能描述:显示自身用户名称)
(2)who am i (功能描述:显示登录用户的用户名以及登陆时间)
7.sudo 设置普通用户具有 root 权限
临时获取管理员权限
1)添加 atguigu 用户,并对其设置密码。----选用
[root@hadoop101 ~]#useradd atguigu
[root@hadoop101 ~]#passwd atguigu
2)修改配置文件
[root@hadoop101 ~]#vim /etc/sudoers 修改 /etc/sudoers 文件,找到下面一行(91 行),在 root 下面添加一行,如下所示:
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
atguigu ALL=(ALL) ALL
或者配置成采用 sudo 命令时,不需要输入密码
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
atguigu ALL=(ALL) NOPASSWD:ALL
:wq! 才能强制保存并退出
修改完毕,现在可以用 atguigu 帐号登录,然后用命令 sudo ,即可获得 root 权限进行操作。
8.userdel 删除用户
1)基本语法
(1)userdel 用户名 (功能描述:删除用户但保存用户主目录)
(2)userdel -r 用户名 (功能描述:用户和用户主目录,都删除)
2)选项说明
9.usermod 修改用户
1)基本语法
usermod -g 用户组 用户名
2)选项说明
(五)用户组管理命令
每个用户都有一个用户组(可用属于多个组),系统可以对一个用户组中的所有用户进行集中管理。不同
Linux 系统对用户组的规定有所不同,
如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。
用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对==/etc/group==文件的更新。
1.groupadd 新增组
1)基本语法
groupadd 组名
usermod -g meifa tony(把tony这个用户加入meifa组)
2.groupdel 删除组
1)基本语法
groupdel 组名
3.groupmod 修改组
1)基本语法
groupmod -n 新组名 老组名
2)选项说明
4.cat /etc/group 查看创建了哪些组
(六)文件权限管理
1.文件属性
Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。
在Linux中我们可以使用ll或者ls -l命令来显示一个文件的属性以及文件所属的用户和组。显示如下
1)显示,从左到右的 10 个字符表示
如果没有权限,就会出现减号[ - ]而已。从左至右用0-9这些数字来表示:
(1)0 首位表示类型
在Linux中第一个字符代表这个文件是目录、文件或链接文件等等
- 代表文件
d 代表目录
l 链接文档(link file);
(2)第1-3位确定属主(该文件的所有者)拥有该文件的权限。—User
(3)第4-6位确定属组(所有者的同组用户)拥有该文件的权限,—Group
(4)第7-9位确定其他用户拥有该文件的权限 —Other
2)rwx 对于文件和目录是有不同解释的
(1)作用到文件:
[ r ]代表可读(read): 可以读取,查看
[ w ]代表可写(write): 可以修改,但是不代表可以删除该文件,删除一个文件的前
提条件是对该文件所在的目录有写权限,才能删除该文件.
[ x ]代表可执行(execute):可以被系统执行
(2)作用到目录:
[ r ]代表可读(read): 可以读取,ls查看目录内容
[ w ]代表可写(write): 可以修改,目录内创建+删除+重命名目录
[ x ]代表可执行(execute):可以进入该目录
文件基本属性介绍:
(1)如果查看到是文件:链接数指的是硬链接个数。
(2)如果查看的是文件夹:链接数指的是子文件夹个数。
2.chmod 改变权限
1)基本语法
第一种方式变更权限(其中a指all)
chmod [{ugoa}{±=}{rwx}] 文件或目录
第二种方式变更权限
chmod [mode=421 ] [文件或目录]
2)经验技巧
u:所有者 g:所有组 o:其他人 a:所有人(u、g、o 的总和)
r=4 w=2 x=1 rwx=4+2+1=7
3.chown 改变所有者
1)基本语法
chown [选项] [最终用户] [文件或目录] (功能描述:改变文件或者目录的所有
者)
2)选项说明
4.chgrp 改变所属组
1)基本语法
chgrp [最终用户组] [文件或目录] (功能描述:改变文件或者目录的所属组)
(七)搜索查找类
1.find 查找文件或者目录
find 指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件显示在终端。
1)基本语法
find [搜索范围] [选项]
2)选项说明
[root@hadoop101 ~]# find xiyou/ -name “*.txt”
(+n 大于 -n小于 n等于):
[root@hadoop101 ~]find /home -size +204800
2.locate 快速定位文件路径
locate 指令利用事先建立的系统中所有文件名称及路径的 locate 数据库实现快速定位给
定的文件。Locate 指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确
度,管理员必须定期更新 locate 时刻。
1)基本语法
locate 搜索文件
2)经验技巧
由于 locate 指令基于数据库进行查询,所以第一次运行前,必须使用 updatedb 指令创建 locate 数据库。
3)实操
[root@hadoop101 ~]# updatedb
[root@hadoop101 ~]#locate tmp
3.grep 过滤查找及“|”管道符
管道符,“|”,表示将前一个命令的处理结果输出传递给后面的命令处理
1)基本语法
grep 选项 查找内容 源文件
(grep与find locate区别,这个是查内容)
2)选项说明
(八)压缩解压类
1.gzip/gunzip 压缩
1)基本语法
gzip 文件 (功能描述:压缩文件,只能将文件压缩为*.gz 文件)
gunzip 文件.gz (功能描述:解压缩文件命令)
2)经验技巧
(1)只能压缩文件不能压缩目录
(2)不保留原来的文件
(3)同时多个文件会产生多个压缩包
2.zip/unzip 压缩
1)基本语法
zip [选项] XXX.zip 将要压缩的内容 (功能描述:压缩文件和目录的命令)
unzip [选项] XXX.zip (功能描述:解压缩文件)
2)选项说明
3)经验技巧
zip 压缩命令在windows/linux都通用,可以压缩目录且保留源文件。
4)案例实操
zip -r myroot.zip /root
3.tar 打包
1)基本语法
tar [选项] XXX.tar.gz 将要打包进去的内容 (功能描述:打包目录,压缩后的
文件格式.tar.gz)
2)选项说明
3)案例实操
(1)压缩多个文件
[root@hadoop101 opt]# tar -zcvf houma.tar.gz houge.txt bailongma.txt
houge.txt
bailongma.txt
[root@hadoop101 opt]# ls
houma.tar.gz houge.txt bailongma.txt
(2)压缩目录
[root@hadoop101 ~]# tar -zcvf xiyou.tar.gz xiyou/
xiyou/
xiyou/mingjie/
xiyou/dssz/
xiyou/dssz/houge.txt
(3)解压到当前目录
[root@hadoop101 ~]# tar -zxvf houma.tar.gz
(4)解压到指定目录
[root@hadoop101 ~]# tar -zxvf xiyou.tar.gz -C /opt
[root@hadoop101 ~]# ll /opt/
zip和tar用的多,只要会tar,因为最常用
(九)磁盘查看和分区类
树状目录安装插件:(以下语句均安装不了,已解决,详见笔记yum命令出现未知错误找不到镜像,可用ctrl+z去终止)
yum install tree
yum -y install tree
Ubuntu apt-get install tree
Ubuntu apt-get install tree
就可
tree 目录
1.du 查看文件和目录占用的磁盘空间
du: disk usage 磁盘占用情况
1)基本语法
du 目录/文件 (功能描述:显示目录下每个子目录的磁盘使用情况,因为ll可用看文件占用的大小,所以这个命令一般用作看目录占用磁盘空间)
2)选项说明
3)案例实操
(1)查看当前用户主目录占用的磁盘空间大小
[root@hadoop101 ~]# du -sh
166M
2.df 查看磁盘空间使用情况
df: disk free 空余磁盘
1)基本语法
df 选项 (功能描述:列出文件系统的整体磁盘使用量,检查文件系统的磁盘空间占用情况)
2)选项说明
3.lsblk 查看设备挂载情况
1)基本语法
lsblk (功能描述:查看设备挂载情况,blk是block的缩写,磁盘等)
2)选项说明
4.mount/umount 挂载/卸载
对于Linux用户来讲,不论有几个分区,分别分给哪一个目录使用,它总归就是一个根目录、一个独立且唯一的文件结构。
Linux中每个分区都是用来组成整个文件系统的一部分,它在用一种叫做“挂载”的处理方法,它整个文件系统中包含了一整套的文件和目录,并将一个分区和一个目录联系起来,要载入的那个分区将使它的存储空间在这个目录下获得。
1)挂载前准备(必须要有光盘或者已经连接镜像文件)
2)基本语法
mount [-t vfstype] [-o options] device dir (功能描述:挂载设备)
umount 设备文件名或挂载点 (功能描述:卸载设备)
3)参数说明
学到了P53(待学),后续待学。。
学习链接:
【3天搞定Linux,1天搞定Shell,清华学神带你通关】https://www.bilibili.com/video/BV1WY4y1H7d3?p=52&vd_source=15b3500986495e9efbe9134f16f65446
tab:补全输入的文件名