linux教程[尚硅谷]
2021-04-07 13:35:57 0 举报
AI智能生成
LINUX
作者其他创作
大纲/内容
1. VM和LINUX系统安装
1.1 virtual machine
1.1.1 需要先去BIOS里修改设置开启虚拟化设备支持
1.1.2 配置网络连接时,有三种形式
1.1.2.1 桥连接
1.1.2.2 NAT
1.1.2.3 主机模式
1.2 CentOS 6.8
1.2.1 配置网络
1.2.1.1 点击上面右侧的两个计算机图片,选择启用eth0,即可成功连接到网络,就可以上网
1.3 vmtools
1.3.1 安装后即可在两个操作系统中自由复制文字
1.3.2 在centos的/mnt/hgfs/下会找到指定的共享文件
2. LINUX的目录结构
2.1 在LINUX世界里,一切皆文件
2.2 文件结构的具体介绍
2.2.1 /bin(/usr/bin、/usr/local/bin)
2.2.2 /sbin(/usr/sbin、/usr/local/sbin)
2.2.3 /home
2.2.4 /root
2.2.5 /boot
2.2.6 /proc
2.2.7 /srv
2.2.8 /sys
2.2.9 /tmp
2.2.10 /lib
2.2.11 /lost+found
2.2.12 /etc
2.2.13 /usr
2.2.14 /dev
2.2.15 /media
2.2.16 /mnt
2.2.17 /opt
2.2.18 /usr/local
2.2.19 /var
2.2.20 /selinux[security-enhanced linux]360
2.3 LINUX的各个目录存放的内容是规划好,不能乱放文件
3. 远程登录linux系统
3.1 Xshell
3.1.1如果希望安装好XShell就可以远程访问Linux系统的话,需要有一个前提,就是Linux启用了SSHD服务,该服务会监听22号端口。
3.2 XFtp
3.2.1 在设置的选项中选择UTF-8编码可以解决乱码问题
4. vi和vim编辑器
4.1 vi和vim的三种常见模式
4.1.1 一般模式
4.1.2 编辑模式
4.1.3 命令模式
4.2 vi和vim的三种模式的相互转换图
4.3 快捷键的使用
4.3.1 拷贝当前行yy,拷贝当前行向下的5行5yy,并粘贴在当前行的下一行开始p
4.3.2 删除当前行dd,删除以当前行为首的向下的5行5dd
4.3.3 在文件中查找某个单词是在命令行下输出/关键字,回车查找 , 输入n就是查找下一个
4.3.4 设置文件行号与取消文件行号::set nu和:set nonu
4.3.5 在正常模式下,到文档的最末行G和最首行gg
4.3.6 撤销上一次编辑的动作,在正常模式下输入u
4.3.7 编辑文件时,把光标移动到某一行:先显示行号,再输入数字,再输入shift+g
5. 开机、重启和用户登录注销
5.1 shutdown
5.1.1shutdown -h now:立刻关机
5.1.2 shutdown -h 1:一分钟后关机
5.1.3 shutdown -r now:立即重启
5.2 halt:效果等价于关机
5.3 reboot:重启系统
5.4 sync:把内存的数据同步到磁盘
5.4.1 当我们关机或者重启时,都应该先执行以下sync指令,把内存的数据写入磁盘,防止数据丢失
5.5 logout:注销指令在图形运行级别无效,在运行级别3下有效
6. 用户管理
6.1 用户家目录:/home/目录下有各个创建的用户对于的家目录。当用户登录时会自动的进入到自己的家目录
6.2 Linux的用户需要至少要属于一个组
6.3 添加用户:useradd [选项] 用户名
6.3.1 当创建用户成功后,会自动的创建和用户同名的家目录
6.3.2 也可以通过useradd -d 指定目录 新的用户名,给新创建的用户指定家目录
6.4 给用户指定或修改密码:passwd 用户名
6.5 删除用户:userdel 用户名
6.5.1 删除用户xm,但是保留家目录:userdel xm
6.5.2 删除用户xh及用户家目录:userdel -r xh
6.5.3 在删除用户时,我们一般不会将家目录删除
6.6 查询用户信息:id 用户名
6.6.1 查询结果为:uid用户id号、gid用户所在组号、组名
6.6.2 当用户不存在时,返回“无此用户”
6.7 切换用户:su - 切换用户名
6.7.1 exit:返回原来的用户
6.7.2 从权限高的用户切换到权限低的用户,不需要输入密码,反之需要
6.8 增加组:groupadd 组名
6.9 删除组名:groupdel 组名
6.10 增加用户时直接加上组:useradd -g 用户组 用户名
6.11 修改用户的组:usermod -g 用户组 用户名
6.12 /etc/passwd文件:用户的配置文件,记录用户的各种信息
6.12.1 每行的含义:用户名:口令:用户id:组id:主目录:登录Shell
6.13 /etc/shadow文件:口令配置文件
6.13.1 每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
6.14 /etx/group文件:组的配置文件,记录LINUX包含的组的信息
6.14.1 每行含义:组名:口令:组标识号:组内用户列表
7. 实用指令
7.1 指定运行级别
7.1.1 0:关机
7.1.2 1:单用户(找回丢失密码)
7.1.3 2:多用户状态无网络服务
7.1.4 3:多用户状态有网络服务
7.1.5 4:系统未使用,保留给用户
7.1.6 5:图形界面
7.1.7 6:系统重启
7.2 常用运行级别是3和5,要修改默认的运行级别可改文件/etc/inittab的id:5:initdefault:这一行中的数字
7.3 切换到指定运行级别的指令:init[0123456]
7.4 找回root密码:进入到单用户模式,然后修改root密码。因为进入单用户模式,root不需要密码就可以登录
7.4.1 开机->在引导时输入回车键->看到一个界面输入e->看到一个新的界面,选中第二行(编辑内核)在输入e->在这行最后输入空格和1 ,再输入回车键->再次输入b,这时就会进入到单用户模式。这时,我们就进入到单用户模式,使用passwd指令来修改root密码
7.5 帮助指令
7.5.1 man[命令或配置文件]:获取帮助信息
7.5.2 help指令:help 命令获得shell内置命令的帮助信息
7.6 pwd:显示当前工作目录的绝对路径
7.7 ls指令:ls [选项] [文件或目录]
7.8 cd指令:cd [参数],切换到指定目录,常用参数为绝对路径与相对路径
7.9 mkdir指令:mkdir [选项] 要创建的目录,-p:创建多级目录,如/home/animal/tiger
7.10 rmdir指令:rmdir [选项] 要删除的空目录,如果目录下有内容rmdir是无法删除的,如果想删除需要加上-rf参数
7.11 touch指令:touch 文件名称1 文件名称2...
7.12 cp指令:cp指令拷贝文件到指定目录,cp[选项] source dest,-r代表递归复制整个文件夹
7.13 rm指令:rm [选项] 要删除的文件或目录,-r代表递归删除整个文件夹,-f代表强制删除不提示
7.14 mv指令:用来移动目录或者重命名
7.14.1 mv oldNameFile newNameFile
7.14.2 mv 原路径 目标路径
7.15 cat指令:查看文件内容,以只读的方式打开,cat [选项] 要查看的文件,-n用来显示行号,为了方便浏览,一般会带上管道命令|more,如 cat 文件名 | more
7.16 more指令:基于VI编辑器实现文本过滤,以全屏的方式按页显示文本文件的内容,其内置了若干快捷键,more 要查看的文件
7.16.1 快捷键
7.16.1.1 空白键:代表向下翻一页
7.16.1.2 Enter:代表向下翻一行
7.16.1.3 q:代表立刻离开more,不再显示该文件内容
7.16.1.4 ctrl+F:向下滚动一屏
7.16.1.5 ctrl+B:返回上一屏
7.16.1.6 =:输出当前的行号
7.16.1.7 :f:输出文件名和当前的行号
7.17 less指令:用来分屏查看文件内容,比more更强大,less并不是一次将整个文件加载后显示,而是根据需要加载内容,更高效,less 要查看的文件
7.17.1 快捷键
7.17.1.1 空白键:向下翻动一页
7.17.1.1 [pagedown]:向下翻动一页
7.17.1.1 [pageup]:向上翻动一页
7.17.1.1 /字串:向下搜寻字串的功能,n为向下查找,N为向上查找
7.17.1.1 ?字串:向上搜寻字串的功能,n为向上查找,N为向下查找
7.17.1.1 q:离开less这个程序
7.18 >指令和>>指令:>会将原来的文件的内容覆盖,>>追加,不会覆盖,追加到文件末尾,如果文件不存在,就创建文件
7.19 echo指令:输出内容到控制台,echo [选项] [输出内容],如echo $PATH用来输出环境变量
7.20 head指令:显示文件开头部分内容,默认前10行,head 文件,head -n 5 文件,显示前5行
7.21 tail指令:显示文件末尾部分内容
7.21.1 tail 文件:显示后10行
7.21.2 tail -n 5 文件:显示后5行
7.21.3 tail -f 文件:实时追踪该文档的所有更新,工作中常用
7.22 ln指令:ln -s [原文件或目录] [软链接名],给原文件创建一个软链接
7.22.1 ln -s /root linkToRoot
7.22.2 rm -rf linkToRoot,在删除软连接时,不要带/,否则提示文件忙
7.22.3 当我们使用pwd指令查看目录时,仍然看到的是软链接所在目录
7.23 history指令:history,查看所有历史命令
7.24 date指令:显示当前日期
7.24.1 date:显示当前时间
7.24.2 date +%Y:显示当前年份
7.24.3 date +%m:显示当前月份
7.24.4 date +%d:显示当前是哪一天
7.24.5 date "+%Y-%m-%d %H:%M:%S":显示年月日时分秒
7.25 date指令:设置时间,date -s 字符串时间,例如:date -s "2018-10-10 11:22:22"
7.26 查看日历指令:cal[选项]
7.27 搜索查找类指令
7.27.1 find指令:find [搜索范围] [选项],选项包括-name<查询方式>按照指定的文件名查找文件;-user<用户名>查找属于指定用户名的所有文件;-size<文件大小>按照指定的文件大小查找文件,+n大于,-n小于,n等于,例如 find / -size +20M
7.27.2 locate指令:locate 搜索文件,可以快速定位文件路径,locate指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件。Locate指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新locate时刻
7.27.2.1 由于locate指令基于数据库进行查询,所以第一次运行前,必须使用updatedb指令创建locate数据库
7.27.3 grep指令和管道符号|:grep过滤查找,管道符|表示将前一个命令的处理结果输出传递给后面的命令处理。grep [选项] 查找内容 源文件,如 cat hello.java | grep -ni yes,-n表示显示匹配及行号,-i表示忽略字母大小写
7.28 压缩和解压类
7.28.1 gzip/gunzip指令:gzip用于压缩文件,gunzip用于解压。当我们使用gzip对文件进行压缩后,不会保留原来的文件
7.28.2 zip/unzip指令:zip [选项] 文件名,-r代表递归压缩;unzip [选项] 文件名,-d<目录>代表解压后文件的存放目录
7.28.3 tar指令:把文件打包成.tar.gz的文件
7.28.3.1 -c:产生.tar打包文件
7.28.3.2 -v:显示详细信息
7.28.3.3 -f:指定压缩后的文件名
7.28.3.4 -z:打包同时压缩
7.28.3.5 -x:解包.tar文件
7.28.3.6 tar -zcvf a.tar.gz a1.txt a2.txt,把a1和a2压缩成a.tar.gz
7.28.3.7 tar-zxvf a.tar.gz -C /b/,解压到/b/目录下,C要大写
7.28.3.8 zcvf压缩,zxvf解压
8. 组管理和权限管理
8.1 在linux中的每个用户必须属于一个组,不能独立于组外。在linux中每个文件有所有者、所在组、其它组的概念
8.2 查看文件的所有者:ls -ahl
8.3 修改文件所有者:chown 新用户 文件名,chown 新用户:新组 文件名,-R代表如果是目录,则其下所有子目录和子文件递归生效
8.4 组的创建:groupadd 组名
8.5 当某个用户创建了一个文件后,默认这个文件的所在组就是该用户所在的组
8.6 修改文件所在的组:chgrp 组名 文件名
8.7 改变用户所在的组:usermod -g 组名 用户名
8.8 权限的基本介绍:-rwxrw-r-- 1 root root 1213 Feb 2 09:39 abc
8.8.1 第0位确定文件类型(d,-,l,c,b)
8.8.1.1 l:软连接
8.8.1.2 c:字符设备,鼠标键盘等
8.8.1.3 b:块文件,硬盘
8.8.1.4 d:目录
8.8.1.5 -:基本文件
8.8.2 第1-3位确定该文件所有者拥有该文件的权限-user
8.8.3 第4-6位确定同用户组的用户拥有该文件的权限-group
8.8.4 第7-9位确定其他用户拥有该文件的权限-other
8.8.5 1:如果是文件,表示硬链接的个数;如果是目录,则代表该目录下子目录的个数
8.8.6 第一个root:所属用户
8.8.7 第二个root:所属组
8.8.8 1213:文件大小,如果是目录则为4096
8.8.9 Feb 2 09:39:最后修改时间
8.9 rwx在文件上权限
8.9.1 r:可以读取查看
8.9.2 w:可以修改但是不可以删除,删除一个文件的前提是对该文件所在的目录有写权限,才可以删除该文件
8.9.3 x:代表该文件可以被执行
8.10 rwx在目录上的权限
8.10.1 r:可以查看
8.10.2 w:可以在目录内创建删除文件,可以重命名目录
8.10.3 x:可以进入该目录
8.11 r=4,w=2,x=1
8.12 修改权限chmod
8.12.1 chmod u=rwx,g=rx,o=x 文件目录名
8.12.2 chmod o+w 文件目录名
8.12.3 chmod a-x 文件目录名
8.12.4 u代表所属用户,g代表同组,o代表其他,a代表所有人
8.12.5 chmod 755 /home/abc.txt
8.13 修改文件所在组:chgrp 新组 文件,-R代表递归子文件与目录
9. CROND任务调度
9.1 linux定时调度我们的脚本或者代码机制,crontab,如果只是简单的任务可以不写脚本,直接在crontab中加入任务即可,如果是复杂的任务,需要写脚本(shell编程)
9.2 crontab [选项]
9.2.1 -e:编辑crontab定时任务
9.2.2 -l:查询crontab任务
9.2.3 删除当前用户的所有crontab任务
9.2.4 演示
9.2.4.1 crontab -e
9.2.4.2 */1 * * * * ls –l /etc/ > /tmp/to.txt
9.2.4.3 意思说每小时的每分钟执行ls –l /etc/ > /tmp/to.txt命令,保存退出即可
9.2.4.4 或者写一个可以执行的sh后缀文件,在crontab -e之后,输入*/1 * * * * /home/mytask1.sh
9.2.5 参数说明
9.2.5.1 第1个*:一小时当中的第几分钟
9.2.5.2 第2个*:一天当中的第几小时
9.2.5.3 第3个*:一月当中的第几天
9.2.5.4 第4个*:一年当中的第几月
9.2.5.5 第5个*:一周当中的星期几
9.2.6 特殊符号说明
9.2.6.1 *:任何时间
9.2.6.2 ,:不连续的时间
9.2.6.3 -:连续的时间范围
9.2.6.4 */n:代表多久执行一次
9.2.7 service crond restart [重启任务调度]
10. [待重新整理] linux磁盘分区、挂载
10.1 分区方式
10.1.1 mbr分区:最多支持四个主分区、系统只能安装在主分区、扩展分区要占一个主分区。MBR最大支持2TB,但有很好的兼容性
101.2 gtp分区:支持无限多个主分区,最大支持18EB的容量
10.2 Linux采用了一种叫载入的处理方法,它的整个文件系统中包含了一整套的文件和目录, 且将一个分区和一个目录联系起来。这时要载入的一个分区将使它的存储空间在一个目录下获得
10.3 Linux硬盘分IDE硬盘和SCSI硬盘,目前基本上是SCSI硬盘
11. 网络配置
11.1 在windows环境查看网络配置:ipconfig
11.2 ping测试主机之间的网络连通:ping 目的主机
11.3 linux网络环境配置
11.3.1自动获取:把设置在界面中改成自动,缺点是每次自动获取的ip地址可能不一样,这个不适用于做服务器,因为我们的服务器的ip需要固定
11.3.2 指定固定的ip:直接修改配置文件来指定IP, 可以接到外网,编辑vim /etc/sysconfig/network-scripts/ifcfg-eth0
11.3.3 ifcfg-eth0文件说明
11.3.4 修改文件过后要重启服务:service network restart,reboot
12. 进程管理
12.1 在LINUX中,每个执行的程序都称为一个进程。每一个进程都分配一个ID号
12.2 每一个进程,都会对应一个父进程,而这个父进程可以复制多个子进程
12.3 每个进程都可能以两种方式存在的。前台与后台,所谓前台进程就是用户目前的屏幕上可以进行操作的。后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行。一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。直到关机才才结束
12.4 查看进行使用的指令是ps ,一般来说使用的参数是ps -aux
12.4.1 ps -a:显示当前终端的所有进程信息
12.4.2 ps -u:以用户的格式显示进程信息
12.4.3 ps -x:显示后台进程运行的参数
12.5 ps现实的信息字段
12.5.1 PID:进程识别号
12.5.2 TTY:终端机号
12.5.3 TIME:进程所消耗CPU时间
12.5.4 CMD:正在执行的命令或者进程名
12.5.5 STAT:进程状态,其中S-睡眠,s-表示该进程是会话的先导进程,N-表示进程拥有比普通优先级更低的优先级,R-正在运行,D-短期等待,Z-僵死进程,T-被跟踪或者被停止等等
12.6 ps指令详解,如ps -aux|grep sshd来查看sshd服务
12.7 ps -e显示所有进程,-f全格式:ps -ef | grep xxx,来查看所有进程与其父进程
12.7.1 UID:用户ID
12.7.2 PID:进程ID
12.7.3 PPID:父进程ID
12.7.4 C:CPU用于计算执行优先级的因子。数值越大,表明进程是CPU密集型运算,执行优先级会降低;数值越小,表明进程是I/O密集型运算,执行优先级会提高
12.7.5 STIME:进程启动的时间
12.7.6 TTY:完整的终端名称
12.7.7 TIME:CPU时间
12.7.8 CMD:启动进程所使用的命令和参数
12.8 终止进程kill和killall
12.8.1 kill 选项 进程号:通过进程号杀死进程,-9表示强迫进程立即停止
12.8.2 killall 进程名:通过进程名称来终止进程,例如killall gedit来终止多个gedit编辑器
12.9 pstree [选项]:可以更加直观的观察进程信息,-p显示进程的PID,-u显示进程的所属用户
12.10 服务管理
12.10.1 服务本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其它程序的请求,比如mysql,sshd,防火墙等,因此我们又称为守护进程,在CentOS7.0后不再使用service,而是systemctl
12.10.2 service管理指令:service 服务名 [start|stop|reload|status],例如service iptables status
12.10.3 这种指令方式只是临时生效,当重启系统后,还是回归以前对服务的设置,如果希望设置某个服务自启动或关闭永久生效,要使用chkconfig指令
12.11 查看服务名:setup查看,或者查看/etc/init.d/文件下,如:ls -l /etc/init.d/
12.12 开机流程:开机->BIOS->/boot->init进程1->运行级别->运行级对应服务
12.13 chkconfig指令:给每个服务的各个运行级别设置自动启动/关闭
12.13.1 查看服务:chkconfig --list|grep xxx
12.13.2 chkconfig 服务名 --list
12.13.3 chkconfig --level 5 服务名 on/off
12.13.4 所有级别下开启/关闭:chkconfig 服务名 on/off
12.14 动态监控进程:top,其与ps的不同之处在于top在执行一段时间可以更新正在运行的进程
12.14.1 top [选项]:-d打表每隔几秒更新;-i代表不显示任何闲置和僵死进程;-p通过指定监控进程ID仅仅监控某个进程的状态
12.14.2 交互操作:P代表以CPU使用频率排序;M代表以内存使用排序;N以PID排序;q推出top
12.14.3 输入u回车,再输入用户名即可监视特定用户
12.14.4 输入k回车,再输入进程的ID号,即可终止进程
12.15 查看系统网络情况:netstat [选项]
12.15.1 -an代表按一定顺序排序输出
12.15.22 -p显示哪个进程在调用
13. RPM和YUM
13.1 RPM
13.1.1 查询已安装的rpm列表:rpm -qa|grep xxx
13.1.2 rpm包名基本格式:firefox-45.0.1-1.el6.centos.x86_64.rpm
13.1.2.1 名称
13.1.2.2 版本号
13.1.2.3 适用操作系统
13.1.2.4 noarch表示32、64位操作系统通用
13.1.3 rpm查询所安装的所有rpm包:rpm -qa,rpm -qa | more
13.1.4 rpm -qi file:查询软件包的信息
13.1.5 rpm -ql file:查询软件包的安装地址
13.1.6 rpm -qf 路径:查询文件所属哪个rpm包
13.1.7 rpm -e RPM包的名称:卸载安装的rpm包
13.1.8 rpm -e --nodeps PRM包的名称:强制删除
13.1.9 rpm -ivh RPM包全路径名称:安装rpm包,i代表安装,v代表提示,h代表进度条
13.2 YUM
13.2.1 Yum是一个Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包。使用yum的前提是可以联网
13.2.2 查询yum服务器是否有需要安装的软件:yum list | grep xx
13.2.3 安装指定的yum包:yum install xxx
14. 搭建JAVAEE环境
15. SHELL编程
16. 开发平台UBUNTU
收藏
0 条评论
下一页