目录
Vim编辑器
在编辑器中输入法的切换是win+空格
vi/vim被称为编辑器之神。vim_文件名直接打开文件
编辑器打开某个文件,后面文件名可以使用tab补全
一般模式:
b移动到上一个词
pw可以粘贴一个词
L和G效果一样,都是跳转到页尾;数字加G就是直接跳转到某行
H移动到开头
3p表示将文本复制了三次
8yy表示的是复制了八行
撤销操作:u
y+$表示该处到行尾
保存操作需要进入命令模式下进行
编辑模式:
命令模式
在一般模式上加上:set nu,可以显示行号;:set nonu可以关闭行号
:s/想要被替换的词/所要替换掉词
普通用户和root用户的切换:
网络配置
Linux系统中,在终端输入命令ifconfig可以获取ip地址;在window中,是命令ipconfig可以获取ip地址。
VMware提供了三种网络连接模式:
- 桥接模式:虚拟机直接连接外部物理网络的模式,主机起到了网桥的作用;这种模式下,虚拟机可以直接访问外部网络,并且对外部网络是可见的。
- NAT模式:虚拟机和主机构建一个专用网络,并通过虚拟网络地址转换设备对IP进行转换。虚拟机通过共享主机IP可以访问外部网络。但外部网络无法访问虚拟机
- 仅主机模式:虚拟机与主机共享一个专用网络,与外部网络无法通信
在终端下自定义IP地址:
- 用文本编辑器进入 etc目录下的sysconfig(不要忘记etc前面的/,否则tab键不起作用)
2.将第四行的dhcp(动态分配IP地址)修改为static。
3.在末尾加上ip地址、网关、域名解析器
4.然后保存,service network restart(重启一下网络)
修改主机名的命令:
hostname/hostnamectl:可以查看当前的主机名
hostnamectl-set-hostname 主机名:可以修改主机名
vim /etc/hosts:可以存储一些对应的IP地址和主机名
在etc目录下的hosts文件下加入IP地址和主机名的映射关系,可以直接ping 主机名
远程登陆
远程登陆:ssh root@主机名或者IP地址
远程登陆APP:xshell
远程传输文件APP:xftp
Service服务管理
usr/sbin文件下有很多命令
基本语法:systemctl start|stop|restart|status 服务名
查看服务的方法:/usr/lib/systemd/system
管理开机自启动的命令:setup
CentOS7运行级别为:
- multi-user.target :多用户有网,无图形界面
- graphical.target:多用户有网,有图形界面
查看当前的运行级别:systemctl get-default
修改运行级别:set-default
配置开机自启动服务:systemctl list-unit-files
查看防火墙状态:systemctl status firewalld
关机命令:shutdown(默认是在一分钟之后关机)
shutdown -c 取消关机操作
shutdown now 立马关机
shutdown 3 在3分钟之后关机
shutdown 具体时间点 可以设置定时关机操作
shutdown -r now 立即重启
shell命令
几乎所有的命令都在bin和sbin目录下
Shell可以看作是一个命令解释器,为我们提供了交互式的文本控制台桌面。我们直接在终端输入命令,由shell进行解释并最终交给内核执行;一部分基础功能的系统命令是直接内嵌在shell中的,系统加载启动之后会随着shell一起加载,常驻系统内存中。这部分命令被称为“内置命令”;相应的其他命令被称为“外部命令”
help 命令:获得shell内置命令的帮助信息
命令 --help:可以获得命令的帮助信息
man [命令或配置文件] :可以获得帮助信息
man -f [命令]:可以获得内置命令的帮助信息
type 命令:可以判断命令的类型(是内部命令还是外部命令)
history:可以查看所有的历史命令
文件目录类命令
pwd:显示当前工作目录的绝对路径
ls:列出该目录下所有内容
ls -a:列出该目录下所有内容,包括隐藏文件(在Linux中,隐藏的文件都是以.开头)
ls -l:列出该目录下所有内容包括其属性信息等等
..表示返回到上一级目录
.表示的是当前目录
cd:直接返回用户主文件夹
cd -:返回上条命令所在位置
cd ~:表示进入当前用户的主目录
cd /:进入根目录
mkdir 文件夹名:创建一个文件夹(可以同时创建多个)
mkdir -p:同时创建多层目录
rmdir:删除目录(下面不能含有非空目录或者文件)
touch 文件名:创建空文件
cp命令:复制文件或者目录
rm命令:删除文件或者目录
删库根目录下所有内容:rm -rf /*(千万不要轻易尝试)
mv命令:移动文件与目录或重命名
cat 文件:查看文件内容
more 文件内容分屏查看器
语法:more 文件(查看文件内容)
more指令是一个基于VI编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容
less 分屏显示文件内容
less指令用来分屏查看文件内容,功能与more指令相似,但是比more强大;less指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高效率。
语法:less 文件
G:可以直接到文本结尾
g:可以知道文本开头
q:直接退出
echo:输出内容到控制台
如果你想要内容中想要支持转义字符,可以加-e选项
输出重定向:
> 文件名:覆盖原文件内容
>>文件名:追加原文件内容
eg: echo "国庆快乐" > a 该指令会在a文件输入国庆快乐
echo $xx:可以查看当前的系统环境变量
eg:echo $PATH 查看当前路径
head 显示文件头部内容(默认是前10行)
语法:
head 文件:查看文件前10行内容
head -n5 文件:查看文件头5行内容(可以自定义行数)
tail 输出文件尾部内容(默认是文件的后10行内容)
基本语法:
tail 文件:查看文件尾部10行内容
tail -n 5 文件:查看文件尾部5行内容(自定义行数)
tail -f 文件:实时追踪该文档的所有更新(监视文件的变化)
ctrl+s:暂时停止监控 ctrl+q:继续监控(会把停止监控的那段变化输出) ctrl+c:退出
ln 软链接
软链接也称为符号链接,类似于windows里的快捷方式,有自己的数据块,主要存放了链接其他文件的路径
基本语法:
ln -s[原文件或目录][软链接名]:给原文件创建一个软链接
注意:删除软链接的时候,是rm -rf软链接名,而不是rm -rf软链接名/(这样会把软链接对应的真实目录下内容删掉)
history命令:查看所有的历史命令
history -c:清空历史命令
history 10:查看最近的10条命令
时间日期类
date 显示当前时间
date 显示非当前时间
date 设置系统时间
cal 查看日历
cal -3:查看上个月、本月、下一个月日历
cal -m:可以把周一放到日历的第一列
用户管理命令:
useradd 添加新用户
基本语法:
passwd 设置用户密码
基本语法:passwd 用户名
查看用户某是否存在:id 用户名
cat/etc/passwd 可以查看创建了哪些用户,该目录下有很多伪用户
su 切换用户
用户切换后可以通过exit返沪上一个用户,这样操作不需要输入密码,直接返回上一个用户。如果想要知道当前的用户可以用命令whoami
sudo设置普通用户具有root权限:
普通用户输入某些命令时可能因为权限不够无法实现想要的结果,如果修改以上配置文件后(即开启了超级管理员权限)可以在命令前加上sudo,就可以解决权限不足的问题。
在Linux系统中,系统自带一个用户名root的用户,当我们以自己普通用户的身份登陆进来之后,可以使用sudo -i命令登陆到root用户,然后使用超级管理员权限设置一个root用户密码(passwd root);此后我们就可以使用该密码随意登陆root用户(即最高权限)。
删除用户:userdel 用户名(该种方式删除用户只会在系统中删除该用户,但是不会在主文件夹删除该用户文件夹)
userdel -r 用户名(该方式会把主文件夹下该用户文件夹一起删除)
用户组管理命令:
每一个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理,不同Linux系统对用户组的规定有所不同;linux下的用户属于与它同名的用户组,这个用户组在创建用户时创建。用户组的修改就是对/etc/group文件的更新。
groupadd 组名:新增一个用户组
groupdel 组名:删除用户组
groupmod -n 新组名 原组名:修改组名
id 用户名:若该用户存在,该命令会显示组名、用户名
usermod 修改用户
基本语法:
文件属性:
Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限;为了保护系统的安全性,Linux系统对不同用户访问同一文件(包括目录文件)的权限做了不同规定。在Linux中我们可以使用ll或者使用ls -l命令来显示一个文件的属性以及文件所属的用户和组。
rwx作用文件和目录的不同解释:
注意:一个目录(下面没有任何东西)就会有两个链接数,包括该当前目录和父目录
chmod 改变文件属主、属组权限
注意:
- 第二种方式简单高效,相当于是采用二进制的方式(1表示有该权限,0表示无权限,顺序是rwx,最后写为10进制数字即可)
- u:所有者 g:所有组 o:其他人 a:所有人(u、g、o的总和)
- 修改整个文件夹里面的所有文件的所有者、所属组、其他用户都具有可读可写可执行权限,可以加选项 -R。 eg:chmod -R 777 文件夹名称(777表示最高权限)
chown 改变所有者
假如创建某些文件的用户已被删除,我们就需要修改其所有者,将其改到现有用户的目录下。语法如下:
chgrp 改变所属组
搜索查找类:
find 查找文件或者目录:
find指令将从指定目录下递归地遍历其各个子目录,将满足条件的文件显示在终端。
locate 快速定位文件路径
locate指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件。locate指令无需遍历整个文件系统,查询速度较快,由于是基于数据库查询,所以第一次运行前要使用updatedb指令更新locate数据库。
查找命令在系统中的位置:
- which 命令
- whereis 命令
grep过滤查找及“|”管道符
管道符“|”表示将前一个命令的处理结果输出传递给后面的命令处理
压缩和解压缩类:
gzip/gunzip压缩:
注意:
- 只能压缩文件不能压缩目录
- 不保留原来文件
- 同时多个文件会产生多个压缩包
zip和unzip压缩:
注意:
- -r zip选项 可以压缩目录
- -d <目录> unzip选项:指定解压后文件的存放目录
- zip压缩命令在window/linux都通用,可以压缩目录且保留源文件
tar打包:
磁盘查看和分区类:
du(disk usage磁盘占用情况) 查看文件和目录占用的磁盘空间
df(disk free空余磁盘) 查看磁盘空间使用情况
free -h可以查看内存使用情况
lsblk 查看设备挂载情况
mount/umount 挂载/卸载
对于Linux用户来讲,不管有几个分区,分别分给哪一个目录使用,总归就是一个根目录,一个独立且唯一的文件结构;每个分区都是用来组成整个文件系统的一部分,它在用一种叫做“挂载”的处理方法,整个文件系统中包含了一整套的文件和目录,并将一个分区和一个目录联系起来,要载入的那个分区将使它的存储空间在这个目录下获得。
设置开机自动挂载是在 /etc/fstab目录下
fdisk分区(该命令必须在root用户下使用):
进程的查看与杀死
ps(process status) 查看当前系统进程状态
在计算机中,一个正在执行的程序或命令,叫做“进程:”;启动之后一直存在,常驻内存的进程一般称作“服务”
注意:如果想要查看进程的CPU占用率和内存占用率,可以使用aux;如果想查看进程的父进程ID可以使用ef
kill 终止进程
pstree 查看进程树
top 实时监控系统进程状态
网络状态和端口信息
netstat 显示网络状态和端口占用信息
crontab 系统定时任务
crontab命令在系统后台是有一个守护进程crond,使用该命令前我们先检查crond服务是否处于工作状态。(如果没有重启,我们可以systemctl restart crond )
编辑crontab时候,会打开vim编辑工作。*****执行的任务
案例:
软件包管理RPM:
RPM卸载命令:
RPM安装命令:
YUM仓库配置:
YUM是shell前端软件包管理器,基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
Shell编程
概述:shell是一个命令行解释器,它接收应用程序/用户命令,然后调用操作系统内核;是一个功能强大的编程语言,易变写、调试。
shell脚本是以#!/bin/bash 开头(指定一个解析器)
脚本的常用执行方式:
- 采用bash或sh +脚本的相对路径或绝对路径(不需要有可执行权限)
- 采用输入脚本的绝对路径或相对路径执行脚本(必须拥有可执行权限x)
- 在脚本的路径前加上"."或者source
前两种方式都是在当前shell中打开了子shell来执行脚本内容,当脚本内容结束 ,则子shell关闭,回到父shell中;而第三种是使用脚本在当前shell里执行,而无需打开子shell。
补充:
bin目录下存放的是二进制文件,相当于window中的.exe文件
wget 网址:可以加载文件
export PATH=$PATH:路径
ttree -dl 数字:显示目录的几层
de可以直接删除掉一个词