一、概述
1、CentOS 目录下各文件含义
/ - 根
处于 Linux 系统树形结构的最顶端,它是 Linux 文件系统的入口,所有的目录、文件、设备都在 / 之下。
/bin - 二进制命令目录
bin 是 Binary 的缩写。常用的二进制命令目录。比如 ls、cp、mkdir、cut等;和 /usr/bin 类似,是 /usr/bin 的软链接,一些用户级工具。
/boot - 引导加载程序文件
系统内核及引导系统程序所需要的文件目录,包含引导加载程序相关的文件。内核的initrd、vmlinux、grub文件位于/boot下。
/dev - 设备文件
dev是Device的缩写。设备文件目录,比如声卡、磁盘、USB等在Linux中。
设备文件:/dev/sda,/dev/sda1,/dev/tty1,/dev/tty2,/dev/pts/1, /dev/zero, /dev/null, /dev/cdrom/dev/tty1,/dev/usbmon0。
(一切都被看做文件。终端设备、磁盘等等都被看做文件)
/etc - 配置文件
常用系统及二进制安装包配置文件默认路径和服务器启动命令目录,存放系统配置文件,包含所有程序所需的配置文件。也包含了用于启动/停止单个程序的启动和关闭shell脚本。例如:/etc/resolv.conf、/etc/logrotate.conf。
- passwd - 用户信息文件
- shadow - 用户密码文件
- group - 存储用户组信息
- fstab - 系统开机启动自动挂载分区列表
- hosts - 设定用户自己的IP与主机名对应的信息
/home - HOME目录
普通用户的家目录默认存放目录,存放个人数据。
/lib - 库文件存方目录
库文件存放目录,函数库目录。
/mnt - 挂载目录
一般用来临时挂载存储设备的挂载目录,比如有cdrom、U盘等目录。
在CENTOS7中会挂载到/run下面。
/media - 可移动媒体设备
用于挂载可移动设备的临时目录。例如:挂载CD-ROM的/media/cdrom,挂载软盘驱动器的/media/floppy。
/opt - 可选的附加应用程序
表示的是可选择的意思,有些软件包也会被安装在这里。
/proc - 进程信息
操作系统运行时,进程(正在运行中的程序)信息及内核信息(比如cpu、硬盘分区、内存信息等)存放在这里。/proc 目录是伪装的文件系统 proc 的挂载目录,proc并不是真正的文件系统。因此,这个目录是一个虚拟的目录(文件系统),系统资源以文本信息形式存在,包含有关正在运行的进程的信息,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。也就是说,这个目录的内容不在硬盘上而是在内存里。
- 查看文件大小 du -sh /etc/
- 查看进程大小 du -sh /proc/ (因为存在内存中,不再硬盘里面,所以不占空间)
- 查看CPU信息 cat /proc/cpuinfo
/sys - 系统目录
存放硬件信息的相关文件
/run - 运行目录
存放的是系统运行时的数据,比如进程的 PID 文件。
/src - 服务目录
存放的是我们本地服务的相关文件
/sbin - 系统二进制文件
就像/bin,/sbin同样也包含二进制可执行文件。大多数涉及系统管理的命令都存放在该目录中,它是超级权限用户 root 的可执行命令存放地,普通用户无权限执行这个目录下的命令,凡是目录sbin中包含的命令都是 root 权限才能执行的,对系统进行维护。例如:iptables、reboot、fdisk、ifconfig、swapon命令。
/tmp - 临时文件
用于存放临时文件,有些只用一两次的文件就放这,系统会定期处理,包含系统和用户创建的临时文件。
当系统重新启动时,这个目录下的文件都将被删除。
/var - 变量文件
这个目录经常变动,这个目录下可以找到内容可能增长的文件。
这包括:
- /var/log - 系统日志文件
- /var/lib - 包和数据库文件
- /var/mail - 电子邮件
- /var/spool - 打印队列
- /var/lock - 锁文件
- /var/tmp - 多次重新启动需要的临时文件
/usr - 应用程序和文件
系统存放程序的目录,比如命令、帮助文件等。这个目录下有很多的文件和目录。包含二进制文件、库文件、文档和二级程序的源代码。
- /usr/bin - 普通用户使用的应用程序
- /usr/sbin - 管理员使用的应用程序
- /usr/lib - 库文件 Glibc(32位)
- /usr/lib64 - 库文件 Glibc
- /usr/local - 手动安装的软件所放的目录
2、绝对路径和相对路径
(1)、定义
在我们平时使用计算机时要找到需要的文件就必须知道文件的位置,而表示文件的位置的方式就是路径。
(2)、绝对路径
以 " / "开头的就是绝对路径,比如/usr、/etc/passwd。
(3)、相对路径
不是以" / "开头的就是相对路径,相对路径是以 . 或 … 开始的。
3、不同颜色代表了不同的文件类型
二、常用命令
1、ls
命令英文原意:list
命令所在路径:/bin/ls
执行权限:所有用户
语法:ls 参数[-al] [文件或目录]
功能描述:显示目录文件
参数
- -a --all 显示所有文件,包括隐藏文件
- -l 详细信息显示
- -S 以文件的大小进行排序
ls # 查看本目录文件
ls -a # 查看本目录所有文件
ls -l # 分行查看本目录文件
第一个字符文件类型中
d:目录文件
l:链接文件
b:块设备文件
c:字符设备文件
p:管道文件
-: 表示普通文件
常用
ls -al # 分行查看本目录所有文件
ls -l /usr # 查看指定目录文件
ls -l 和 ll # 等价
2、cd
命令英文原意:change directory
命令所在路径:shell内置命令
执行权限:所有用户
语法:cd [目录]
功能描述:切换目录
cd /usr/local # 切换指定目录
常用
cd / # 切换到根目录
cd . # 在本目录中不变
cd .. # 切换到上一级目录
cd - # 和上一级目录来回切换
注:如果在某一目录中,想要回到起始目录,即
cd # 不加任何参数、目录
cd ~ # 加上 "~",回到家目录
3、touch
命令所在路径:/bin/touch
执行权限:所有用户
语法:touch [文件名]
功能描述:创建空文件
touch test.txt # 在本目录中创建一个文件
常用
touch /usr/local/test.txt # 指定目录下创建一个test.txt文件
4、mkdir
命令英文原意:make directories
命令所在路径:/bin/mkdir
执行权限:所有用户
语法:mkdir [目录名]
功能描述:创建新目录
参数
-p --parents 创建目录的时候将未创建的父目录也创建出来
mkdir test # 创建一个 test 目录
常用
mkdir /usr/local/test # 指定目录下创建一个 test 目录
注:如果创建的层叠目录不存在,加上参数 -p
mkdir -p /test1/test2/test3 # 将所有没有的目录创建出来
5、cp
命令英文原意:copy
命令所在路径:/bin/cp
执行权限:所有用户
语法:cp -R [源文件或目录] [目的目录]
功能描述:复制文件或目录
参数
-R -r --recursive 递归处理,将指定目录下的所有文件与子目录一并处理。
cp -r test1 test2 # cp -r 【源文件或目录】【目的目录】 test1:这里指的是新建的目录
6、mv
命令英文原意:move
命令所在路径:/bin/mv
执行权限:所有用户
语法:mv [源文件或目录] [目的目录]
功能描述:移动文件、更名
mv test1 test2 # 移动目录 12 到 test 目录
7、rm
命令英文原意:remove
命令所在路径:/bin/rm
执行权限:所有用户
语法:rm -r [文件或目录]
功能描述:删除文
参数
- -r -R, --recursive 指示rm将参数中列出的全部目录和子目录均递归地删除。
- -f --force 强制删除,没有提示。
rm -r test # 删除目录 test 提示内容:是否移除 test y:是,n:否
rm -rf test # 没有提示
8、cat
命令名称:cat
命令英文原意:concatenate and display files
命令所在路径:/bin/cat
执行权限:所有用户
语法:cat [文件名]
功能描述:显示文件内容
缺点:无法显示很长的文件
cat /etc/passwd #查看指定文件的内容
常用
cat /etc/locale.conf # 查看本地语言
9、more
命令名称:more
命令所在路径:/bin/more
执行权限:所有用户
语法:more [文件名]
(空格) 或f 显示下一页
(Enter) 显示下一行
q或Q 退出
功能描述:分页显示文件内容
more /etc/services # 查看内容
10、less
作用:和more功能一样
语法:less +文件名
说明:linux中more与less的区别
more:不支持后退,但几乎不需要加参数,空格键是向下翻页,Enter键是向下翻一行,在不需要后退的情况下比较方便
less:支持前后翻滚,既可以向上翻页(pageup按键),也可以向下翻页(pagedown按键)。空格键是向下翻页,Enter键是向下翻一行
11、head
指令所在路径:/bin/head
执行权限:所有用户
语法:head -num [文件名]
-num 显示文件的前num 行
功能描述:查看文件的前几行
范例:$ head -20 /etc/services
head /etc/passwd # 默认显示前10行数据
head -3 /etc/passwd # 显示前3行数据
12、tail
指令所在路径:/bin/tail
执行权限:所有用户
语法:tail -num [文件名]
-num 显示文件的后num行
-f 动态显示文件内容
功能描述:查看文件的后几行
tail /etc/passwd # 默认显示后10行数据
tail -3 /etc/passwd
13、pwd
命令英文原意:print working directory
命令所在路径:/bin/pwd
执行权限:所有用户
语法:pwd
功能描述:显示当前所在的工作目录
pwd
14、alias
指令所在路径:/usr/bin/alias
执行权限:所有用户
语法:alias [变量名] [功能]
功能描述:简化长的命令
// 定义一个变量代替长命令
alias weblogic='/home/weblogic/oracle_home/user_projects/domains/base_domain/startWebLogic.sh'
// 删除别名
unalias weblogic
设置别名永久生效
(1)、仅当前用户生效
vim /root/.bashrc
在文本中加入图片中最下面一行
# 重新加载一下
source /root/.bashrc
(2)、全局使用
vim /etc/bashrc # 在最后加上 alias 命令
15、history
history # 查看历史命令
4 个快速查找Linux历史命令的技巧
方法1:光标上下键
方法2:ctrl+r -> [输入某条命令的关键字] ->[找出来对应的命令],按(左)右光标键
方法3:!数字 //执行历史命令中第N条命令
方法4:!字符串 //搜索历史命令中最近一个以xxx字符开头的命令,例如!vim
三、常用功能
1、快捷键
都是用Ctrl+下面的单词, ^表示Ctrl
- ^C: 终止前台运行的程序 , 如:ping g.cn后,想停止按下Ctrl+C
- ^D: 退出,等价与 exit
- ^L: 清屏与 clear 功能一样
- ^A: 跳到命令行的开头
- ^E: 跳到命令行的末尾
- ^U: 将光标处到命令行开头的内容删除
- ^K: 将光标处到命令行末尾的内容删除
- ^R: 搜索历史命令,可以利用好关键词
- !$: 引用上一个命令的最后一个参数
常用技巧
- Ctrl + Shift + N: 快速打开一个终端(新窗口)
- Ctrl + Shift + T: 快速打开一个终端(在同一个窗口)
- Ctrl + D: 关闭一个终端
- Ctrl + Shift + 加号: 字体放大
- Ctrl + 减号: 字体缩小
2、帮助命令
遇到命令不知道添加哪个参数,可以使用命令帮助查看相关介绍,常用的查看帮助信息命令有如下几个
(1)、man
指令所在路径:/usr/bin/man
执行权限:所有用户
语法:man [shell命令]
功能描述:查看手册页或命令描述
man find # 查看手册详解
退出,按 q
(2)、–help
find --help # find -h 不可以执行
3、开关机命令
作用:关机,重启,定时关机
(1)、shutdown
参数
- -r 重新启动计算机
- -h 关机
- -h 时间 定时关机
shutdown -r # 重启
shutdown -h # 关机,默认一分钟后关机
shutdown -c # 取消关机
定时关机
shutdown -h +10 # 10分钟之后关机
shutdown -h 13:14 # 指定具体时间关机
shutdown -h now # 立即关机
shutdown -r 12:13 # 指定时间重启
(2)、init
作用:切换系统运行级别
语法:init 0 - 6Linux 7 个启动级别
- 0: 系统停机模式,系统默认运行级别不能设置为0,否则不能正常启动,机器关的
- 1: 单用户模式,root 权限,用于系统维护,禁止远程登陆,就像Windows下的安全模式登录
- 2: 多用户模式,没有NFS和网络支持
- 3: 完整的多用户文本模式,有NFS和网络,登陆后进入控制台命令行模式
- 4: 系统未使用,保留一般不用,在一些特殊情况下可以用它来做一些事情。例如在笔记本电脑的电池用尽时,可以切换到这个模式来做一些设置
- 5: 图形化模式,登陆后进入图形GUl模式,XWindow系6重启模式,默认运行级别不能设为
- 6: 否则不能正常启动。运行init 6机器就会重启
(3)、设置默认的运行级别
centos7不再使用/etc/inittab文件进行默认的启动级别配置,而使用比sysvinit的运行级更为自由的target替代。
- 第3运行级用 multi-user.target 替代。
- 第5运行级用 graphical.target 替代。
设置默认第三启动级别 命令行界面
systemctl set-default multi-user.target
设置默认第五启动级别 图形化界面
systemctl set-default graphical.target
查看当前默认的启动级别
runlevel
systemctl get-default
4、挂载
sr0 & cdrom 的区别
注:cdrom 是 sr0 的软链接
(1)、单次挂载
// 这个目录
mount /dev/sr0 /mnt 或 monut /dev/cdrom /media
(2)、开机自动挂载
vim /etc/fstab
# 加入下面内容
/dev/cdrom /mnt iso9660 defaults 0 0
// 验证是否挂载成功
mount -a
5、软&硬链接
(1)、Linux 链接概念
Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为软链接,即符号链接(Symbolic Link)。默认情况下,ln命令产生硬链接。
6、CentOS 配置 epel 源
(1)、什么是epel 源
EPEL (Extra Packages for Enterprise Linux)是基于Fedora的一个项目,为“红帽系”的操作系统提供额外的软件包,适用于RHEL、CentOS和Scientific Linux。
我们需要安装一个叫 “epel-release” 的软件包,这个软件包会自动配置yum的软件仓库。
在http://mirrors.sohu.com/fedora-epel/目录下,有对应不同的版本
epel-release-latest-5.noarch.rpm
epel-release-latest-6.noarch.rpm
epel-release-latest-7.noarch.rpm
(2)、为什么要配置 epel 源
在CentOS 7下安装软件,使用yum install *** 命令时,经常会提示“没有可用软件包”,EREL为RHEL/CentOS提供他们默认不提供的软件包
yum list # 查看 yum 源
都是 base 的
yum -y install nginx # 安装 nginx 测试
(3)、在线安装 epel 源
yum -y install epel-release # yum 在线安装
(4)、清除建立缓存
yum clean all # 清理缓存
yum makecache # 建立缓存
(5)、查看安装的 epel 源
yum list # 右边显示的有 epel
7、修改 IP 地址
(1)、ifconfig命令使用方法
ifconfig
[root@cherub ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.139.128 netmask 255.255.255.0 broadcast 192.168.139.255
inet6 fe80::e54a:3f2d:f704:22f3 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:d0:e9:03 txqueuelen 1000 (Ethernet)
RX packets 20245 bytes 23893712 (22.7 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 4110 bytes 267242 (260.9 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
- 第一行:UP:网卡开启状态 RUNNING:网线处理连接状态 MULTICAST:支持组播
- 第二行:inet:网卡的IP地址 netmask:子网掩码 broadcast:广播地址
- 第三行:inet6:IPv6的配置信息
- 第四行:网卡的MAC地址,ether:表示连接类型为以太网 txqueuelen 1000:传输队列的长度
- 第五六行:网卡接收数据包的统计信息和接收错误的统计信息
- 第七八行:网卡发送数据包的统计信息和发送错误的统计信息
(2)、临时修改 IP 地址
8、RPM 包的管理
(1)、概述
软件包的类型
- rpm二进制包 已经使用GCC编译后的
- tar源码包 需要编译
RPM 概述
RPM 是 RPM Package Manager(RPM软件包管理器)的缩写,这一文件格式名称虽然打上了 RedHat 的标志,但是其原始设计理念是开放式的,现在包括 OpenLinux、SUSE 以及 Turbo Linux等Linux的分发版本都有采用,可以算是公认的行业标准了。
(2)、rpm 软件包的管理
rpm 包的获取方式
- CentOS 系统镜像光盘(需要挂载)
- 网站:rpmfind
- 比如安装mysql、nginx软件,我们可以去它的官方网站下载:http://www.mysql.com
/mnt/Packages/zsh-5.0.2-31.el7.x86_64.rpm
zsh-5.0.2-31.el7.x86_64.rpm
zsh -5. 0. 2- 31. el7. x86_64.rpm
软件名 主版本号 次版本号 修订 release(第几次发布版本) 操作系统版本 软件包是64位包
注:修订:指的是第几次修改bug。
发布:指的是第几次发布。(可能只是对软件安装的默认参数做了修改,而没有其他改动)
(3)、安装 rpm 软件
RPM工具使用分为安装、查询、验证、更新、删除等操作
参数:
- -i 是 install 的意思,安装软件包
- -v 显示附加消息,提供更多详细信息
- -V 校验,对已经安装的软件进行校验
- -h --hash,安装时输出 ### 标记
拓展:rpm使用时,什么情况下使用软件包全名,什么时候使用软件包名?
- 全名:在安装和更新升级时候使用
- 包名:对已经安装过的软件包进行操作时,比如查找已经安装的某个包,卸载包等 ,使用包名。它默认是去目录/var/lib/rpm下面进行搜索。 当一个 rpm 包安装到系统上之后,安装信息通常会保存在本地的 /var/lib/rpm/目录下。
从本地安装
rpm -ivh /mnt/Packages/zsh-5.0.2-31.el7.x86_64.rpm # 安装zsh
cat /etc/shells # 查看
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6bq8vtZr-1576410888878)(images/1566049147781.png)]
从网上下载直接安装centos epel扩展源
注:看 CentOS 配置 epel 源
(4)、rpm 查询功能
用法:rpm -q [常与下面的参数组合使用] q:query
- -a --all 查询所有已安装的软件包
- -f --file 系统文件名(查询系统文件所属哪个软件包),反向查询
- -i 显示已安装的 rpm 软件包的信息,后面直接跟包名
- -l --list 查询软件包文件的安装位置
- -p 查询未安装软件包的相关信息,后面要跟原件的命名
- -R 查询软件包的依赖性
rpm -qa # 查询所有已安装的软件包
rpm -qf /usr/bin/find # 查看系统文件名属于哪个软件包 (绝对路径)
rpm -qa | grep vim # 查询所有已安装包中带 vim 关键字的包
rpm -ql zsh # 查询软件包的文件安装位置
rpm -qi zsh-5.0.2-31.el7.x86_64 # 查询 zsh 的信息
rpm -qpi /mnt/Packages/php-mysql-5.4.16-46.el7.x86_64.rpm # 查询未安装软件包的信息
rpm -qpl /mnt/Packages/php-mysql-5.4.16-46.el7.x86_64.rpm # 查看一件软件包所包含的文件
(5)、rpm 包卸载
rpm -e zsh
9、YUM 的使用
(1)、yum 概述
yum(全称为 Yellow dog Updater, Modified)是一个前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。
注:yum 解决依赖关系问题,自动下载软件包,它是基于C/S架构 (C=client S=ftp\http\file)
(2)、配置本地 yum 源
首先挂载镜像 查看挂载
配置 yum 源文件
vim /etc/yum.repo.d/CentOS7.repo
[CentOS7] # yum源名称,在本服务器上唯一的,用来区分不同的yum源
name=CentOS-server # 对yum源描述信息
baseurl=file:///mnt # yum源的路径,提供方式包括FTP(ftp://...)、HTTP(http://...)、本地 (file:///...光盘挂载目录所在的位置)
enabled=1 # 为1,表示启用yum源;0为禁用
gpgcheck=0 # 为1,使用公钥检验rpm包的正确性;0为不校验
(3)、配置网络 yum 源
下载一个 yum 源
wget -O /etc/yum.repo.d/CentOS7.repo http://mirrors.aliyun.com/repo/Centos-7.repo
注:-O:将wget下载的包保存到指定的位置,保存时可以重新起一个名字,或者直接写一个要保存的路径,这样还用原来的文件名。
可以查看一下这么文件的内容
vim /etc/yum.repo.d/CentOS7.repo
- $releasever 值等于系统的版本
- $basearch 等于:x86_64
排错: 如果下载Centos-7.repo后,不能用
解决:打开阿里云链接:http://mirrors.aliyun.com/centos/找到centos7最新版本号
然后执行:sed 进行全文替换
sed -i 's/$releasever/7.6.1908/g' /etc/yum.repos.d/CentOS7.repo
yum clean all # 清空一下 yum 缓存
yum list # 查看列表
(4)、yum 使用
yum 常用操作
yum install -y httpd # 安装软件包,-y 直接安装
yum update kernel # 升级内核
yum -y update # 升级软件包,改变软件设置和系统设置,系统版本内核都升级
yum -y upgrade # 升级软件包,不改变软件设置和系统设置,系统版本升级,内核不改变
yum -y update # 不加任何包,表示整个系统进行升级
yum provides /usr/bin/find # 查看命令是哪个软件包安装的
yum -y remove 包名 # 卸载包
yum search keyword # 按关键字搜索软件包
yum 报错
- 确定光盘是否链接,光盘是否挂载。
- 配置文件中格式是否正确,字母,符号有没有少写,挂载点和配置文件中设置的是否一致。
- 网络源需要联网,操作和RPM类似,只是会自动安装依赖项。
(5)、yum 安装开发工具软件包组
查看有哪些软件包组
yum grouplist
注:此时为英文,可以更改为中文, 查看更换语言
10、更换语言
查看当前语言
echo $LANG # 当前语言为英文
更换语言
LANG=zh_CN.UTF-8 # 更改语言为中文
11、设置打开终端的快捷键
(1)、打开 Applications, 选择 System Tools
(2)、选择 Setting 进入如下界面,选择 Devices
(3)、选择 Keyboard
(4)、右边滑到最下面会有一个 + 号,点击 +
Name: Open a Terminal
Command: /usr/bin/gnome-terminal
(其中Name是自己起的一个名字,可以随便,Command是Terminal程序的路径,不能随便写)
然后点击 Add
(5)、然后最下面会看到自己定义的快捷键,默认为 Disabled
(6)、点击 'Disabled’
(7)、再点击 Set Shortcut,输入你想要的快捷键,我输入的是 Ctrl+Alt+T