02.Linux必会指令
[toc]
-=-=Liunx基础
1. vi和vim的三种模式
2. vi和vim的操作
- 正常模式下
yy
复制(xyy:x可以为数字) - 正常模式下
p
粘贴 - 正常模式下
dd
删除 (xdd:x可以为数字) - 命令行模式下
/
要查找的内容 - 命令行模式下
:set nu/nonu
设置/取消行号 - 正常模式下
u
撤销 - 正常模式下
gg
最首行G
最末行 - 编辑模式下如果
esc
失效,使用Ctrl + C
- 正常模式下
xx shift g
跳转指定行 - 注意退出时的
:
是英文输入法下的 - //source /etc/profile 修改过配置文件后刷新资源
- vi和vim区别
3. 关机和重启
shutdown -h now
立即关机shutdown -h 1
一分钟后关机shutdown -r now
立即重启halt
关机reboot
重启syn
将内存中的数据同步到磁盘(关机重启之前使用)logout
注销用户
4. 用户管理
- 添加用户指令
useradd 用户名
- 创建指定自录的用户
useradd -d /home/dd xd
(useradd -d 自录用户名) - 给用户设置/修改密码
passwd
用户名输入两次密码 - 删除用户(保留家目录–推荐使用)
usede1用户名
- 删除用户以及家目录
userde1 -r 用户名
- 查看用户
id 用户名
- 切换用户命令
su -用户名
--使用su切换用户,只是用户发生变化,当前的操作环境还是在之前的用户下; --使用su -切换用户,不仅用户变化,且操作环境也变成新用户的环境
- 返回到原来的用户
exit
5. 组管理
- 添加组
groupadd 组名
- 新建用户指定组
useradd -g 组名 用户名
- 修改用户的组
usermod -g 新组名 用户名
6. 三种配置文件
/etc/passwd文件
用户(user)的配置文件,记录用户的各种信息
每行的含义:
用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录 Shell
/etc/shadow文件
口令的配置文件
每行的含义:
登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
/etc/group文件
组(group)的配置文件,记录 Linux 包含的组的信息
每行含义:
组名:口令:组标识号:组内用户列表
- ==
cat /etc/redhat-release
== 查看当前liunx版本 -
cat /proc/version
查看当前linux版本
7. 指定运行级别
0:关机
1:单用户【找回丢失密码】
2:多用户状态没有网络服务
3:多用户状态有网络服务
4:系统未使用保留给用户
5:图形界面
6:系统重启
常用运行级别是 3 和 5 ,要修改默认的运行级别可改文件/etc/inittab 的 id:5:initdefault:这一行中的数字CentOs6是通过init 数字来设置的,而CentOs7则比较复杂
通过systemctl get-default
来获取当前运行级别,详情搜索博客!
8. 面试题
如何找回 root 密码(CentOs6),如果我们不小心,忘记 root 密码,怎么找回?
思路:进入到 单用户模式,然后修改 root 密码。因为进入单用户模式,root 不需要密码就可以登录。
总结:
开机->在引导时输入 回车键-> 看到一个界面输入 e -> 看到一个新的界面,选中第二行(编辑内核)在输入 e-> 在这行最后输入 1 ,再输入 回车键->再次输入 b ,这时就会进入到单用户模式。这时,我们就进入到单用户模式,使用 passwd 指令来修改 root 密码。
9. 帮助命令
- man
`man ls`
- help
`help 命令`
10. 文件目录类指令
显示当前工作目录的绝对路径
pwd
ls
-a -l == ll
-h
cd
切换目录mkdir
创建目录mkdir -p
创建多级目录rmdir
只能删除空目录`rm -rf 递归删除` -r 递归删除 -f 强制删除不提示
touch 文件名称
创建文件复制命令 cp
原来的文件包括目录 要复制到的目录-r 递归复制整个文件夹
mv
移动和改名指令
11. 查看文件指令
cat
只能读-n 显示行号 通常使用 cat 文件名 | more
more
基于VI编辑器的文本过滤器,全屏按页显示q退出查看
less
并不是一次将整个文件加载后显示,可以通过PgUp,PgDn控制
12. 输出重定向>和追加>>
13. echo指令
echo $PATH
输出环境变量到控制台echo "字符串"
14. head指令
head a.txt
用于显示文件的开头部分head -n 8 a.txt
15. tail 指令
tail -n 20 /etc/profile
默认输出文件后十行内容- ==tail -f 文件名 实时查看文件==
16. ln指令–软连接
ln -s /root/soft/tomcat/bin/startup.sh tomcatStarter
删除: rm -rf tomcatStarter
tomcatStarter后面不能加/
17. history指令
- history 查看所有的历史指令
- history 10 查看最近使用过的10个指令
- !1021 执行编号为1021的指令
18. 时间日期类指令
date
显示时间- date +%Y 显示年
- date +%M 显示分
Y m d H M S
年 月 日 时 分 秒date "+%Y %m %d %H:%M:%S"
- 设置日期
date -s "字符串时间"
- 查看日历
`cal` 查看是当前月 `cal 2020` 查看的是今年的
19. 搜索查找类指令
19.1 find指令
find /xxx -yyy zzz
搜索的范围 -name -user -size +20M大于20M -20M小于20M的文件
find / -name filename.txt
根据名称查找/目录下的filename.txt文件。
locate为什么用不了???
19.2 grep指令–过滤查找
|
管道 将前一个命令的处理结果输出传递给后面的命令处理。grep lang anaconda-ks.cfg –color
在anaconda-ks.cfg 文件中查找 lang 并高亮显示
20. 压缩和解压类
gzip 文件
—> 文件.gz 压缩后不会保留原来的文件
gunzip 文件.gz
—>zip -r myZip.zip /home/
unzip -d /root/file/ myZip.zip
-r:递归压缩
-d: 指定压缩后的文件的存放目录
tar
指令压缩 `tar -zcvf myZip.tar.gz /root/file` 解压 `tar -zxvf myZip.tar.gz` `tar -zxvf myZip.tar.gz -C /root/file/txt/`
如果不带.gz意思是不压缩
打包时不压缩
tar -xvf ...
文件名.tar
tar -cvf ...
21. 组管理和权限管理
21.1 三个重要概念
- 所有着
- 所在组
- 其它组
21.2 新建用户useradd
useradd -g police tom
-g
- police 组名
- tom 角色名
passwd tom
给角色设置密码
21.3 新建组groupadd
groupadd police
id fox
查看角色的信息
21.4 修改文件所在组chgrp
chgrp 组名 文件名
- 通过root用户创建orange.txt文件
- chgrp police orange.txt 把orange.txt修改成police组
21.5 改变用户所在组usermod
usermod -g 组名 用户名
usermod -d 目录名 用户名 改变该用户登录的初始目录
22. 权限的基本介绍
-
普通文件
d 目录
22.1 rwx权限详解
一、修改权限的两种方式chmod
one:
chmod u=rwx,g=rwx,o=rwq 文件目录名
||
chmod a=rwx 文件目录名
chmod o-x 文件目录名
two:
chmod 777 文件目录名
常用
二、修改文件所有者chown
chown newowner file
||
newowner:newgroup
三、修改文件所在组chown/chgrp
chgrp newgroup file
chown :newgroup file
23. 任务调度crond
任务调度:是指系统在某个时间执行的特定的命令或程序。
crontab
-e 编辑crontab定时任务(可以配合着shell脚本来使用)
-l 查询crontab任务
-r 删除当前用户的所有的crontab任务
- 任务调度文件
vim /etc/crontab
- 设置定时任务
crontab -e
- 重启任务调度
service crond restart
24. Linux 磁盘分区、挂载
1EB=1024 PB,1PB=1024 TB
Linux 来说无论有几个分区,分给哪一目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构 , Linux 中每个分区都是用来组成整个文件系统的一部分。
Linux 采用了一种叫
“载入”
的处理方法,它的整个文件系统中包含了一整套的文件和目录, 且将一个分区和一个目录联系起来。这时要载入的一个分区将使它的存储空间在一个目录下获得。
-
lsblk -f
查看系统的分区和挂载情况 (老师不离开) mount 设备名称 挂载目录
取消挂载使用umountdf -lh
查询系统整体磁盘使用情况du -h /目录
查询指定目录的磁盘占用情况,默认为当前目录- -s 指定目录占用大小汇总
- -h 带计量单位
- -a 含文件
- –max-depth=xx 子目录深度
- -c 列出明细的同时,增加汇总值
一、磁盘情况-工作实用指令
1) 统计/root 文件夹下文件的个数
ls -l /root | grep "^-" | wc -l
2) 统计/root 文件夹下目录的个数
ls -l /root | grep "^d" | wc -l
3)统计/home 文件夹下文件的个数,包括子文件夹里的
ls -lR /root | grep "^-" | wc -l
4)统计文件夹下目录的个数,包括子文件夹里的
ls -lR /root | grep "^d" | wc -l
5)以树状显示目录结构
yum install tree
tree
25. 网络配置 ifconfig
ipconfig–>DOS
ifconfig–>Linux 显示网络设备
ping 目的主机
测试主机之间网络连通ifconfig eth0 up
启用 eth0 网卡ifconfig eth0 down
停用 eth0 网卡netstat
查看网络端口netstat -an | grep 3306
查询 3306 端口占用情况
26. 进程管理ps
ps -aux | more
- -a 显示当前终端的所有的进程信息
- -u 以用户的格式显示进程信息
- -x 显示后台进程运行的参数
ps -ef
以全格式显示当前所有的进程
Linux下显示系统进程的命令ps,最常用的有ps -ef 和ps aux。这两个到底有什么区别呢?
两者没太大差别,讨论这个问题,要追溯到Unix系统中的两种风格,System V风格和BSD 风格,ps aux最初用到Unix Style中,而ps -ef被用在System V Style中,两者输出略有不同。现在的大部分Linux系统都是可以同时使用这两种方式的。
一、终止进程kill
kill 进程号
kill -9 进程号
强制杀死进程
二、查看进程树 pstree
pstree -p
树状的形式显示进程的 pid
pstree -u
树状的形式进程的用户
三、服务管理
服务(service) 本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其它程序的请求,比如(mysql , sshd 防火墙等),因此我们又称为守护进程,是 Linux 中非常重要的知识点。
service 服务名 [start | stop | restart | reload | status]
在 CentOS7.0 后 不再使用 service ,而是 systemctl
systemctl命令
是系统服务管理器指令,它实际上将service和chkconfig这两个命令组合到一起。
systemctl [start | stop | restart | reload | status] 服务名
systemctl list-units --type=service
显示所有已启动的服务systemctl enable 服务名
设置开机自启动
四、彻底关闭防火墙
sudo systemctl status
firewalld.service
sudo systemctl stop
firewalld.service
sudo systemctl disable
firewalld.service(之前的是iptables)
五、动态监控进程
top 与 ps 命令很相似。它们都用来显示正在执行的进程。top 与 ps 最大的不同之处,在于 top 在执行一段时间可以更新正在运行的的进程。
top
-d 秒数 指定top每隔几秒更新 默认是三秒
-i 不显示闲置或者僵死进程
-p 指定监控进程的ID仅仅监控某个进程的状态
a. 监视待定用户
top:输入此命令,按回车键,查看执行的进程。
u:然后输入“u”回车,再输入用户名,即可
b. 终止指定的进程
top:输入此命令,按回车键,查看执行的进程。
k:然后输入“k”回车,再输入要结束的进程 ID 号
六、查看系统网络情况 netstat
netstat -anp
-an 按一定顺序排列输出
-p 显示哪个进程在调用
配合着| grep
使用。
27. RPM和 YUM
27.1 RPM
RPM 是 RedHat Package Manager(RedHat 软件包管理工具)的缩写,类似 windows 的 setup.exe,这一文件格式名称虽然打上了 RedHat 的标志,但理念是通用的。Linux 的分发版本都有采用(suse,redhat, centos 等等),可以算是公认的行业标准了。
rpm -qa
查询已安装的 rpm 列表rpm -qa | grep tomcat
rpm -qi 软件包名
查询软件包信息rpm -ql 软件包名
查询软件包中的文件rpm -qf 文件全路径名
查询文件所属的软件包rpm -e rpm包的名称
卸载 rpm 包- 如果其它软件包依赖于您要卸载的软件包,卸载时则会产生错误信息
- 需要使用
rpm -e --nodeps rpm包的名称
rpm -ivh rpm包全路径名称
==安装 rpm 包==i=install 安 装
v=verbose 提 示
h=hash 进度条
一个 rpm 包名:
firefox-45.0.1-1.el6.centos.x86_64.rpm
名称:firefox
版本号:45.0.1-1
适用操作系统: el6.centos.x86_64
表示 centos6.x 的 64 位系统
如果是 i686、i386 表示 32 位系统,noarch 表示通用。
27.2 YUM
Yum 是一个 Shell 前端软件包管理器。基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包。使用 yum 的前提是可以联网。
yum install xxx
下载安装yum list
yum list | grep xx
wget 地址
下载
28. 系统管理命令
free
显示内存状态free –m
以 mb 单位显示内存组昂头du
显示目录或文件的大小。du –h
显示当前目录的大小who
显示目前登入系统的用户信息。hostname
查看当前主机名 ( 修改:vi /etc/sysconfig/network )uname
显示系统信息。uname -a
显示本机详细信息。依次为:内核名称(类别),主机名,内核版本号,内核版本,
内核编译日期,硬件名,处理器类型,硬件平台类型,
操作系统名称
☆