Linux系统详细教程
目录
- Linux的简介:
- Linux的基础:
- linux和unix的关系
- 6.Vi和Vim编辑器:
- 6.1 vi和vim的基本介绍:
- 6.2 vi和vim的常用的三种模式:
- 6.3 各种模式的相互切换:
- 6.4 vi/vim的快捷键
- 7. linux开机,重启,和用户登录
- 7.1关机命令:shutdown 重启:reboot
- 7.2 用户登录和注销
- 8. 用户管理
- 8.1 添加用户:useradd 用户名
- 8.2 删除用户:userdel 用户名
- 8.3 给指定的用户设置登录密码:passwd 用户名
- 8.4 修改用户信息: usermod(选项)(参数)
- 8.5 查询用户信息:id 用户名
- 8.6 切换用户:su - 要切换的用户名
- 8.7 查看当前用户/登录用户:whoami
- 8.8 用户组
- 9. Linux实用指令:
- 9.1 指定运行级别:输入指令init 3或者init 5,init 0关机
- 9.2 找回root密码
- 9.3 帮助指令:man / help 命令
- 9.4 文件目录类(重要)
- 10. 组管理和权限管理
- 10.1 基本介绍:
- 10.2 文件/目录 所有者:
- 10.3 组的创建: groupadd 组名
- 10.4 修改文件所在的组:chgrp 组名 文件名
- 10.5 更改用户所在的组:usermod -g 新组名 用户名
- 10.6 查看电脑中所有的组:cat /etc/group
- 11. 权限
- 11.1 权限的基本介绍
- 11.2 rwx权限详解(重点)
- 11.3 修改权限
- 11.4 修改文件所有者:
- 11.5 改变文件/目录所在组:
- 12 任务调度 crond
- 12.1 概述
- 12.2 任务调度语法: crontab [-e]
- 12.3 快速入门:
- 12.3 一次性的调度任务:at
- 13.Linux网络配置:
- 13.1Linux网络配置原理图:
- 13.2 查看网络ip和网关
- 13.3 ping:测试主机之间的网络连通性
- 13.4 Linux网络环境配置(重点)
- 13.5 设置主机名和hosts映射
- 13.6主机名解析过程分析:
- 13.7查看防火墙:
Linux的简介:
Linux的基础:
linux和unix的关系
VM的安装:
下载安装过程自己百度。
这里是引用
6.Vi和Vim编辑器:
6.1 vi和vim的基本介绍:
vi和vim:linux系统内置的一个文本编辑器
6.2 vi和vim的常用的三种模式:
我们常用:wq! 代表保存并强制退出。
:wq!
6.3 各种模式的相互切换:
6.4 vi/vim的快捷键
7. linux开机,重启,和用户登录
7.1关机命令:shutdown 重启:reboot
7.2 用户登录和注销
登录后切换用户:su - 用户名
注销:logout
8. 用户管理
8.1 添加用户:useradd 用户名
实例:
8.2 删除用户:userdel 用户名
8.3 给指定的用户设置登录密码:passwd 用户名
8.4 修改用户信息: usermod(选项)(参数)
usermod命令用于修改用户的基本信息。usermod命令不允许你改变正在线上的使用者帐号名称。
选项
-c<备注>: 修改用户帐号的备注文字;
-d<登入目录>:修改用户登入时的目录;
-e<有效期限>:修改帐号的有效期限;
-f<缓冲天数>: 修改在密码过期后多少天即关闭该帐号;
-g<群组>: 修改用户所属的群组;
-G<群组>; 修改用户所属的附加群组;
-l<帐号名称>: 修改用户帐号名称;
-L: 锁定用户密码,使密码无效;
-s: 修改用户登入后所使用的shell;
-u: 修改用户ID;
-U: 解除密码锁定。
参数
登录名:指定要修改信息的用户登录名。
实例
将newuser2添加到组staff中:
usermod -G staff newuser2
修改newuser的用户名为newuser1:
usermod -l newuser1 newuser
锁定账号newuser1:
usermod -L newuser1
解除对newuser1的锁定:
usermod -U newuser1
8.5 查询用户信息:id 用户名
8.6 切换用户:su - 要切换的用户名
如 su - tom
tom是一个普通用户,也是通过su - 来切换用户的。
8.7 查看当前用户/登录用户:whoami
8.8 用户组
(1)新增组(groupadd 组名)/删除组(groupdel 组名)
(2)增加用户的时候直接分组:useradd -g 用户组 用户名
增加用户的同时分配组:
useradd -g 组名 新用户名
useradd -g yunwei zhangsan
(3)修改用户的组:usermod -g 用户组 用户名
通过id 用户名查询用户信息:
(4)用户和组相关的文件
9. Linux实用指令:
9.1 指定运行级别:输入指令init 3或者init 5,init 0关机
指定默认的运行级别:
指令:
systemctl get-default:获取当前的运行级别
systemctl set-default multi-user.target:设置默认的运行级别,这里设置的是多用户没图形界面的。
systemctl set-default graphical.target:设置每次开机后的默认级别是图形界面
指令输入完后使用reboot指令重启虚拟机即可。
实例:在工作中使用没有图形界面的
9.2 找回root密码
参考:
https://zhuanlan.zhihu.com/p/102802164
1.启动系统,进入开机界面,在界面按e进入编辑模式:
2.进入编辑界面,实用键盘的上下方向键往下移动,找到Linux16开头内容所在的行数,在行的左后输入:
init=/bin/sh
3.添加完成,按Ctrl+x组合键启动shell引导,最后进入单用户模式
4.要挂载根分区为可读写模式,执行如下命令
mount -o remount,rw /
5.然后就可以执行passwd命令重置密码了。
passwd
6.创建autorelabel文件(否则最后一步可能无法重启。)
touch /.autorelabel
7.密码修改完后,需要重启
直接执行reboot命令已经无效,需要输入全路径命令
exec /sbin/init
或
exec /sbin/reboot
这样就完成了密码重置,正常登陆系统,查看密码是否修改成功。
(注意:我在输入exec /sbin/init命令后,虚拟机中centos一直没反应,等了差不多一两分钟后才有反应。)
9.3 帮助指令:man / help 命令
实例:
如:man ls
如:help cd
9.4 文件目录类(重要)
(1)ls和pwd指令:
pwd 指令:显示当前工作目录的绝对路径
ls [选项] [目录或文件]:
常用选项:
-a:显示所有的all,包含隐藏文件。
-l : 以列表信息详细显示
组合使用实例:
ls - al 或者 ls -alh (这种方式把文件大小按照兆或者G显现)
或者ll 也可以查看。
(2)cd指令:
cd ~ 跳到自己的 home 目录
cd …/… 跳到目前目录的上上两层
cd … 中间有空格,回到自己的上层目录。
(3)创建目录指令:mkdir 要创建的目录
创建目录指令:mkdir -p 要创建的目录(多级目录创建)
实例:
(4)删除目录:rmdir 目录名/mdir -rf 目录名
rmdir 目录名: 只能删除空目录(如果目录下还有目录或者文件,则不能删除)
rmdir -rf 目录名: 强制递归删除任何目录(r:递归,f:force强制)
(5)创建空的文件(区别于文件夹):touch 文件名称
(6)文件拷贝:cp 【-r】 源文件 目标目录
(7)文件或者文件夹的删除:rm 【-rf】 要移除的文件或者目录
(8)文件的重命名/移动(剪切)mv 旧文件名 新文件名 (同目录下为重命名):
mv 文件及其所在目录 新的目录:移动文件
移动并重命名:
(10)文件查看:cat 要查看的文件名
实例:配合more 使用
(11)文件查看:more
(12)文件查看:less
(13)输出内容到控制台:echo
(14)文件查看之tail:
tail -f 文件路径 :可用于服务器检测,时时抓包,监控网络的变化等。
(15)文件覆盖和追加:>
(16)软链接:ln
(17)历史指令:history
(18)时间日期:date
日历:
ls 查看文件大小:ls -lh
(19)查找文件find:
(20)文件查找:locate
(21)过滤查找grep:
(22)压缩 和解压文件:
10. 组管理和权限管理
10.1 基本介绍:
10.2 文件/目录 所有者:
查看文件的所有者:ls -alh
修改文件的所有者:chown 新的拥有者(即用户名) 文件名
10.3 组的创建: groupadd 组名
组的删除:groupdel 组名
10.4 修改文件所在的组:chgrp 组名 文件名
10.5 更改用户所在的组:usermod -g 新组名 用户名
10.6 查看电脑中所有的组:cat /etc/group
11. 权限
11.1 权限的基本介绍
0-9位为了方便记忆:我们叫1-3-3-3,
第0位确定文件类型。
第一个3位是User的权限,即文件所有者的操作权限
第二个3位是组group的权限,即同一个用户组的权限
第三个3位是其他组other的权限
11.2 rwx权限详解(重点)
特别注意目录的rwx:
目录的可读:表示可以查看目录的中的内容。
目录的可写:表示可以在目录内创建爱你+删除+重命名目录。(即增删改文件夹)
目录的可执行:表示可以进入该目录。
案例:
11.3 修改权限
11.4 修改文件所有者:
11.5 改变文件/目录所在组:
案例1:
案例2:
练习:
12 任务调度 crond
12.1 概述
crond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。
Cron 是UNIX, SOLARIS,LINUX下的一个十分有用的工具。通过Cron脚本能使计划任务定期地在系统后台自动运行。这种计划任务在UNIX, SOLARIS, LINUX下术语为cron jobs。 Crontab (CRON 表)则是用来记录在特定时间运行的CRON的一个脚本文件。
示意图:
12.2 任务调度语法: crontab [-e]
语法指令:
crontab -e : 编辑定时任务(edit)
crontab -l :查询定时任务
crontab -r :删除所有的cron tab任务。
12.3 快速入门:
(一)设定定时任务的两种方式:一个是用户级别的,一个是系统级别的说一下两种方法的使用及区别:
方式一:用户级别设定任务:
使用命令 crontab -e 然后自动进去直接编写定时的任务。
这样执行以后,属于用户级别的。会被写到/varspool/cron目录下,生成一个和当用户名一致的文件(如root文件),文件的内容我们查看一下,就是我们刚才编写的定时任务。
用法:
(1)直接使用命令:crontab -e 进去编辑你要执行的命令。
(2)文件内输入命令: */1 * * * * date > /tmp/testdate.txt 然后保存退出:wq
(3)然后命令:cd /tmp 进入目录ll查看testdate.txt,使用cat/more/less查看文件。
查看我们刚才编写的任务存放的位置及内容:
[root@fancentos7 cron]# cd /var/spool/cron
[root@fancentos7 cron]# ll
总用量 4
-rw-------. 1 root root 80 7月 30 11:17 root
[root@fancentos7 cron]# cat root
*/1 * * * * date > /tmp/testdate.txt
*/1 * * * * date > /usr/temp/testcrond.txt
[root@fancentos7 cron]#
方式二:系统级别设定任务:
使用命令vim /etc/crontab 编写定时任务:如下
两种方式的区别:系统级的,做系统配置我们会直接配置 /etc/crontab
用户级的:一般建议我们使用 crontab -e 这样系统也会帮我们检查我们的定时任务的语法。
(二)入门案例一:
(1)直接使用命令:crontab -e 进去编辑你要执行的命令。
(2)文件内输入命令: */1 * * * * ls -l /etc > /tmp/to.txt 然后保存退出:wq
(3)然后命令:cd /tmp 进入目录ll查看to.txt,使用cat/more/less查看
出现下图installing … ,代表任务写入成功:
(三)入门案例二:
第二步的指令换成查看日期的命令:
*/1 * * * * date > /tmp/testdate.txt 然后保存退出:wq
然后查看即可:
等一分钟后查看:cat /testdate.txt
(四)五个占位符的前后说明:【分,时,天, 月,星期】
特殊符号说明:
特定时间执行任务案例:
案例1:定时执行脚本文件
(1)写脚本:vim /home/my.sh 写入内容date >> /home/mycal
cal >> /home/mycal
这里也可以写相对路径:没有mycal系统会自动创建。
(2)赋权限:给脚本文件my.sh 增加执行权限:chmod u+x /home/my.sh
(3)定任务:crontab -e 增加 */1 * * * * /home/my.sh
注意:我们的可执行脚本为(即定时执行脚本文件) /home/my.sh
定时调度的示意图:
案例2:备份数据库
其他指令:
12.3 一次性的调度任务:at
at命令是一次性定时计划任务,at的守护进程atd会以后台模式运行,检查作业队列来运行作业。atd守护进程会检查系统上的一个特殊目录来获取at命令的提交的作业,默认情况下,atd守护进程每60秒检查一次目录,有作业时,会检查作业运行时间,如果时间与当前时间匹配,则运行此作业。
注意:at命令是一次性定时计划任务,执行完一个任务后不再执行此任务了。
使用at命令指定要确保atd进程在运行。
查看atd进程是否在运行 : ps -ef | grep atd
1、at命令格式
at [选项] [时间]
Ctrl + D 结束at命令的输入
2、at命令选项
3、时间定义
at允许使用一套相当复杂的指定时间的方法:
● 能够接受在当天的hh:mm(小时:分钟)式的时间指定。假如该时间已过去,那么就放在第二天执行。 例如:04:00
● 能够使用midnight(深夜),noon(中午),teatime(饮茶时间,一般是下午4点)等比较模糊的词语来指定时间。
● 能够采用12小时计时制,即在时间后面加上AM(上午)或PM(下午)来说明是上午还是下午。 例如:12pm
● 能够指定命令执行的具体日期,指定格式为month day(月 日)或mm/dd/yy(月/日/年)或dd.mm.yy(日.月.年),指定的日期必须跟在指定时间的后面。 例如:04:00 2009-03-1
● 能够使用相对计时法。指定格式为:now + count time-units ,now就是当前时间,time-units是时间单位,这里能够是minutes(分钟)、hours(小时)、days(天)、weeks(星期)。count是时间的数量,几天,几小时。 例如:now + 5 minutes 04pm + 3 days
● 能够直接使用today(今天)、tomorrow(明天)来指定完成命令的时间。
4、相关命令
1)at:在特定的时间执行一次性的任务;2)atq:列出用户的计划任务,如果是超级用户将列出所有用户的任务,结果的输出格式为:作业号、日期、小时、队列和用户名;3)atrm:根据job number删除at任务;4)batch:在系统负荷允许的情况下执行at任务,就是在系统空闲的情况下才执行at任务。
5、相关配置文件
1)时间规范的确切定义可以在/usr/share/doc/at-3.1.13/timespec中查看;2)默认情况下计划任务都是存放在/var/spool/at/文件夹中;3)root用户可以在任何情况下使用at命令,而其他用户使用at命令的权限定义在/etc/at.allow(被允许使用计划任务的用户)和/etc/at.deny(被拒绝使用计划任务的用户)文件中,默认没有文件需要自己创建允许用户和拒绝用户文件;4)如果/etc/at.allow文件存在,只有在该文件中的用户名对应的用户才能使用at;5)如果/etc/at.allow文件不存在,/etc/at.deny存在,所有不在/etc/at.deny文件中的用户可以使用at;6)at.allow比at.deny优先级高,执行用户是否可以执行at命令,先看at.allow文件中有没有才看at.deny文件;7)如果/etc/at.allow和/etc/at.deny文件都不存在,则只有root用户能使用at;8)一个空内容的/etc/at.deny表示任何用户都能使用at命令,这是默认的配置;9)一般情况下这两个文件存在一个即可。如果只有少数几个用户需要使用计划任务,那么就保留at.allow文件,如果大部分用户都要使用计划任务,那么保留at.deny即可。
6、at使用 案例
13.Linux网络配置:
13.1Linux网络配置原理图:
13.2 查看网络ip和网关
常用查linux的ip地址的两种方式:
ifconfig
hostname -i
13.2.1查看虚拟机网络编辑器和修改IP地址
13.2.2查看网关
13.2.3查看linux下VMnet8的IP地址(ifconfig)
13.2.4查看windows下VMnet8的IP地址(ipconfig)
然后查看windows下的ipv4:
13.3 ping:测试主机之间的网络连通性
(1)语法:
(2)实例
(2.1)windows连接linux:
显示是通的。
(2.2)linux连接windows:
注意事项:在控制面板关闭windows的防火墙:才能完成ping 连通
完成ping通了:
13.4 Linux网络环境配置(重点)
13.4.1方式一:自动获取方式:
自动获取适用于自己玩,不适合服务器(服务器需要固定的ip)
查看linux网络配置获取ip的方式:
如果显示正在连接,却一直连接不上网络,则退到linux系统桌面,用浏览器测试网络是否连接:测试:www.baidu.com
如果不能连接或者出现如下图片:
解决:
1:win+R打开运行框,然后输入services.msc,点击确定
2:找到VMware DHCP Service,然后右击启动
如果VMware DHCP Service 服务无法启动,则
注意,如果此方法还是不能连接网络,则在上图多次取消勾选并应用,然后再次勾选并应用试试。
3:点击启动之后在虚拟机上重新连接网络,这时候网络连接成功
13.4.2方式二:程序员配置网络的方式(设置固定ip):
vim /etc/sysconfig/network-scripts/ifcfg-ens33
如我将ip地址设置成192.168.211.211
#ip地址,后两位可以自己设置任意的,但是要在一定范围内
IPADDR=192.168.211.211
#网关,也是自定义的,要和ip在同一网段211
GATEWAY=192.168.211.2
#域名解析器
DNS1=192.168.211.2
dhcp:为自动分配,将其换成static
然后修改这里:编辑–》虚拟网络编辑:
统一网段:192.168.211.1
统一网关:
然后重启机器或者重启网络:service network restart
或者重启虚拟机:reboot
然后测试:
找到windows主机ip:
找到linux虚拟机的ip:
可以互相ping测试,也可以ping百度测试(ping www.baidu.com)。
13.5 设置主机名和hosts映射
13.5.1设置主机名
13.5.2设置hosts映射
(1)linux下设置hosts映射:
第一步:
先进入此文件,设置映射的命令:
vim /etc/hosts
第二步:
然后查找windows的主机名:在我的电脑–>右键属性:如下
第三步:
然后在linux下测试ping windows主机:
(2)windows下设置hosts映射:
第一步,先查找linux的主机名:
hostname
第二步:复制目录路径修改:
C:\Windows\System32\drivers\etc
第三步:然后打开hosts文件编辑:
然后保存退出。
第四步:然后在windows下测试:
win+r 后输出cmd:测试成功如下
13.6主机名解析过程分析:
实例:
13.7查看防火墙:
运行service iptables status出现
解决方法:
yum install iptables-services
基本操作
# 停止防火墙service iptables stop
# 启动防火墙
service iptables start
# 重启防火墙
service iptables restart
# 永久关闭防火墙
chkconfig iptables off
# 永久关闭后重启
chkconfig iptables on
开启80端口
firewall-cmd --zone=public --add-port=80/tcp --permanent (–permanent永久生效,没有此参数重启后失效)
提示success,表示设置成功,这样就可以继续后面的设置了。
systemctl status firewalld查看firewalld状态,发现当前是dead状态,即防火墙未开启
ystemctl start firewalld开启防火墙,没有任何提示即开启成功。
通过systemctl status firewalld查看firewalld状态,显示running即已开启了。
重启防火墙
service iptables restart
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!