2014/10/17 这次真的该用点心了! 要不然明年的我该怎么办!
! linux
['li:nэks] 这个词 中文的翻译是 ‘
李呢克斯’ ,不知道你有没有读对! (反正我一直都是这样读的*-*..)
!
RHEL是RedHat公司推出的一款针对企业的发行版Linux,可以免费下载使用. RHEL在没有获得授权的情况下不能使用yum工具
对于学习linux ,当然很大部分都是为了找一份工作,那么 对于国内的大多数 的大公司 还是小公司来说,centos 无疑是最好的选择:
国内多数企业使用RHEL搭建服务器
目前使用centos的企业越来越多
centos和RHEL几乎一样,而且Centos有免费的yum工具可以使用
centos目前已经加入RedHat公司,且依然完全免费
要习惯与用 命令行模式,命令行是Linux系统正常运行的核心,也是专业Linux系统工程师必须掌握的技能(你不能再网络情况不好的情况小去开图形界面吧! 那么你还能运行啥程序)
要习惯与备份数据(古话说的好,习惯为自然,要先习惯在自己的电脑上去备份,那么将来你在服务器上就不会“顺手”删文件而恢复不了),还有就算是在删除文件的时候 不要加 :强制 的alias,多注意一下总是没坏处的!
对于各种各样的密码,你一定会有几个是你的生日、名字、住址或者你的密码全部一致,如果是这样。还是自己修改一下吧!因为这是一般 “社工”都会用到的基本知识。
一定要记住,人有失手,马有失蹄!为了将来的幸福还是“小心驶得万年船”
对于学习内容来说,一定要多花时间,实验做的熟练了才能放过,要烂熟于心!
2014/10/20
对于我们一般在电脑上用VM安装centos的时候,总会发现分区、自定义软件包会找不到,这是因为,官方为了一些bug而屏蔽了自定义分区和自定义安装包
的功能。如想自定义分区的话,就安装图形界面哦!
关于Linux的分区!好多人在选择分区的时候都不知道该怎么去划分才好,那么有一个万能的分区方案:
*/boot分区给100M
*swap分区大小为内存的2倍(8G=>的就分内存的大小二倍,如内存大于8G,最多给16G就足够了)
*/usr/分区20G
*/ 分区给20G
*剩下的给/data分区或者随便自定义一个挂载点
Centos 6是如何启动的!
Linux系统的启动过程大致可分为五个部分:内核的引导、运行init、系统初始化、建立终端
、用户登陆系统
*内核引导 ——打开电源,bios自检,启动设备上的grub程序开始引导Linux,linux接管
CPU控制权,CPU执行Linux的核心映像代码,在内核调用中加载了init程序
*init运行 ——init 进程是系统所有进程的起点(就相当于一棵树的树根),init
最主要的功能就是准备软件执行的环境,所有的动作都要通过init的配置文件
/etc/inittab来规划,而inittab中还有默认的 runlevel(开机运行级别),linux
就是通过设定 run level来规划系统使用不同的服务来启动。
PS.inittab配置文件格式和之前老版本CentOS5或更老版本有很大不同
Runlevels 有7个级别: 0表示关机 1表示单用户 2表示没有网络的命令行级别
3命令行级别 4为保留级别 5图形化级别 6为重启
*系统初始化 ——初始化就是执行/etc/init下的各个配置文件
“System initialization is started by /etc/init/rcS.conf” 系统初始化会先执行/etc/init/rcS.conf 而该配置文件中又有一行 “exec /etc/rc.d/rc.sysinit” 所以,重心又转移到了这个rc.sysinit文件上,做如下工作:激活交换分区,检查磁盘,加载硬件模块以及其它一些需要优先执行任务。当rc.sysinit程序执行完毕后,将返回init继续下一步,又到了/etc/init/rc.conf, 在这个配置文件里,最关键的一行为 “exec /etc/rc.d/rc $RUNLEVEL” 而$RUNLEVEL是在/etc/inittab中定义的(最下面的那一行),以/etc/inittab为例,表示$RUNLEVE=3, 所以此时会执行 “/etc/rc.d/rc 3” 此时实际上是把/etc/rc.d/rc3.d/ 下的脚本都给执行了,随后/etc/rc.d/rc.local也会被执行,通常我们会把开机启动执行的命令放到这个脚本下。服务执行完,系统初始化也就完成了
*建立终端
终端是由配置文件/etc/init/tty.conf,/etc/init/serial.conf和/etc/sysconfig/init 等配置
文件来完成。在2、3、4、5的运行级别中都以respawn方式运行mingetty程序,mingetty程序能打开
终端、设置模式。然后就是显示登陆界面
*用户登陆界面
Linux的账号验证程序是login,login会接受mingetty传来的用户名作为用户名参数
随后,login会对用户名分析:如用户名不是root,且存在"/etc/nologin"文件,login 将
输出nologin文件的内容,然后退出(用来系统维护时防止非root用户登陆)
"/etc/securetty"中登记了终端才允许root用户登陆,如不存在这个文件,则root可以再任何
终端上登陆
"/etc/usertty"文件用于对用户作出附加访问限制,如不存在这个文件,则没有其他限制
分析完用户之后,login将搜索"/etc/passwd"以及"/etc/shadow"来验证密码以及设置账户的
信息,比如:主目录是什么、那种shell.如没指定主目录,将默认为根目录;没指定shell
将默认为"/bin/bash"
login程序成功后,会向对应的终端输出最近一次登陆的信息("/var/log/lastlog"中有记录)
并检查用户是否有新邮件(在"/usr/spool/mail"的对应户名目录下)。然后开始设置各种
环境变量:对于bash,系统先找"/etc/profile"脚本文件,并执行;如用户的主目录中
存在 .bash_profile文件,就执行它,然后调用其他配置文件...
图形界面与命令行界面切换
Linux预留了六个命令窗口终端机,默认登陆的是第一个串口(tty1),其他的是tty2-6,
切换命令——Ctrl + Alt +F1~F6(图形界面下)
Ctrl + Alt + F7 (命令行 切换到图形)
Alt + Shift + Ctrl + F1 ~ F6 (VM 图形切命令行)
Alt + Space + F1 ~ F6 (VM 命令窗口切换)
快捷键
Ctrl + C 终止当前命令的快捷键
Tab: 命令自动补全
Ctrl + D:退出当前终端,也可输入exit
Ctrl + Z:暂停当前进程(暂停后,可用fg恢复)
Ctrl + L:清屏,使光标移动到第一行
查询帮助的文档,----man
man对于在大多数的情况下,还是蛮好的了,通用命令查看器
格式 ——man 命令 (按q 退出)
Linux 系统目录结构
Linux最重要的一个命令 ——ls
"ls"-list的缩写,作用是列出指定目录或者文件
讲解.登陆系统,当前命令窗口输入: ls /
^不加任何选项也不跟目录名或者文件名--会列出当前目录下的文件和目录,不包隐藏文件
^加"-a"选项不加目录名或者文件名--列出当前目录下所有文件和目录,含隐藏文件
^加"-l"选项不加目录名或者文件名--列出当前目录下除隐藏文件外的所有文件盒目录的详细
信息,包含其权限等。
^后面不加选项只跟文件名--列出该文件(通常加上一个"-l" 查看文件详细信息)
^后面不加选项只跟目录名--会列出指定目录下的文件盒目录
2014/10/21
Linux的目录结构
/bin bin为 Binary的缩写。这目录存放最常用的命令
/boot 存放启动Linux时使用的一些核心文件,包括一些链接文件以及镜像文件
/dev dev是Device的缩写。该目录下存放的是Linux的外部设备,在Linux中访问设备的方式
和访问文件的方式是相同的
/home用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账户
命名的
/lib 这个目录里存放着系统最基本的动态链接共享库,作用类似于Windows里的DLL文件。几乎所有
的应用程序都需要用到这些共享库
/lost+found 只是在非法关机后,这里就会存放一些文件
/media Linux系统会自动识别一些设备,例如U盘、光驱等到,识别后,Linux会把识别的设备
挂载到这个目录下
/mnt 系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上
然后进入该目录就可以查看光驱里的内容
/opt 这里放主机额外安装软件所摆放的目录。默认是空的
/proc 虚拟目录,为系统内存的映射,可通过这个目录来获取系统信息。这个目录的内容在内存里
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
屏蔽主机,让其他主机无法ping该主机
/root 该目录为系统管理员(超级管理员)
/sbin s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序
/selinux 该目录是Redhat/CentOS所特有目录,Selinux是一个安全机制,类似于windows的防火墙
/srv 该目录存放一些服务启动之后所有提取的数据
/sys 该目录下安装了2.6内核中新出现的一个文件系统(sysfs)
sysfs文件系统集成了3种文件系统信息:针对进程信息的proc文件系统、针对设备的
devfs文件系统以及针对伪终端的devfs文件系统。是内核设备树的一个直观反映
当一个内核对象被创建的时候,对应的文件盒目录也在内核对象子系统种被创建
/tmp 这个目录是用来存放临时文件
/usr 存放应用程序和文件都放在这个目录下,类似windows下的program files目录
/usr/bin 系统用户使用的应用程序
/usr/sbin 超级用户使用的比较高级的管理程序和系统守护程序
/usr/src 内核源代码默认的放置目录
/var 存放不断扩充着的东西,比如 各种日志文件
关于运行的服务器正常关机
要关机,首先要保证当前系统中没有其他用户在线。可下达who指令,要看网络的联机状态
可以下达netstat -a 这个指令,看背景执行的程序可以执行ps -aux
正常的关机流程为:sync -> shutdown -> reboot -> halt
^sync 将数据由内存同步到硬盘中
^shutdown 关机指令,详细可以 man shutdow
^reboot 就是重启 等同于 shutdown -r now
^halt 关闭系统 等同于shutdown -h now 和poweroff
对于忘记root密码,一直都是很头疼的问题
解决方法:*重启系统,3秒内,按一下回车键。你会看到系统的基本信息如
GNU GRUB version 0.97 .......
CentOS (2.6.32-358.el6.i686) --选择这一行,可以有几种选择
输入‘e'会在启动前编译命令行;输入‘a’会在启动前更
改内核中的一些参数;输入‘c'则会进入命令行。我们选 ‘e’
*进入单用户模式
输入‘e’,界面转变,显示:
root (hd0,0)
kernel /vmlinuxz-2.6.32-358.el6.i686 ro root=UUID=... --选中,输入‘e'
initrd /initramfs-2.6.32-358.el6.i686.img
会提示:<_NO_DM rhgh quiet
在后面加个‘single’或‘1’或‘s'
<_NO_DM rhgh quiet single
然后先按回车然后 按‘b'启动就进入单用户了
*修改root密码 (passwd root)
*然后重启之后 ,用新的密码登陆就可以了
系统安装盘的救援模式
救援模式即 rescue,当系统无法进入的情况。如grub损坏或者某一个配置文件修改出错
*光盘启动,F2进入bios,方向键选择“boot”,让CD-ROM Drice 移到最上面,F10保存
*光盘启动后,选择“Rescue installed system”
^语言默认。
^键盘类型,默认
^Rescue Method默认
^这里的选项询问是否在rescue模式下,是否开启网络模式(随便选)
^提示Rescue 环境自动找到已经安装的Linux系统,并挂载到/mnt/sysimage下
^回车,提示linux系统挂载到了"/mnt/sysimage".如要获得root环境,
执行"chroot /mnt/sysimage" 回车
^继续回车
^提示框,三个模式:shell -直接进入命令行 fakd 诊断模式;reboot 直接重启
进入root环境
^到这里,就相当于windows中的pe,要想会太linux系统上,需执行:
bash-4.1# chroot /mnt/sysimage
sh-4.1#
2014/10/22
Linux系统的远程登录
Linux的服务器都是会要远程登录的(因为一般都会放在IDC机房).Linux系统中通过ssh服务
实现的远程登录功能。默认开启了22端口(这个服务是默认安装并开启的)
ssshd服务的配置文件为/etc/ssh/sshd_config,可修改改文件,配置自己想要的sshd服务
如你本地计算机为windows系统,那么远程linux系统需要一个终端软件,常见的有:
SecureCRT,Putty,SSH,Secure Shell
Linux IP的配置
*自动获取IP --当你本地的IP是自动获取的,那么你安装的vm虚拟机中通过命令也能自动获取
[root@localhost ~]# dhclient --这个命令可查看系统有几块网卡和网卡的IP
*手动配置IP --如本地IP是固定的,只能手动在配置文件中更改
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
在最后添加 IPADDR=192.168.1.121 (这个IP一定要和你本机上的IP在一个网段)
NETMASK=255.255.255.0 (如没特殊要求一般都是这个)
GATEWAY=192.168.1.220 (这个填写你VM8上的IP地址就好)
把 ONBOOT=nO 更改为 ONBOOT=yes
“BOOTPROTO=dhcp”改为 BOOTPROTO=none
然后重启网络服务:[root@localhost ~]# service network restart
Shutting down interface eth0: [ OK ]
Shutting down interface eth1: [ OK ]
*设置DNS
运行 vi /etc/resolv.conf,打开之后输入:nameserver 192.168.1.254 (本机IP)
重启之后可以使用 [root@localhost ~]# ifconfig eth0
关于秘钥认证机制远程登录Linux
现在的网络是越来越不安全了,所以,如果有一个密钥的话,会安全好多
SSH服务支持一种安全认证机制,即密钥认证。
*下载生产密钥工具 --
*生成密钥对--双击puttygen.exe 右下角"Number of bits in a generated key" 把"1024"
改为"2048",然后点击"Generate".就生成密钥
*保存密钥-- 点"Save private key",选择一个存放路径,定义一个名字,保存
*复制公钥到Linux--在生成密钥的窗口,在"Key"的下方有一段长长的字符串(这就是公钥)
复制下来,粘贴到Linux的 /root/.ssh/authorized_keys(本身不存在,需创建)文件里
[root@localhost ~]# mkdir /root/.ssh
[root@localhost ~]# chmod 700 /root/.ssh
*关闭Selinux--不关闭selinux,使用密钥登陆会提示"Server refused our key"
[root@localhost ~]# setenforce 0 (暂时关闭)
vi /etc/selinux/config
把中间的SELINUX=enforcing 改为 SELINUX=disabled(永久关闭)
*设置putty通过密钥登陆-- 打开putty.exe 点击保存好的session-右侧 load -左边SSH前的+
-Auth-右侧"Private key file for authertication-长条框的Browse-刚刚保存的
密钥-再回到左侧,点一下最上面的“Session”右侧点击“Save”
*使用密钥登陆Linux-保存好session,点右下方的“Open”登陆
Linux文件与目录管理
Linux 中一切皆文件
绝对路径:路径的写法一定由根'/'写起
相对路径:路径的写法不是由根目录'/'写起
命令:cd (只能跟目录)
用于变更用户所在目录的,如后面什么都不跟,则返回当前用户的根目录
pwd:打印出当前所在目录
./ 表示当前目录 ../表示当前目录的上一级目录
mkdir:(make directory) mkdir [-mp] [目录名称]
-m 指定要创建目录的权限
-p 当要创建的目录路径不存在的时候,可直接创建路径(当要创建的目录存在时,也不报错)
rmdir:删除空目录,可跟多个目标(用空格分隔)
rm: -r 删除目录,等同于rmdir
-f 强制删除 不提示是否要删除
环境变量 PATH
which:查找某个命令的绝对路径
对于各种命令,都是有自己相对于的路径,因为有环境变量PATH,那么我们在使用
的时候,就不需要打出命令的绝对路径
[root@localhost ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
就是说,我们使用的命令都在上面PATH环境里放着
PS.如果把环境变量中的一些路径放到/root下时,再去使用命令就会提示找不到
解决方法:#PATH=$PATH:/root
另一种方法就是绝对路径:#/root/command
cp:格式 cp [选项] [来源文件] [目的文件]
-r:如果要cp一个目录,必须要加-r选项,和“rm”类似
-i:安全选项,如遇见一个存在的文件,会询问是否覆盖
mv: move的缩写。格式 mv [选项] [源文件] [目标文件]
-i:和cp de i 一样,当目标文件存在时询问是否要覆盖
该命令有几种情况:^目标文件是目录,且目标文件不存在
^目标文件是目录,目标文件存在
^目标文件不是目录不存在
^目标文件不是目录存在
2014/10/24
cat:查看一个文件的内容并显示在屏幕上
-n 查看文件时,把行号也显示到屏幕上
-A 显示所有东西出来,包括特殊字符
tac:和“cat”一样,不过是倒序显示,即先显示最后一行
more:查看文件内容,文件内容太多,一屏幕看不完,可以空格键看下一屏,“q”键退出
less:和more一样,不同的是less可以上、下翻,空格键也可以翻页,“j”可向下移动
“k”向上移动
PS.当在使用more和less查看文件时,可输入'/'在输入word回车,可查证这个world
如world多重复,可“n”下一个 。“?”后输入world也可查找,不同的是,它
是向上搜索
head: 直接跟文件名,则显示文件的前十行。-n 显示前n行
tail:和head一样,不一样的是-n 显示最后n行 ,-f 动态的显示文件的最后十行
文件的所属主以及所属组
每一个Linux目录或者文件,都会有一个所属主和所属组。所属主,即文件的所有者
所属组,即该文件所属主所在的一个组
Linux 文件属性
当用ls -l 来查看文件的时候,我们会看到好多的选项,具体的意思是什么呢?
[root@localhost ~]# ls -l
total 4640
drwxr-xr-x. 2 root root 4096 Oct 23 17:38 123
第一列,包含有该文件的文件类型和所属主、所属组以及其他用户对该文件的权限
第一位字符用来描述该文件的类型:
‘d'表示该文件为目录;
‘-’表示未pt文件
‘|’表示该文件为链接文件
‘b'表示该文件为块设备,
‘c'表示该文件为串行端口设备,如键盘
‘s'为套接字文件,用于进程间通信
第二列,表示为连接占用的节点(inode)
第三列,表示该文件的所属主
第四列,表示该文件的所属组
第五列,表示该文件的大小
第六列、7列、8列为该文件最近的修改日期,分别为月份日期以及时间
第九列,文件名
10/29 Linux系统用户及用户组管理
root的家目录是/root,普通用户的家目录则为/home/username,这个字段是可以定义的,
比如建立一个普通用户test1,要想让test1的家目录在/data目录下,只要修
改/etc/passwd文件中的test1那行中的该字段为/data即可
当一个用户组里有用户的时候,groupdel是不能直接删除用户组的
mkpasswd _用来生产密码
yum install -y expect
命令passwd:只有root才可以修改其他账户的密码,普通账户只能修改自己的密码
mkpasswd:生成密码的一个工具
关于命令 SU 在切换用户的时候它后面可以加“—”
“—”这个字符的作用是,加上后会初始化当前用户的各种环境变量
sudo:su 是可以切换用户身份的,为了不让普通用户都能切换到root身份,产生了sudo,
sudo执行需要密码,这个密码是用户自己的密码而非 root密码
对于普通用户要使用sudo,需要root事先设定,即,使用visudo命令去编辑
/etc/sudoers.(visudo可 yum install -y sudo)
对于默认root能用sudo,是因为这文件有“root ALL=(ALL) ALL”,如在这一行下
加入“test ALL=(ALL) ALL”,就让test拥有了sudo的权利
也可以,把用户加入组“# %wheelALL=(ALL) ALL”去掉前面的:# 就让wheel这个
组都拥有了sudo权限
keepass 是一个密码管理工具
Linux磁盘管理
命令:df——查看已挂在磁盘的总容量、使用容量、剩余容量等,不加参数默认是按“K”输出
-h:输出按“G”输出
/dev/shm 为 内存挂载点
命令:du——用来查看某个目录或文件所占空间大小
“-a”全部文件与目录大小都列出来,如不加任何选项和参数只列出目录的大小
如du不指定单位,默认输出单位为 K
10/31
Linux 中最多只能创建4隔主分区,要想创建更多的分区,只能建立 extended分区
前三个主分区,第四个扩展分区时,空间要全部划分给扩展(以免浪费空间)
PS.扩展分区分完后,再划分心的分区时是在已经划分的扩展分区里来分的
(注:扩展分区不能格式化,只能继续分区——也就是逻辑分区)
逻辑分区的id从5开始,因为前四个为主分区和扩展分区
格式化磁盘分区
命令:mke2fs,mkfs.ext2,mkfs.ext3,mkfs.ext4
mke2fs常用的选项:
-b:分区时设定每个数据区块占用空间大小,目前支持1024,2048以及4096bytes
-i:设定inode的大小
-N:设定inode数量,有时使用默认的inode数不够用,所有自定设定inode数量
-c:格式化前先检测一下磁盘是否有问题(加这个选项会非常慢)
-L:预设该分区的标签label
-j:建立ext3格式的分区,如使用mkfs.ext3就不用这个项
-t:用来指定什么类型的文件系统,ext2 ext3 ext4 都ok
ext文件系统默认块大小为4096也就是4K,格式化的时候,指定块大小为1024 2048 4096
在格式化的时候,指定块能超过4096,但是就是不能正常正常挂载
当块大于4096的时候,可以直接输入“y”强制格式化
命令:e2label查看或修改分区的标签
挂载/卸载磁盘
在挂载某个分区前需要先建立一个挂载点,该挂载点是以目录的形式出现。如一个分区被挂载
到这个点上(目录),那么再往这个目录写数据,都会写到该分区中(挂载分区前,挂载
点(目录)下必须是空目录,如原先有数据的,则会看不到)
命令:mount ,不加选项则显示当前系统已经挂载的所有分区,及分区文件系统的类型,挂载点等
/etc/fstab
该文件时系统启动时,需挂载的各个分区。第一列是分区的标识,可写分区的LABEL,也可写
分区的UUID或分区名;第二列是挂载点;第三列是分区的格式;第四列是mount的一些挂载
参数(一般都是默认);第五列的数字标识是否被dump备份,是的就是1;第六列开机时
是否自检磁盘。1、2标识自检,0不自检 对于centos\redhat中,可能 1比2 的优先级高
阅读(1297) | 评论(0) | 转发(0) |