关机&重启命令
shutdown –h now :表示立即关机
shutdown –h 1 :表示一分钟后关机
shutdown –r now :立即重启
halt :直接使用,等价于关机
reboot :重启系统
sync :把内存中的数据同步到磁盘上,关机前执行一下,防止数据丢失
用户相关
Linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。
添加用户:
useradd 用户名
当创建用户成功后,会自动的创建和用户同名的家目录
也可以通过 useradd -d 指定目录 新的用户名,给新创建的用户指定家目录
指定/修改密码:
passwd 用户名
删除用户:
(删除用户时建议保留家目录)
userdel 用户名
查询用户信息:
(当用户不存在时,返回无此用户)
id 用户名
样例:
注销用户:
logout
logout注销指令在图形运行级别无效
在运行级别3一下有效
切换用户:
登录时尽量少用root帐号登录,因为它是系统管理员,最大的权限,避免操作失误。可以利用普通用户登录,登录后再用
su - 用户名
命令来切换成系统管理员身份。 从权限高的用户切换到权限低的用户,不需要输入密码,反之需要。
su – 切换用户名
返回到原来用户:
exit
查看当前登录用户:
whoami
样例:
用户组
用户组类似于角色,系统可以对有共性的多个用户进行统一的管理。
新增组:
groupadd 组名
删除组:
groupdel 组名
增加用户时直接加上组:
useradd –g 用户组 用户名
修改用户的组:
usermod –g 用户组 用户名
案例:
组管理和权限管理
在linux中的每个用户必须属于一个组,不能独立于组外。在linux中每个文件有所有者、所在组、其它组的概念。
文件/目录 所有者:
一般为文件的创建者,谁创建了该文件,就自然的成为该文件的所有者。
查看文件的所有者:
创建一个组police(
groupadd police
),再创建一个用户tom(
useradd -g police tom
),将tom放入police组,登录用户tom并创建一个文件。
ls –ahl
样例:
修改文件所有者:
chown 用户名 文件名
样例:
文件/目录 所在组:
当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组。
修改文件所在的组:
chgrp 组名 文件名
chgrp -R 组名 目录名 (递归修改目录下所有文件组名)
案例:
其它组:
除文件的所有者和所在组的用户外,系统的其它用户都是文件的其它组。
改变用户所在组:
在添加用户时,可以指定将该用户添加到哪个组中,同样的用root的管理权限可以改变某个用户所在的组。
usermod –g 组名 用户名
usermod –d 目录名 用户名 改变该用户登陆的初始目录。
样例:
用户和组的相关文件:
/etc/passwd 文件:用户(user)的配置文件,记录用户的各种信息
每行的含义:
用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell
/etc/shadow 文件:口令的配置文件
每行的含义:
登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
/etc/group 文件:组(group)的配置文件,记录Linux包含的组的信息
每行含义:
组名:口令:组标识号:组内用户列表
指定运行级别
六个运行级别:
-
0 :关机
-
1 :单用户【找回丢失密码】
-
2:多用户状态没有网络服务
-
3:多用户状态有网络服务
-
4:系统未使用保留给用户
-
5:图形界面
-
6:系统重启
vi和vim编译器:
https://blog.csdn.net/Lzy410992/article/details/113789294
修改默认的运行级别可改文件:
/etc/inittab的id:5:initdefault
这一行中的数字
命令:
init [012356]
帮助指令
当我们对某个指令不熟悉时,我们可以使用linux提供的帮助指令来了解这个指令的使用方法
man 获得帮助信息:
man [命令或配置文件](功能描述:获得帮助信息)
help指令:
help 命令 (功能描述:获得shell内置命令的帮助信息)
文件目录类
pwd 指令:
pwd (功能描述:显示当前工作目录的绝对路径)
ls指令:
ls [选项] [目录或是文件]
-a :显示当前目录所有的文件和目录,包括隐藏的
-l :以列表的方式显示信息
cd 指令:
cd [参数] (功能描述:切换到指定目录)
绝对路径和相对路径:
cd ~ 或者cd :回到自己的家目录
cd .. 回到当前目录的上一级目录
案例:
mkdir指令:
mkdir指令用于创建目录
mkdir [选项] 要创建的目录
-p :创建多级目录
rmdir指令:
rmdir指令删除空目录
rmdir [选项] 要删除的空目录
rmdir 删除的是空目录,如果目录下有内容时无法删除的。如果需要删除非空目录,需要使用
rm -rf 要删除的目录
样例:
touch指令:
touch指令创建空文件
touch 文件名称
touch 文件名称1 文件名称2
cp指令:
cp 指令拷贝文件到指定目录
cp [选项] source dest
-r :递归复制整个文件夹
强制覆盖不提示的方法:\cp
rm指令:
rm 指令移除文件或目录
rm [选项] 要删除的文件或目录
-rf :递归删除整个文件夹
-f : 强制删除不提示
mv指令:
mv 移动文件与目录或重命名
mv oldNameFile newNameFile (功能描述:重命名)
mv /temp/movefile /targetFolder (功能描述:移动文件)
样例:
cat指令:
cat 查看文件内容,cat 只能浏览文件,而不能修改文件,为了浏览方便,一般会带上管道命令 | more
cat [选项] 要查看的文件
-n :显示行号
样例:
more指令:
more指令是一个基于VI编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。
more 要查看的文件
more指令中内置了若干快捷键:
less指令:
less指令用来分屏查看文件内容,它的功能与more指令类似,但是比more指令更加强大,支持各种显示终端。less指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率。
less 要查看的文件
echo指令:
echo输出内容到控制台
echo [选项] [输出内容]
head指令
head用于显示文件的开头部分内容,默认情况下head指令显示文件的前10行内容
head 文件
head -n 5 文件 (功能描述:查看文件头5行内容,5可以是任意行数)
tail指令:
tail用于输出文件中尾部的内容,默认情况下tail指令显示文件的前10行内容。
tail 文件
tail -n 5 文件 (功能描述:查看文件头5行内容,5可以是任意行数)
tail -f 文件 (功能描述:实时追踪该文档的所有更新)
案例1:
案例2: 实时监控 mydate.txt , 看看到文件有变化时,是否看到, 实时的追加日期
> 指令 和 >> 指令:
> 输出重定向:将原来的文件内容覆盖
>> 追加:不会覆盖原来的文件内容
ln 指令:
软链接也成为符号链接,类似于windows里的快捷方式,主要存放了链接其他文件的路径
ln -s [原文件或目录] [软链接名] (功能描述:给原文件创建一个软链接)
样例:
细节说明:当我们使用pwd指令查看目录时,仍然看到的是软链接所在目录。
history指令:
查看已经执行过历史命令,也可以执行历史指令
history (功能描述:查看已经执行过历史命令)
时间日期类
date指令-显示当前日期:
date (功能描述:显示当前时间)
date +%Y(功能描述:显示当前年份)
date +%m(功能描述:显示当前月份)
date +%d(功能描述:显示当前是哪一天)
date "+%Y-%m-%d %H:%M:%S"(功能描述:显示年月日时分秒)
date指令-设置日期:
date -s 字符串时间
cal指令:
查看日历指令
cal [选项] (功能描述:不加选项,显示本月日历)
案例:
搜索查找类
find指令:
find指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件或者目录显示在终
端。
find [搜索范围] [选项]
locate指令:
locaate指令可以快速定位文件路径。locate指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件。Locate指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新locate时刻。
locate 搜索文件
由于locate指令基于数据库进行查询,所以第一次运行前,必须使用updatedb指令创建locate数据库。
grep指令和 管道符号 | :
grep 过滤查找 , 管道符,“|”,表示将前一个命令的处理结果输出传递给后面的命令处理。
grep [选项] 查找内容 源文件
案例:
压缩和解压类
gzip/gunzip 指令:
gzip 用于压缩文件, gunzip 用于解压的
gzip 文件 (功能描述:压缩文件,只能将文件压缩为*.gz文件)
gunzip 文件.gz (功能描述:解压缩文件命令)
zip/unzip 指令:
zip 用于压缩文件, unzip 用于解压的,这个在项目打包发布中很有用的
zip [选项] XXX.zip 将要压缩的内容(功能描述:压缩文件和目录的命令)
unzip [选项] XXX.zip (功能描述:解压缩文件)
-r:递归压缩,即压缩目录
-d<目录> :指定解压后文件的存放目录
案例:
tar 指令:
tar 指令 是打包指令,最后打包后的文件是 .tar.gz 的文件。
tar [选项] XXX.tar.gz 打包的内容 (功能描述:打包目录,压缩后的文件格式.tar.gz)
案例:
权限管理
0-9位说明:
-
第0位确定文件类型(
d:目录、 - :普通文件 、l :链接文件、 c:字符设备 、 b:块文件
) - 第1-3位确定所有者(该文件的所有者)拥有该文件的权限。—所有者权限
- 第4-6位确定所属组(同用户组的)拥有该文件的权限,—所在组的用户权限
- 第7-9位确定其他用户拥有该文件的权限 —其他组用户权限
修改权限-chmod:
通过chmod指令,可以修改文件或者目录的权限。
第一种方式:+ 、-、= 变更权限,
u:所有者 g:所有组 o:其他人 a:所有人(u、g、o的总和)
第二种方式:通过数字变更权限:用数字表示rwx:
r=4,w=2,x=1,rwx=4+2+1=7
chmod u=rwx,g=rx,o=x 文件目录名
chmod o+w 文件目录名
chmod a-x 文件目录名
chmod u=rwx,g=rx,o=x 文件目录名
||
chmod 751 文件目录名
样例:
修改文件所有者-chown:
chown newowner file #改变文件的所有者
chown newowner:newgroup file #改变用户的所有者和所有组
-R #如果是目录 则使其下所有子文件或目录递归生效
案例:
定时任务调度
任务调度crand:系统在某个时间执行的特定的命令或程序
任务调度分类:
1.系统工作:有些重要的工作必须周而复始地执行。如病毒扫描等
2.个别用户工作:个别用户可能希望执行某些程序,比如对mysql数据库的备份。
crontab 进行定时任务的设置:
crontab [选项]
crontab –e:编辑定时任务。
crontab –r:终止任务调度。
crontab –l:列出当前有那些任务调度
service crond restart [重启任务调度]
样例:
定时调度我们的脚本或这代码,如果只是简单的任务可以不用写脚本,直接再crontab中加入任务即可。
样例:每小时的每分钟执行
ls –l /etc/ >> /tmp/to.txt
命令
5个占位符的说明:
特殊符号的说明:
案例:每隔1分钟,就将当前的日期信息,追加到 /tmp/mydate 文件中
实现文件的定时更新:
Linux磁盘分区与挂载
查看所有设备挂载情况:
lsblk
lsblk -f
案例:
磁盘情况查询:
df -h (查询系统整体磁盘使用情况)
du -h /目录 (查询指定目录的磁盘占用情况,默认为当前目录)
-s 指定目录占用大小汇总
-h 带计量单位
-a 含文件
--max-depth=1 子目录深度
-c 列出明细的同时,增加汇总值
样例:
磁盘情况-工作实用指令
1.
统计/home文件夹下文件的个数
2.
统计/home文件夹下目录的个数
3.
统计/home文件夹下文件的个数,包括子文件夹里的
4.
以树状显示目录结构
网络配置
Linux网络配置原理图
查看网络IP和网关:
查看虚拟网络编辑器
查看ip地址、网关
查看windows环境的中VMnet8网络配置 (ipconfig指令)
ping 测试主机之间网络连通性
ping 目的主机 (功能描述:测试当前服务器是否可以连接目的主机)
应用实例
测试当前服务器是否可以连接百度
linux网络环境配置
第一种方法(自动获取):
说明:登陆后,通过界面的来设置自动获取ip
特点:linux启动后会自动获取IP,缺点是每次自动获取的ip地址可能不一样。
第二种方法(指定固定的ip)
直接修改配置文件来指定IP,并可以连接到外网(程序员推荐),编辑
vi /etc/sysconfig/network-scripts/ifcfg-eth0
要求:将ip地址配置的静态的, IP的配置方法[none|static|bootp|dhcp](引导时不使用协议|静态分配IP|BOOTP协议|DHCP协议),ip地址为192.168.42.131。
重启网络服务或者重启系统生效:service network restart 、reboot
进程管理
显示系统执行的进程:
ps命令是用来查看目前系统中,有哪些正在执行,以及它们执行的状况。可以不加任何参数.
ps –aux|grep xxx ,比如我看看有没有sshd服务
案例:
ps -ef
是以全格式显示当前所有的进程,-e 显示所有进程。-f 全格式。
ps -ef|grep xxx
案例:
终止进程kill和killall:
若是某个进程执行一半需要停止时,或是已消了很大的系统资源时,此时可以考虑停止该进程。使用kill命令来完成此项任务。
kill [选项] 进程号 (通过进程号杀死进程)
killall 进程名称 (通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用)
-9 :表示强迫进程立即停止
案例1:踢掉某个非法登录用户
案例2: 终止远程登录服务sshd, 在适当时候再次重启sshd服务
案例3: 终止多个gedit 编辑器
killall gedit
案例4:强制杀掉一个终端
查看进程树pstree
pstree [选项] ,可以更加直观的来看进程信息
-p :显示进程的PID
-u :显示进程的所属用户
案例:树状的形式显示进程的pid
服务(service)管理
服务(service) 本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其它程序的请求,比如(mysql , sshd 防火墙等),因此我们又称为守护进程,是Linux中非常重要的知识点。
service管理指令:在CentOS7.0后 不再使用service ,而是 systemctl
service 服务名 [start | stop | restart | reload | status]
使用案例:重启防火墙,查看当前防火墙的状况。
关闭防火墙:
关闭或者启用防火墙后,立即生效,
[telnet 测试 某个端口即可]
。 这种方式只是临时生效,当重启系统后,还是回归以前对服务的设置。 如果希望设置某个服务自启动或关闭永久生效,要使用chkconfig指令。
查看服务名:
方式1:使用
setup
-> 系统服务 就可以看到。
方式2: /etc/init.d/服务名称
服务的运行级别(runlevel):
查看或者修改默认级别:
vi /etc/inittab
开机的流程说明:
chkconfig指令:
通过chkconfig 命令可以给每个服务的各个运行级别设置自启动/关闭
chkconfig --list|grep xxx (查看服务)
chkconfig 服务名 --list
chkconfig --level 5 服务名 on/off
案例:
案例:将sshd 服务在运行级别5下设置为不自动启动
案例: 在所有运行级别下,关闭和开启防火墙,chkconfig重新设置服务后自启动或关闭,需要重启机器reboot才能生效.
动态监控进程:
top与ps命令很相似。它们都用来显示正在执行的进程。Top与ps最大的不同之处,在于top在执行一段时间可以更新正在运行的的进程。
top [选项]
选项说明:
交互操作说明:
案例1.监视特定用户
top:输入此命令,按回车键,查看执行的进程。
u:然后输入“u”回车,再输入用户名,即可
案例2:终止指定的进程。
top:输入此命令,按回车键,查看执行的进程。
k:然后输入“k”回车,再输入要结束的进程ID号
监控网络状态:
查看系统网络情况netstat
netstat [选项]
-an 按一定顺序排列输出
-p 显示哪个进程在调用
案例:
案例:请查看服务名为 sshd 的服务的信息。
检测主机连接命令ping:
是一种网络检测检测工具,它主要是用检测远程主机是否正常,或是两部主机间的介质是否为断、网线是否脱落或网卡故障。
ping 对方ip地址
RPM 与 YUM
rpm包的管理:
一种用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中。它生成具有.RPM扩展名的文件。RPM是RedHat Package Manager(RedHat软件包管理工具)的缩写,类似windows的setup.exe,这一文件格式名称虽然打上了RedHat的标志,但理念是通用的。
Linux的分发版本都有采用(suse,redhat, centos 等等),可以算是公认的行业标准了。
rpm包的简单查询指令:
rpm –qa|grep xx
案例:查询系统中是否安装火狐,X86_64表示64位系统,i686、i386表示32位系统,noarch表示通用。
rpm包的其它查询指令:
rpm -qa :查询所安装的所有rpm软件包
rpm -qa | more
rpm -qa | grep X [rpm -qa | grep firefox ]
rpm -q 软件包名 :查询软件包是否安装
rpm -q firefox
rpm -qi 软件包名 :查询软件包信息
rpm -qi file
rpm -ql 软件包名 :查询软件包中的文件
rpm -ql firefox
rpm -qf 文件全路径名 查询文件所属的软件包
rpm -qf /etc/passwd
rpm -qf /root/install.log
rpm包的管理:
卸载rpm包:
rpm -e RPM包的名称
rpm -e --nodeps RPM包的名称 (强制删除)
如果其它软件包依赖于您要卸载的软件包,卸载时则会产生错误信息。如:
$ rpm -e foo removing these packages would break dependencies:foo is needed by bar-1.0-1
, 如果我们就是要删除 foo这个rpm 包,可以增加参数 –nodeps ,就可以强制删除,但是一般不推荐这样做,因为依赖于该软件包的程序可能无法运行,如:
$ rpm -e --nodeps foo
安装rpm包:
rpm -ivh RPM包全路径名称
-i=install 安装
-v=verbose 提示
-h=hash 进度条
案例:安装firefox浏览器
yum
Yum 是一个Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包。
yum的基本指令:
查询yum服务器是否有需要安装的软件
yum list|grep xx软件列表
安装指定的yum包
yum install xxx 下载安装
案例:请使用yum的方式来安装firefox