远程登录到Linux服务器
- 为什么需要远程登录到Liunx?
- (1)linux服务器是开发小组共享的。
- (2)正式上线的项目是运行在公网上的。
- (3)因此程序员需要远程登录到centos进行项目管理或者开发。
- (4)远程登录客户端有Xshell、Xftp,我们学习使用Xshell5和Xftp5。
- 如果希望安装好Xshell5就可以远程访问Linux系统的话,需要由一个前提,就是Linux启动了sshd服务,该服务会监听22号端口。
- Xshell5远程登录到Linux后,就可以使用指令来操作Linux系统
Vi和Vim编辑器
- 所有的Linux操作系统都会内建vi文本编辑器。
- Vim具有程序编辑的能力,可以看做是Vi的增强版本,可以主动的以字体颜色辨别语法的正确性,方便程序设计。代码补充、编译及错误跳转等方便编程的功能特别丰富,在程序员中广泛使用。
- vi和vim常用的三种模式:(1)正常模式:以vim打开一个档案就直接进入一般模式了(这是默认的模式)。在这个模式中,你可以使用[上下左右]键来移动光标,你可以使用[删除字符]或[删除整行]来处理文档内容,也可以使用[复制、贴上]来处理你的文件数据;(2)插入模式:按下i,l,o,a,A,r,R等任何一个字母之后才会进入编辑模式,一般来说按i即可;(3)在这个模式当中,可以提供你相关指令,完成读取、存盘、替换、离开vim、显示行号等的动作则是在此模式中达成的!
- wq:保存并退出
- q:退出
- q!:强制退出
- 拷贝当前行yy,拷贝当前行向下的5行5yy,并粘贴§
- 删除当前行dd,删除当前行向下的5行5yy。
- 在文件中查找某个单词[命令行下/关键字,回车查找,输入n就是查找下一个]
- 设置文件的行号,取消文件行号[命令行下:set nu, :set nonu]
- 使用快捷键到文件的最末行[G],文件的首行[gg](正常模式下)
- 撤销u(正常模式下)
- 移动光标到20行,20 shift+g(正常模式下)
开机、重启和用户登录注销
- 关机&重启命令:shutdown -h now:立刻进行关机;shutdown -h 1:1分钟后会关机;shutdown -r now:现在重新启动计算机;halt:关机;reboot:现在重新启动计算机;sync:把内存的数据同步到硬盘。
- 用户登录和注销:(1)登录时尽量少用root账户登录,因为它是系统管理员,最大的权限,避免操作失误。可以利用普通用户登录,登录后再用"su -用户名"命令来切换成系统管理员省份。(2)在提示符下输入logout即可注销用户。
用户管理
- id root,查询root用户的信息。当用户不存在时,返回“无此用户”。
- 切换用户:在操作Linux中,如果当前用户的权限不够,可以通过su - 指令,切换到高权限的用户。
- 细节说明:从权限高的用户切换到权限低的用户,不需要输入密码,反之需要。
- 当需要返回原来的用户时,使用exit指令。
- 查看当前用户/登录用户:whoami/who am i
- 用户组:类似于角色,系统可以对有共性的多个用户进行统一的管理。
- 新增组:groupadd 组名
- 删除组:groupdel 组名
- 增加用户时直接加上组:useradd -g 用户组 用户名
- 修改用户组:usermod -g 用户组 用户名
- 用户和组的相关文件:/etc/passwd、/etc/group、/etc/shadow
- /etc/passwd:用户(user)的配置文件,记录用户的各种信息。每行的含义,用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录shell
- /etc/group:组(group)的配置文件,记录Linux包含的组的信息。每行含义:组名:口令:组标识号:组内用户列表。
- /etc/shadow:口令的配置文件。每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志。
实用指令
- 指定运行级别:0:关机、1:单用户(找回丢失密码)、2:多用户无网络服务、3:多用户有网络服务、4:保留、5:图像界面、6:重启
- 系统的运行级别配置文件:/etc/inittab
- 切换到指定运行级别的指令:init [012356]
- 如何找回root的密码:进入到单用户模式,然后修改root密码。因为进入单用户模式,root不需要密码就可以登录。
- 总结:开机->在引导时输入回车->界面输入e->界面选择第二行(编辑kernel)->在输入e->在这行最后输入1,再输入回车->再次输入b,这时就会进入单用户模式。使用passwd修改root密码。
帮助指令
- 当我们对某个指令不熟悉的时候,我们可以使用linux提供的帮助指令来了解这个指令的使用方法。
- linux中以.开头的文件默认为隐藏文件。
- man 获取帮助信息:man [命令或配置文件](功能描述:获得帮助信息)。
- help:(功能描述,获得shell内置命令的帮助信息)
文件目录类
- pwd指令:显示当前工作目录的绝对路径。
- ls指令:ls [选项] [目录或是文件];常用选项:-a:显示当前目录所有的文件和目录,包括隐藏的。-l:以列表的方式显示信息。
- cd指令:切换到指定目录,cd ~:cd:会到自己的家目录,cd …:回到当前目录的上一级目录。
- mkdir指令:创建目录,-p:创建多级目录。
- rmdir指令:删除空目录,目录下有内容无法删除;删除非空目录,需要使用rm -rf。
- touch指令:创建空文件。
- cp指令:拷贝文件到指定目录,cp [选项] source dest;-r:递归复制整个文件夹。强制覆盖不提示:\cp
- rm指令:移除文件或目录,-r:递归删除整个文件夹,-f:强制删除不提示。
- mv指令:移动文件与目录或重命名。
- cat指令:查看文件内容,只能浏览不能修改。-n:显示行号。cat | more 分页模式
- more指令:more指令是一个基于vi编辑器的文本过滤器,它以全屏幕的方式按页显示文件的内容。
- less指令:用来分屏查看文件内容。less指令在显示文件内容时,并不是一次将整个文件加载之后菜显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率。
-
指令:输出重定向,会将原来的文件的内容覆盖。
-
指令:追加,不会覆盖原来文件的内容(文件不存在就创建文件)。
- ls -l > 文件:列表的内容写入文件。
- ls -al >> 文件:列表的内容追加到文件。
- cat 文件1 > 文件2:将文件1的内容覆盖到文件2。
- echo “内容” >> 文件。
- cal指令:显示日历。
- echo指令:输出内容到控制台。echo $PATH。
- head指令:用于显示文件的开头部分内容,默认情况下head指令显示文件的前10行内容。head -n 5 文件:查看文件头5行内容。
- tail指令:用于输出文件中尾部的内容,默认情况下tail指令显示文件的后10行内容。tain -n 5 文件:查看文件后5行内容。tail -f 文件:实时追踪该文档的所有更新。
- ln指令:软链接、符号链接,主要存放了链接其他文件的路径。ln -s [原文件或目录] [软链接名]:给原文件创建一个软链接。rm -rf link:删除软链接。当我们使用pwd指令查看目录时,仍然看到的是软链接所在目录。
- history指令:查看已经执行过历史命令,也可以执行历史指令。history 10:显示最近执行的10个指令;!5:执行历史编号为5的指令。
时间日期类
- date指令:显示当前日期;date+%Y:显示当前年份;date+%m:显示当前月份;date+%d:显示当前天;date"+%Y-%m-%d %H:%M:%S":显示年月日时分秒。
- date -s 字符串时间:设置日期。
- cal指令:查看日历指令。cal 2020:显示2020的日历。
搜索查找类
- find指令:将从指定目录向下递归地遍历其各个子目录,将满足条件或目录显示在终端。find [搜索范围] [选项]。find /home -name hello.txt:-name根据文件名查找;-user:按照文件的拥有者来查找;find / -size +20M:查找大于20M的文件 -20M:小于20M;20M:等于20M;
- find / -name *.txt:通配符查找。
- locate指令:可以快速定为文件路径。locate指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定为给定的文件。locate指令无须遍历整个文件系统,查询速度极快。为了保证查询结果的准确度,管理员必须定期更新locate数据库。由于locate指令基于数据库进行查询,所以第一次运行前,必须使用updatedb指令创建locate数据库。
- grep指令和管道符号|:grep [选项] 查找内容 源文件,-n:显示匹配行及行号,-i:忽略字母大小写。
- 管道符|:表示将前一个命令的处理结果输出传递给后面的命令处理。
压缩和解压类
- gzip/gunzip指令:gzip用于压缩文件(原来文件不保存),gunzip用于解压文件(.gz)。当我们使用gzip对文件进行压缩后,不会保留原来的文件。
- zip/unzip:zip用于压缩文件,unzip用于解压,这个在项目打包发布中很有用的(.zip格式)。
- zip常用选项:-r:递归压缩,即压缩目录。
- unzip常用选项:-d<目录>:指定解压后文件的存放目录。
- tar指令:是打包指令,最后打包后的文件是.tar.gz文件。tar [选项] xxx.tar.gz 打包的内容(功能描述:打包目录,压缩后的文件格式.tar.gz)。-c:产生.tar打包文件,-v:显示详细信息;-f:指定压缩后的文件名;-zcvf:压缩;-zxvf:解压;
Linux组的基本介绍
- 在Linux中的每个用户必须属于一个组,不能独立于组外。在linux中每个文件有所有者、所在组、其它组的概念:(1)所有者;(2)所在组;(3)其它组;(4)改变用户所在的组;
文件/目录的所有者
- 一般为文件的创建者,谁创建了文件,就自然的称为该文件的所有者。
- 指令:ls -ahl。
- groupadd police,useradd -g police tom,passwd tom
- 修改文件所有者:chown 用户名 文件名
- 组的创建:gropadd
文件/目录所在组
- 当某个用户创建了一个文件后,默认这个文件的所在组就是该用户所在的组。
- 查看文件/目录所在组:ls -ahl
- 修改文件所在组:chgrp 组名 文件名
其它组
- 除文件的所有者和所在组的用户外,系统的其它用户都是文件的其它组。
改变用户所在组
- usermod -g 组名 用户名
- usermod -d 目录名 用户名:改变该用户登录的初始目录
权限的基本介绍
- 文件类型:-:普通文件,d:目录,l:软链接,c:字符设备[键盘、鼠标],b:块文件[硬盘]
- 文件类型 文件所有者权限 文件所在组的权限 文件的其它组的用户的权限
- 如果是文件表示硬链接的数,如果是目录则表示该目录的子目录个数。
- 如果是目录会显示4096
- -rwxrw-r-- 1 root 1213 Feb 2 09:39 abc:(1)第0位确定文件的类型;(2)第1-3位确定所有者(该文件的所有者)拥有的该文件的权限;(3)第4-6位确定所属组(同用户组的)拥有该文件的权限;(4)第7-9位确定其它用组拥有该文件的权限。
- rwx作用到文件:r:可读;w:代表可写,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写的权限,才能删除该文件;x:代表可执行。
- rwx作用到目录:r:代表可读;w:代表可写,目录内创建+删除+重命名目录;x:代表可执行。
- r、w、x可以用数字来表示:r=4, w=2, x=1。
修改权限-chmod
- 通过chmod指令,可以修改文件或者目录的权限。
- 第一种方式:+、-、=变更权限;u:所有者;g:所有组;o:其他人;a:所有人(u、g、o的总和);
- (1)chmod u=rwx, g=rx, o=x 文件目录名
- (2)chmod o+w 文件目录名
- (3)chmod a-x 文件名
修改文件所有者-chown
- chown newowner:newgroup file
- -R:如果是目录,则使其下所有的文件和目录递归生效。
crond定时任务调度
- crontab进行定时任务设置。
- 任务调度:是指系统在某个时间执行的特定的命令或程序。
- 任务调度分类:1、系统工作:有些重要的工作必须周而复始地执行。如冰毒扫描等。2、个别用户工作:个别用户可能希望执行某些程序,比如对mysql数据库的备份。
- 基本语法:crontab [选项]
- 常用选项:-e:编辑;-l:显示;-r:删除;
- *****:第一个代表第几分钟、第二个代表第几小时、第三个代表一个月中的第几天、第四个代表一年中的第几月、第五个代表一周当中的星期几。
- (1)crontab -e;(2)/1*** ls -l /etc >> /tmp/to.txt;(3)保存退出
- 先编写一个文件/home/mytask1.sh:date >> /tmp/mydate;(2)给mytask1.sh一个可执行权限;(3)crontab -e;(4)*/1 * * * * /home/mytask1.sh
- crontab -r:终止任务调度
- crontab -l :显示
- service crond restart
分区的基础知识
- mbr分区:最多支持四个主分区、系统只能安装在主分区、扩展分区要占一个主分区、MBR最大只支持2TB,但拥有最好的兼容性。
- gtp分区:支持无限多个主分区(但操作系统可能限制,比如windows下最多128个分区)、最大支持18EB的大容量、windows7 64位以后支持gtp。
Linux分区
- 对Linux来说,无论有几个分区,分给哪一目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构,Linux中每个分区都是用来组成整个文件系统的一部分。
- Linux采用一种叫“载入”的处理方法,它的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录和一个目录联系起来。这时要载入的一个分区将使它的存储空间在一个目录下获得。
- mount:挂载
- umount:卸载
- Linux硬盘分为IDE硬盘和SCSI硬盘,目前基本是SCSI硬盘。
- IDE:hdx~
- SCSI:sdx~
- lsblk -f:查看系统的分区和挂载的情况。