- Linux 系统安装
1.1. 文本界面的安装
首先安装虚拟机,完成后向虚拟机中添加镜像文件。然后在设置网卡,选择桥接。在系统中设置启动顺序硬盘,光驱。 软驱可以删除!
接着启动虚拟机,安装Linux。按照提示安装(网络上很多文档)。
安装完成之后,首先进入的是图形界面,如想要进入文本界面,按ctrl+alt+f2。
1.2. 图形界面的安装
安装参考上面,切回文本界面,按ctrl+alt+f1 。
- Linux 基础支持
2.1. Linux的开机
开机->引导->载入内核并执行->运行init进程->执行/etc/rc.d下面对应的Init级别的启动脚本->启动/etc/rc.local脚本->载入控制台->登录
2.2. Linux的关机
Linux centos重启命令:
1、reboot
2、shutdown -r now 立刻重启 (root用户使用)
3、shutdown -r 10 过10分钟自动重启 (root用户使用)
4、shutdown -r 20:35 在时间为20:35时候重启 (root用户使用)
如果是通过shutdown命令设置重启的话,可以用shutdown -c命令取消重启
Linux centos关机命令:
1、halt 立刻关机
2、poweroff 立刻关机
3、shutdown -h now 立刻关机 (root用户使用)
4、shutdown -h 10 10分钟后自动关机 (root用户使用)
如果是通过shutdown命令设置关机的话,可以用shutdown -c命令取消重启
2.3. Linux系统的运行级别
运行级别0:系统停机状态,默认运行级别不能设为0,否则不能正常启动
运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆
运行级别2:多用户状态(没有NFS)
运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式
运行级别4:系统未使用,保留
运行级别5:X11控制台,登陆后进入图形GUI模式
运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常 启动
用文本编辑器修改 /etc/inittab文件,把代码:
id:5:initdefault: 这一行,修改成代码:id:3:initdefault:
保存后就reboot重起,系统就默认起动到字符界面(运行级别3)。
- Linux 常用命令培训
3.1. ls
ls 列出文件名
ls -a 列出所有文件,包括隐藏文件
ls -l 列出所有文件详细信息
ls -t 按时间列出文件
3.2. cat
3.2.1. 一次显示整个文件 :cat filename
3.2.2. 创建一个文件(只能创建,不能编辑):cat >filename
3.2.3. 将几个文件合并成一个文件:cat file1 file2 >file
参数:
-n 或 --number 对行数编号
-b 或 --number -nonblank 和 -n相似,但对空白行不编号
-s 或 --squeeze -blank 遇到连续两行以上的空白行换成一行空白行
例:
把file1的内容加上行号后输入file2文件内
cat -n file1 > file2
把file1 和file2 的内容加上行号(空白不加)后输入file3
cat -b file1 file2 >file3
把file1 和file2 的内容加上行号后追加到file3(已存在且有内容)
cat -b file1 file2 >>file3
把test.txt文件扔进垃圾桶,赋空值test.txt
cat /dev/null > /etc/test.txt
3.3. head
用来显示文件的开头至标准输出中,默认打印前十行: head 参数 文件名
参数:
-q 隐藏文件名
-v 显示文件名
-c 字节数 显示字节数
-n 行数 显示行数
3.4. tail
用于显示文件末尾内容,常用于日志文件的查看:tail 参数 文件名
参数:
-f 循环读取
-q 不显示处理信息
-v 显示详细处理信息
-c 字节数 显示字节数
-n 行数 显示行数
3.5. chkconfig
用来更新(启动或停止)和查询系统服务的运行级信息。谨记chkconfig不是立即 自动禁止或激活一个服务,它只是简单的改变了符号连接。
参数:
chkconfig --list name:显示所有运行级系统服务的运行状态信息。如果指定了 name,那么只显示指定的服务在不同运行级的状态。
chkconfig --add name:增加一项新的服务。chkconfig确保每个运行级有一项启 动(S)或者杀死(K)入口。如有缺少,则会从缺省的init脚本自动建立。
chkconfig --del name:删除服务,并把相关符号连接从/etc/rc[0-6].d删除。
chkconfig --level [levels] name on/off/reset:设置某一服务在指定的运行级是被 启动,停止还是重置。
例:
chkconfig --level 35 mysqld on 设定mysqld在等级3和5为开机运行服务, --level 35表示操作只在等级3和5执行,on表示启动,off表示关闭
3.6. mkdir
创建目录,即文件夹,且不能和所在的父文件夹中的文件同名!
参数:
-m,–mode 设定权限,如777,代表的是rwxrwxrwx
-p,–parents 如果父文件夹不存在,则可以一起连级创建目录
-v,–verbose 创建新目录都显示信息
3.7. rm
删除一个目录中一个或多个文件或目录。但一般可以将文件恢复原装
参数:
-f, --force 忽略不存在的文件,从不给出提示。
-i, --interactive 进行交互式删除
-r, -R, --recursive 将参数中列出的全部目录和子目录均递归地删除。
-v, --verbose 详细显示进行的步骤
3.8. cp
将源文件复制到目标文件,或将多个文件复制到目标目录
参数:
-a 最常用!保留原文件属性的前提下复制文件
-i 系统默认的参数 cp =cp -i
3.9. mv
用来移动文件或将文件重命名,常用来备份文件或者目录:mv 参数 file1 file2
参数:
-b :若需覆盖文件,则覆盖前先行备份。
-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
-u :若目标文件已经存在,且 source 比较新,才会更新(update)
3.10. vimdiff
同时打开两个或多个文件,进行比较。操作与vim类似
3.11. useradd
添加新的用户帐号:useradd 参数 用户名
参数:
-c comment 指定一段注释性描述。
-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可 以创建主目录。
-g 用户组 指定用户所属的用户组。
-G 用户组,用户组 指定用户所属的附加组。
-s Shell文件 指定用户的登录Shell。
-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他 用户的标识号。
3.12. groupadd
添加新的用户组:groupadd 参数 用户组名
参数:
-g GID 为用户组指定新的组标识号。
-o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组 的GID相同。
-n新用户组 将用户组的名字改为新名字 (用于groupmod)
3.13. su
su 和su - 命令最大的本质区别就是:前者只是切换了root身份,但Shell 环境仍然是普通用户的Shell;而后者连用户和Shell环境一起切换成root身 份了。只有切换了Shell环境才不会出现PATH环境变量错误。su切换成root 用户以后,pwd一下,发现工作目录仍然是普通用户的工作目录;而用su -命 令切换以后,工作目录变成root的工作目录了。用echo $PATH命令看一下su 和su -以后的环境变量有何不同。
3.14. netstat
用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。
参数:
-a (all)显示所有选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服務状态
-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令。
提示:LISTEN和LISTENING的状态只有用-a或者-l才能看到
3.15. history
用于显示历史指令记录内容。
3.15.1.1. !n 快速执行命令历史中第n条命令
3.15.1.2. !! 最后一条命令
3.15.1.3. !-n 倒数第n条命令,并显示该命令内容
3.15.1.4. !字符串 执行最近一次一字符串开头的命令
3.15.1.5. Alt+. 调用上一条命令的最后一个参数
3.15.1.6. export HISTCONTROL=ignorespace 忽略空格
ignoredups 连续重复的命令只显示一次
ignoreboth 以上两种都包含
3.16. chown
改变文件的拥有者和群组:chown 参数 [所有者]:[群组] 文件或文件夹
参数:
-c 显示更改的部分的信息
-f 忽略错误信息
-h 修复符号链接
-R 处理指定目录以及其子目录下的所有文件
-v 显示详细的处理信息
-deference 作用于符号链接的指向,而不是链接文件本身
3.17. chmod
用于改变文件或目录的访问权限:chmod 参数 权限 文件或文件夹
或 chmod [who][+|-|=]权限 文件或文件夹
参数:
-c 当发生改变时,报告处理信息
-f 错误信息不输出
-R 处理指定目录以及其子目录下的所有文件
-v 运行时显示详细处理信息
例:chmod u+x test.txt 给test.txt所有者增加可执行权限
3.18. lsof
用于查看进程打开的文件,打开文件的进程,进程打开的端口。找回或删除的 文件,是十分方便的系统监视工具:lsof 参数 文件(任意文件或文件夹)
参数:
-a 列出打开文件存在的进程
-c<进程名> 列出指定进程所打开的文件
-g 列出GID号进程详情
-d<文件号> 列出占用该文件号的进程
+d<目录> 列出目录下被打开的文件
+D<目录> 递归列出目录下被打开的文件
-n<目录> 列出使用NFS的文件
-i<条件> 列出符合条件的进程。(4、6、协议、:端口、 @ip )
-p<进程号> 列出指定进程号所打开的文件
-u 列出UID号进程详情
-h 显示帮助信息
-v 显示版本信息
3.19. crontab
通过crontab 命令,我们可以在固定的间隔时间执行指定的系统指令或 shell script脚本。时间间隔的单位可以是分钟、小时、日、月、周及以上的任意组 合。这个命令非常设合周期性的日志分析或数据备份等工作。
格式:
crontab [-u user] file
crontab [-u user] [ -e | -l | -r ]
参数:
-u user:用来设定某个用户的crontab服务,例如,“-u ixdba”表示设定 ixdba用户的crontab服务,此参数一般有root用户来运行。
file:file是命令文件的名字,表示将file做为crontab的任务列表文件并载 入crontab。如果在命令行中没有指定这个文件,crontab命令将接受 标准输入(键盘)上键入的命令,并将它们载入crontab。
-e:编辑某个用户的crontab文件内容。如果不指定用户,则表示编辑当 前用户的crontab文件。
-l:显示某个用户的crontab文件内容,如果不指定用户,则表示显示当 前用户的crontab文件内容。
-r:从/var/spool/cron目录中删除某个用户的crontab文件,如果不指定用 户,则默认删除当前用户的crontab文件。
-i:在删除用户的crontab文件时给确认提示。
3.20. ifconfig
用于查看和配置网络设备(电脑重启后失效):ifconfig [网络设备] [参数]
参数:
up 启动指定网络设备/网卡。
down 关闭指定网络设备/网卡。
arp 设置指定网卡是否支持ARP协议。
add 给指定网卡配置IPv6地址
del 删除指定网卡的IPv6地址
mtu<字节数> 设置网卡的最大传输单元 (bytes)
netmask<子网掩码> 设置网卡的子网掩码。
例:
ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE //修改MAC地址
ifconfig eth0 192.168.120.56 netmask 255.255.255.0 broadcast 192.168.120.255 //修改ip、子掩码、个广播地址
3.21. vim文本编辑器
vi与vim有3个模式:插入模式、命令模式、低行模式。
插入模式:在此模式下可以输入字符,按ESC将回到命令模式。
命令模式:可以移动光标、删除字符等。
低行模式:可以保存文件、退出vi、设置vi、查找等功能(低行模式也可 以看作是命令模式里的)。
3.21.1. 打开文件、保存、关闭文件(命令模式下使用)
vi filename 或vim filename //打开filename文件
:w //保存文件
:w a.txt //保存至a.txtt文件
:q //退出编辑器,如果文件已修改请使用下面的命令
:q! //退出编辑器,且不保存
:wq //退出编辑器,且保存文件
3.21.2. 插入文本或行(命令模式下使用,执行下面命令后将进入插入模式,按ESC键可退出插入模式)
a //在当前光标位置的右边添加文本
i //在当前光标位置的左边添加文本
A //在当前行的末尾位置添加文本
I //在当前行的开始处添加文本(非空字符的行首)
O //在当前行的上面新建一行
o //在当前行的下面新建一行
R //替换(覆盖)当前光标位置及后面的若干文本
J //合并光标所在行及下一行为一行(依然在命令模式)
3.21.3. 移动光标(命令模式下使用)
1、使用上下左右方向键
2、命令模式下:h 向左、j 向下 、k 向上、l 向右。
Enter 移动到下一行首、- 移动到上一行首。
3.21.4. 删除、恢复字符或行(命令模式下使用)
x //删除当前字符
nx //删除从光标开始的n个字符
dd //删除当前行
ndd //向下删除当前行在内的n行
u //撤销上一步操作
U //撤销对当前行的所有操作
3.21.5. 搜索(命令模式下使用)
/string //向光标下搜索string字符串
?string //向光标上搜索string字符串
n //向下搜索前一个搜素动作
N //向上搜索前一个搜索动作
3.21.6. 跳至指定行(命令模式下使用)
n+ //向下跳n行
n- //向上跳n行
nG //跳到行号为n的行
G //跳至文件的底部
3.21.7. 设置行号(命令模式下使用)
:set nu //显示行号
:set nonu / nu! //取消显示行号
3.21.8. 复制、粘贴(命令模式下使用)
yy //将当前行复制到缓存区,也可以用 "ayy 复制,"a 为缓冲区,a 也可以替换为a到z的任意字母,可以完成多个复制任务。
nyy //将当前行向下n行复制到缓冲区,也可以用 "anyy 复制,"a 为缓 冲区,a也可以替换为a到z的任意字母,可以完成多个复制任务。
yw //复制从光标开始到词尾的字符。
nyw //复制从光标开始的n个单词。
y^ //复制从光标到行首的内容。 VPS侦探
y$ //复制从光标到行尾的内容。
p //粘贴剪切板里的内容在光标后,如果使用了前面的自定义缓冲 区,建议使用"ap 进行粘贴。
P //粘贴剪切板里的内容在光标前,如果使用了前面的自定义缓冲 区,建议使用"aP 进行粘贴。
3.21.9. 替换(命令模式下使用)
?/old/new //用new替换行中首次出现的old
?/old/new/g //用new替换行中所有的old
:n,m s/old/new/g //用new替换从n到m行里所有的old
:%s/old/new/g //用new替换当前文件里所有的old
3.21.10. 编辑其他文件
:e otherfilename //编辑文件名为otherfilename的文件。
3.21.11. 修改文件格式
:set fileformat=unix //将文件修改为unix格式,如win下面的文本文件 在linux下会出现^M。
3.22. grep
用于过滤或搜索特定字符。可使用正则表达式多种命令配合使用:
grep 参数 正则表达式 (grep [option] pattern )
参数:
[options]主要参数:
-c:只输出匹配行的计数。
-I:不区分大 小写(只适用于单字符)。
-h:查询多文件时不显示文件名。
-l:查询多文件时只输出包含匹配字符的文件名。
-n:显示匹配行及 行号。
-s:不显示不存在或无匹配文本的错误信息。
-v:显示不包含匹配文本的所有行。
pattern正则表达式主要参数:
\: 忽略正则表达式中特殊字符的原有含义。
^:匹配正则表达式的开始行。
$: 匹配正则表达式的结束行。
<:从匹配正则表达 式的行开始。
>:到匹配正则表达式的行结束。
[ ]:单个字符,如[A]即A符合要求 。
[ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。
。:所有的单个字符。
* :有字符,长度可以为0。
3.23. tar
用来压缩和解压文件:tar [必要参数] [选择参数] [文件]
参数:
必要参数有如下:( 常用 )
-c 建立新的压缩文件
-x 从压缩的文件中提取文件
-t 显示压缩文件的内容
-z 支持gzip解压文件
-j 支持bzip2解压文件
-Z 支持compress解压文件
-v 显示操作过程
-p 保留原本文件的属性
可选参数如下:
-b 设置区块数目
-C 切换到指定目录
-f 指定压缩文件
–help 显示帮助信息
–version 显示版本信息
- Linux 环境下面软件的安装
4.1. RPM方式安装
1、找到相应的软件包,比如soft.version.rpm,下载到本机某个目录;
2、打开一个终端,su -成root用户;
3、cd soft.version.rpm所在的目录;
4、输入rpm -ivh soft.version.rpm
格式: rpm 参数 rpm包文件名
参数:(常用的组合)
-ivh:安装显示安装进度–install–verbose–hash
-Uvh:升级软件包–Update;
-qpl:列出RPM软件包内的文件信息[Query Package list];
-qpi:列出RPM软件包的描述信息[Query Package install package(s)];
-qf:查找指定文件属于哪个RPM软件包[Query File];
-Va:校验所有的RPM软件包,查找丢失的文件[View Lost];
-e:删除包
4.2. yum方式安装
1、列出所有可以安装的软件包
yum list
2、查询软件包lynx
yum search lynx
3、列出软件包信息lynx.i386
yum info lynx.i386
4、列出所有软件包信息
yum info
5、安装软件包lynx.i386
yum install lynx.i386
6、列出已经安装的软件包
yum list installed
7、列出可更新的软件包
yum list updates
8、列出所有安装,但不再Yum Repository内的软件包
yum list extras
提醒,如果想查看详细信息,请把上面list替换成info
9、更新软件包
yum update lynx.i386
10、卸载软件包lynx.i386
yum remove lynx.i386
11、清除yum缓存目录【/var/cache/yum】下的软件包
yum clean packages
12、清除yum缓存目录下的headers
yum clean headers
13、清除yum缓存目录下的所有数据
yum clean all
4.3. mount -o loop -t iso9660 /** /mydisk.iso /mnt/cdrom
挂载命令:mount [-t vfstype] [-o options] device dir
参数:
1.-t vfstype 指定文件系统的类型。
常用类型有:
光盘或光盘镜像:iso9660
DOS fat16文件系统:msdos
Windows 9x fat32文件系统:vfat
Windows NT ntfs文件系统:ntfs
Mount Windows文件网络共享:smbfs
UNIX(LINUX) 文件网络共享:nfs
2.-o options 主要用来描述设备或档案的挂接方式。
常用的参数有:
loop:用来把一个文件当成硬盘分区挂接上系统
ro:采用只读方式挂接设备
rw:采用读写方式挂接设备
iocharset:指定访问文件系统所用字符集
例:
挂载 windows 文件共享 :
mount -t smbfs -o username=admin,password=888 //ip/文件名 /mnt/samba
挂载 Linux 文件 n fs 共享 :
mount -t nfs -o rw 192.168.1.2:/usr/www /usr/www
挂载 ISO 镜像 :
mount -o loop -t iso9660 /usr/mydisk.iso /cd/cdrom/
挂载 USB 移动硬盘 :
mount -t ntfs /dev/sdc1 /root/usb
挂载 CDROM:
mount /dev/cdrom /home/ping.bao/cd
取消挂载 :
umount /dev/cdrom /home/ping.bao/cd
单用户模式重新挂载根分区 :
mount -o remount,rw /
- Linux常用技巧
5.1. 设置开机自启动。(memcached、rsync等等)
第一种方式:ln -s 建立启动软连接
在Linux中有7种运行级别(可在/etc/inittab文件设置),每种运行级别分别对应着/etc/rc.d/rc[0~6].d这7个目录
Tips:/etc/rc[06].d其实是/etc/rc.d/rc[06].d的软连接,主要是为了保持和Unix的兼容性才做此策
这7个目录中,每个目录分别存放着对应运行级别加载时需关闭或启动的服务
由详细信息可知道,其实每个脚本文件都对应着/etc/init.d/目录下具体的服务
K开头的脚本文件代表运行级别加载时需要关闭的,S开头的代表需要执行
因此,当我们需要开机启动自己的脚本时,只需要将可执行脚本丢在/etc/init.d目录下,然后在/etc/rc.d/rc*.d中建立软链接即可
[root@localhost ~]# ln -s /etc/init.d/sshd /etc/rc.d/rc3.d/S100ssh
此处sshd是具体服务的脚本文件,S100ssh是其软链接,S开头代表加载时自启动
如果需要在多个运行级别下设置自启动,则需建立多个软链接
这种方式比较繁琐,适用于自定义的服务脚本
如果系统中已经存在某些服务(比如安装apache时就会有httpd服务项),可以使用下面的两种方式
第二种方式:chkconfig
如果需要自启动某些服务,只需使用chkconfig 服务名 on即可,若想关闭,将on改为off
在默认情况下,chkconfig会自启动2345这四个级别,如果想自定义可以加上–level选项
上面我们先将sshd服务的所有启动级别关闭,然后使用–level选项启动自定义级别
Tips:–list选项可查看指定服务的启动状态,chkconfig不带任何选项则查看所有服务状态
第三种方式:ntsysv 伪图形
ntsysv和chkconfig其实是一样的,只不过加上了图形而已
启动ntsysv有两种方式,一是直接在命令行中输入ntsysv,二是使用setup命令,然后选择系统服务
默认情况下,当前运行级别为多少,在ntsysv中设置的启动服务的级别便是多少
比如,我当前的运行级别是3,那么我在伪图形界面中选择启动服务后,它的运行级别也会是3
如果想自定义运行级别可使用ntsysv --level方式
以上三种操作需要保证服务脚本文件可执行,并且要有root权限
其中,第一种方式多用于自定义脚本,第二、三种多用于系统已存在的服务,比如ftp、samba、ssh、httpd等等,并且,要做相关设置需要弄清楚运行级别的问题
5.2. Linux定时任务crontab的使用
可以先一个shell脚本的命令,然后再修改这个脚本的权限,增加一个可执行权限!
(u+x)
最后编辑一个crontab:crontab -e (操作类似vim,wq保存退出),编辑命令
公众号:工程师江湖
关注获取视频教程。