根据红帽RHEL7官方文档对centos7进行技术剖析(一)

序言:红帽7教学环境介绍 rht-vmctl命令介绍; $ rht-vmctl start desktop     启动desktop虚拟机

$ rht-vmctl view desktop            显示(查看)desktop虚拟机 $ rht-vmctl stop desktop            停止(关闭)desktop虚拟机 $ rht-vmctl reset desktop     重置desktop虚拟机(恢复到全新状态)

第一章:访问命令行 目标:用户bash shell在linux控制台进入命令      在GNOME桌面环境启用应用      使用bash功能运行命令 Bash(Bourne-Again shell)的介绍:一个命令行就是一个可以被用来想OS输入的文本接口。 # cat /etc/shells        RHEL6的默认支持的shell(前两种可登陆) /bin/sh /bin/bash /sbin/nologin /bin/tcsh /bin/csh /bin/dash 用户环境说明:(注意:#表示超级用户 $普通用户) [root@instructor ~]# su - xxb [xxb@instructor ~]$ [当前用户身份@主机名称 当前所在目录]用户身份 $su - username      切换用户身份

虚拟控制台: 用户可以通过一个终端(terminal)访问shell ctrl+alt+F(1|7)    从任何一个终端回到前一个 ctrl+alt+F(2~6)   六个虚拟控制台

Shell基础: 1.命令输入模式 输入命令必须在shell提示符之后(也就是必须在#和$之后) 格式:命令 选项 目标 ctrl+c 终止当前shell提示符的操作 选项格式:-表示选项的简称 --表示选项的全称(command -h/--help) 2.获取帮助 命令的帮助模式中[options]是选加的,<options>是必须加 如果一个命令没有--help,那就使用man(manual)进行查看帮助 manual命令格式: man+[command]                man 5 +[filename]                /string 查找字符串                q退出 GNOME 桌面: 怎样登陆,工作区,开启一个terminal,锁屏(ctrl+alt+L) 关机(poweroff/shutdown -h now/init 0) 重启(reboot/shutdown -r now /init 6)

简单命令实例: #date                 显示日期(详细使用帮助看参数) #date +%F             显示数字年月日 #date +%Y-%m-%d       显示年-月-日 #date -d +1365day     计算1365天之后的日期

#passwd               用来修改密码(后面加用户,默认为当前用户) #passwd -l username   锁定用户不能登录(-u解锁) #file /etc/passwd     查看文件类型 #head  -n /etc/passwd    查看文件的前多少行 #tail -n /etc/passwd  查看文件的后多少行

#wc /etc/passwd        统计文件的行数,单词数和字符数 #wc -l(行数) -c(字符数) -w(单词数) 注意:一个中文占三个字节数

#touch filename       新建文件 #mkdir dirname        新建目录 #vim  filename        编辑文件

合理使用Tab键,可以自动补齐系统中存在的文件盒命令

命令行中的快捷键: ctrl+a   #从光标跳到行首 ctrl+e   #跳到行尾 ctrl+u   #删除光标之前的所有 cctrl+k   #删除光标所在字符到行尾 ctrl+l   #清屏 ctrl+shift+t  #增加一个终端 ctrl+d   #关闭终端(退出用户)

历史命令: #history   #查看历史命令 #!number  #执行第number次执行的命令 #!string  #执行string命令开头的命令 #ctrl+r   #查找曾经执行的命令

第二章:从命令行访问文件  熟悉linux下的目录信息  使用绝对路径和相对路径确定文件  创建,复制,移动和删除文件目录  使用shell快速查找多个文件 linux下的文件系统结构:倒树状的结构,以/统领所有目录     /usr:存放已安装的软件,共享库文件,头文件以及程序数据         /usr/bin表示用户命令         /usr/sbin系统管理员命令脚本         /usr/local自定义软件路径     /etc:系统的配置文件所存放的位置     /var:系统数据存放位置     /run:存放进程的运行数据,包括进程ID文件,和锁文件。存放在内存中,重启后数据会重新创建。     /mnt:设备的挂载点     /home:普通用户的家目录,用来存放个人数据和配置文件     /root:超级用户的家目录     /tmp:临时文件的存放点,超过10天的文件会被删除      /var/tmp:在30天内不能被访问,修改     /boot:系统启动文件,存放引导信息     /dev:存放系统设备文件,用来访问硬件 绝对路径:在系统文件的真实路径 相对路径:文件名是相对于当前目录的 [root@instructor ~]# pwd //显示当前工作环境 /root [root@instructor ~]# ls         //列出当前包含的文件目录 hello  lvsRS.sh  lvsstop.sh  one  rpmbuild  tlz [root@instructor ~]# cd rpmbuild/   //切换到下一个目录 [root@instructor rpmbuild]# pwd /root/rpmbuild

总结:在/root下,使用(cd rpmbuild)就是相对路径切换目录;使用(cd /root/rpmbuild)就是使用绝对路径进行切换目录

[root@instructor rpmbuild]# ls -l //长列表显示 drwxr-xr-x 2 root root 4096 Jun  4  2014 BUILD drwxr-xr-x 2 root root 4096 Jun  4  2014 BUILDROOT 文件属性 权限 用户 组 文件大小 文件更新时间 文件名 [root@instructor rpmbuild]# ls -a .  ..  BUILD  BUILDROOT  RPMS  SOURCES  SPECS  SRPMS //ls -a 显示所有文件,包括隐藏文件。其中.代表当前目录 ..代表上一层目录 //ls -R  显示当前目录下的目录以及子目录文件

[root@instructor ~]# cd -  //cd -用来切换当上一个工作目录 /root/rpmbuild [root@instructor rpmbuild]# cd ~  //切换到当前用户家目录

创建目录,文件: #mkdir dirname   新建目录 #mkdir -p /hello/xxb  递归创建目录(-p参数的作用) #touch filename   新建文件 #touch file{1..5}  批量创建文件

#cp filename(-r dirname) dirname   //拷贝文件到指定目录(拷贝目录需要指定-r参数,其他命令一样)

#mv filename dirname  移动文件(可以重命名) #rm -r dir   删除目录 //-r参数删除目录;-f参数强制删除;-i删除时提示(alias='rm -i')

模式匹配:(shell重点) * 匹配一个或多个字符 ?匹配任意单个字符 - 当前用户的家目录 ~username 用户的家目录 [abc..] 匹配括号中的任意字符 [!abc...] 匹配任意非括号的字符 [^abc...] 作用同上 注意:命令行可以同时执行多个命令,使用;隔开 [xxb@instructor ~]$ mkdir test;cd test [xxb@instructor test]$ ls a* 列出以a开头的文件 [xxb@instructor test]$ ls *a*   列出中间有a的文件 [xxb@instructor test]$ ls [ac]* 列出a或c开头的文件 输出命令 echo    输出命令,类似c中的print echo $env 输出变量值 [xxb@instructor ~]$ echo $HOSTNAME instructor.example.com  

$ rm -f [[:alpha:]]*###字母 $ rm -f [[:punct:]]*###符号 $ rm -f [[:lower:]]*###小写 $ rm -f [[:lower:]]*###小写 $ rm -f [[:upper:]]*###大写 $ rm -f [[:alnum:]]*###字母和数字 $ rm -f [[:digit:]]*###数字 $ rm -f [[:space:]]*###空格

第三章:获取RHEL7帮助信息 1.使用man(manual)命令进行手册查看 2.使用pinfo 查看文档 3.使用RPM包的文档(说明性文档,软件安装包文档在/usr/share/doc)

man帮助 space/pagedown  ###往下翻一页 pageup   ###往上翻一页 上键   ###往上一行 下键   ###往下一行 d   ###往下半页 u   ###往上半页 n   ###往上匹配的关键字 N   ###往下匹配的关键字 g   ###返回开头 G   ###回到结尾 /string   ###高亮显示关键字

#cat -n filename ###显示文件内容,并且显示行数 #cat -b filename  ###显示有内容的行数

第四章:创建、查看、编辑文件 重定向文件内容到另外一个文件或者命令 标准输入(0);标准输出(1);标准错误输出(2) 用<来改变读进的数据信道(stdin),使之从指定的档案读出 用>来改变送出的数据信道(stdout,stderr),使之输出到指定档案 管道“|”(pipe line):上一个命令的 stdout 接到下一个命令的 stdin tee 命令是在不影响原本 I/O 的情况下,将 stdout 复制一份到档案去

cmd (1)> file  把stdout重定向到file文件中(覆盖) cmd >> file 把stdout重定向到file文件中(追加); cmd > file 2>&1 把stdout和stderr一起重定向到file文件中 cmd &> file  作用同上 cmd 2> file  把stderr重定向到 file文件中(覆盖); cmd 2>> file 把 stderr 重定向到 file 文件中(追加); cmd >> file 2>&1 把 stdout 和 stderr 一起重定向到 file 文件中(追加); cmd < file >file2 cmd 命令以 file 文件作为 stdin,以 file2 文件作为 stdout; cat <>file 以读写的方式打开 file; cmd 2>/dev/null 把stderr输出到垃圾箱中

例子: $ find /etc -name passwd   查找文件 $ find /etc -name passwd >file1    将stdout输出到file $ find /etc -name passwd 2>file2   把stderr输出到file2 $ find /etc -name passwd &>file3   把全部的输出放入file3

$ find /etc -name passwd 2>>file2  把stderr追加到file2 $ find /etc -name passwd &>>file3 把全部输出追加到file3 $ find /etc -name passwd >>file4 2>&1把全部输出追加到file4

$ ping -c1 -w1172.25.254.250 &> /dev/null && echo yes || echo no //将测试网络连通的结果全部房间/dev/null。 &&表示前一个命令成功则执行下一个命令 ||表示前一个命令不成功则执行下一个命令

$ find /etc -name passwd 2>&1 |wc -l  //统计全部输出结果的行数

$ find /etc  -name passwd 2>&1 | tee text|wc -l //将所有输出保存到text文件,并且统计行数

重点:统计错误行的行数 $ find /etc -name passwd 2>&1 > /dev/null | tee text|wc -l //(注意:|管道只接受正确的输出)将所有内容的正确内容输出/dev/null,将错误信息tee到text里面

$ find /etc  -name passwd >file6 >>file7 2>& #####命令后的所有符号都是一起执行的 $ stat file6###查看file6的时间戳 Access: 2014-12-14 13:31:24.936367308 +0800 Modify: 2014-12-14 13:32:00.878908269 +0800 Change: 2014-12-14 13:32:00.878908269 +0800

在shell模式下编辑文件:VIM编辑器 vim 模式(用法查看vimtutor) vim编辑器的三种模式:命令模式,插入模式,退出模式 用法:(命令模式下) ctrl+v  ###高量选择模式 u  ###恢复 ctrl+r  ###撤销恢复 统一添加:ctrl+v选择第一行,shift+i(大写I)进入编辑模式,输入后按esc键 set nu  ###添加数字 :help  ###帮助 :wq  ###保存退出 :q  ###退出 :q!  ##强制退出不保存 :wq!  ##强制退出并保存 c  ###剪切 dd  ###删除光标所在行(dnd删除n行,dw删除单词必须把光标放到最前面,dl删除字母同x相同) yy  ###复制(yny复制n行,ywy复制单词,yly复制字母) p  ###粘贴 i  ###输入 x  ###删除光标所在字母 delete  键###删除 ctrl+w+s ###上下分页 ctrl+w+v ###左右分页 ctrl+w+c ###删除分页 :/s/hello/wes/g ###用wes替换hello(批量替换) I  ###行首插入 A  ###行尾插入 a  ###光标所在的下一个 O  ###光标所在行的上一行插入 o  ###光标所在行的下一行插入 s  ###删除光标所在位置再插入 S  ###删除光标所在行在插入 vim+已有文件名/vim+想要新建的文件名/vim进入,但在“:wq”退出时需要在后面加上文件名,例如(:wq file) 由插入模式转换到命令模式或者退出模式,使用Esc键

gedit(用法查看yelp help:gedit) ctrl+o###打开文本 ctrl+n###建立新的文本 ctrl+s###保存 ctrl+w###关闭 ctrl+f###打开查询窗口

第五章;管理本地linux用户和用户组

用户:在系统中的每一个进程都以一个特殊用户身份运行。每一个文件都属于一个特殊的用户。 命令id被用来显示当前用户信息。 每一个文件和进程都拥有自己的用户和用户组。

/etc/passwd :有关用户的信息文件 #cat /etc/passwd root:x:0:0:root:/root:/bin/bash 用户:密码:UID:GID:content:家目录:shell

组:每一个用户都一个初始组,同时用户可以有附加组。在一个组里的用户拥有相同的权限。 /etc/group :有关组的信息文件 #cat /etc/group root:x:0: 组名:密码:GID:相应组里的用户 su - student  ###切换的是用户身份及其用户环境 su student  ###切换的是用户身份 低级用户切换到高级用户需要密码

useradd(添加),userdel(删除+-r),usermod(修改) -d  ###指定家目录 -c  ###描述 -g  ###指定初始组ID -G  ###指定附加组(useradd -G 1000 xxb) -s  ###分配shell -u  ###指定初始uid

usermod -aG  ###表添加附加组 -L  ###表锁定 -U  ###表解锁 -md  ###表示家目录的信息及passwd下的家目录名称

权限的使用: 使用visudo去编辑/etc/sudo #visudo  ## Allow root to run any commands anywhere root    ALL=(ALL)       ALL test   localhost=(root)NOPASSWD:/usr/sbin/usermod

#####test为用户,localhost为主机名,root为身份,NOPASSWD:/usr/sbin/usermod为动作,必须用绝对路径

#sudo /usr/sbin/usermod -G 0 student

kill -9   #强行结束进程

/etc/shadow :用户认证信息 密码: # watch -n 1 tail -2 /etc/shadow Every 1.0s:tail -2 /etc/shadow                     时间 gnome-initial-setup:!!:16261:::::: tcpdump(用户名):!!(加密):16261(使用天数):(最短有效期):(最长有效期):(警告期):(过期后可再用几天):(活跃期):

chage -m 1 test 最短有效期,0 表示无限 chage -M 10 test 最长有效期 chage -I 1 test  过期后可再用几天 chage -d 0 test 使用天数 chage -W 7 test 警告期

第六单元:管理文件和目录权限 Linux文件系统权限: 文件必须被拥有文件权限的用户访问 文件和目录中权限的作用: r(read)    文件内容可读  目录的内容可被显示 w(write)   文件内容可改(rw同时) 可切换目录并且可创建或删除文件 x(exec)    文件可被用作命令执行   目录中的内容能被访问(依赖文件权限)

一般而言,对于目录的权限w和x是同时具备才有意义的。  对于文件而言,x权限配合r权限使用。

查看文件/目录的权限以及属主 #ls -l filename -rw-r--r--. 1 kiosk kiosk 14924 Dec 19 22:45 unit3--- -表示文件标识 ugo权限 #ls -ld /home

管理文件系统权限: 修改文件/目录权限  #chmod [who][what][which] file/directory    u/g/o/a +/-/= r/w/x   #chmod ### file/filename    r=4,w=2,x=1

管理文件/目录的用户和用户组:  #chown username directory  #chgroup -R groupname directory 特殊权限: SUID;SGID;StickyID u+s(suid) :只针对可执行文件来说,拥有s权限的文件,任何用户可以以该文件的属主权限来运行 g+s(sgid):拥有此权限的文件,用户可以以属组的身份运行。拥有此权限的目录下创建的文件拥有组的权限 o+t(sticky):只针对目录来说。任何用户可以在目录里写,但是只能删除自己的文件;不能删除或保存其他用户的文件。

特殊权限的设置: setuid=u+s;setgid=g+s;sticky=o+t setuid=4;setgid=2;sticky=1

文件的默认权限,umask值的设置: umask值:文件或目录在创建时减去的权限值 为什么要设置umask? 怎样设置umask? umask权限的数字更改;vim /etc/bashrc (/etc/profile)

‍注意:在实际生产和应用中,权限的设计以及使用时很有技巧的,包括同一个目录对于不同用户,不同用户组的权限设置都是需要一定艺术思考的。因此在面试过程中偶尔也会对相关权限知识进行提问解答,对于权限的设置,希望读者能够更加深入了解权限对于用户,组,以及文件目录的相关作用,以及常用特殊权限的使用。

第七章:监视和管理linux进程 列出和解释系统运行进程的基本信息 使用任务控制,控制进程 使用信号终止(terminate)和控制进程(kill -9) 监控资源使用率,系统负载。 何为进程:一个运行实例(可执行程序)的过程 进程包含:被分配的内存地址空间;  安全性能,包括属主,凭证和权限。  一个或多个可执行的程序代码  进程状态 进程状态:running;sleeping;stopped;zombie  列出进程信息:  #ps   -a    列出所有虚拟终端(除过终端用户)   -l 长列表显示   -e 所有进程   -f   -u 按有效用户ID(用户名)排列   -x

 任务控制:  #bg  显示当前后台运行的进程  #fg  掉用当前后台执行的进程  #jobs  查看任务列表  #ctrl+z 将当前任务暂时放到后台执行(释放当前终端)  #&  将任务放到后台执行  终止进程:  #kill 信号 pid  #killall 信号 command  信号种类以及作用:  1   HUP     终端断线  2   INT    中断(同ctrl+c)  3   QUIT    退出(同ctrl+\)  9   KILL          强制终止  15  TERM    终止  18  CONT    继续(与STOP相反,fg/bg命令)  19  STOP    暂停(同ctrl+z)  20  TSTP  INT----是当用户键入时由终端驱动程序发送的信号.这是一个终止当前操作的请求.如果捕获了这个信号,一些简单的程序应该退出,或者允许自给被终止,这也是程序没有捕获到这个信号时的默认处理方法.拥有命令行或者输入模式的那些程序应该停止它们在做的事情,清除状态,并等待用户的再次输入.  TERM----是请求彻底终止某项执行操作.它期望接收进程清除自给的状态并退出  登录用户管理:  #w 显示当前登录的用户信息以及用户进程信息  实时进程监控:  #top  top前五行统计信息:   第一行是任务队列信息(当前时间;系统运行时间;用户数;;系统负载,即任务队列的平均长度1min,5min,15min前到现在的平均值)    第二行和第三行是进程和CPU的信息   Cpu(s):  0.3%us,  0.7%sy,  0.0%ni, 99.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st   us表示用户空间占用CPU;sy表示内核空间占用百分比;ni用户进程空间内改变过优先级的进程占用CPU;id表示空闲CPU百分比;wa表示等待输入输出的cpu时间百分比;   第五行为内存信息  第八章:控制服务和后台进程  列出系统进程和通过系统服务启动的网络服务以及套接字单元  控制系统后台进程,使用systemctl控制网络服务  systemd是一个init进程  systemctl命令可以控制服务  格式:systemctl  start|stop|restart|status services  服务的状态:  loaded  配置文件已经被加载  active(running)进程正在运行  active(exited) 成功完成了一次配置  active(waiting)运行等待  inactive 没有运行  enabled 将在启动时运行  disabled 启动时不运行  static  可以被enabled,但是可以被自动start  控制系统服务:  在开机时启动或关闭系统进程服务   格式:systemctl enable service        system disable service  在系统运行时停止或启动系统进程服务   格式:systemctl start service        systemctl stop service  第九单元:管理和配置OpenSSH服务    使用ssh从一个shell登录到远程的系统    设置ssh允许安全验证(无密码访问,通过私有认证文件)    自定义sshd文件,限制以root用户直接登录,关闭密码认证   ssh(secure shell):在远端运行安全的shell,远程登录服务器(必须安装ssh服务),然后执行本机命令。   #yum groupinstall openssh* -y   ssh用法:   #ssh username@domainname(IP)  需要输入密码   默认只输入域名或者IP登录的是root用户   #ssh -X username@IP         登录图形   SSH主机认证: #ssh-keygen          产生秘钥文件(生成密码) #ssh-copy-id serverX(remote-IP)    拷贝公钥到远程主机(-i 密钥文件) #ssh serverX             第一次需要密码验证(以后免密码) 公钥用于加密,私钥用于解密

[root@localhost ~]# cat .ssh/known_hosts 192.168.2.234 ecdsa-sha2-nistp256      认证记录文件 远程主机,远程主机IP,验证密码 [root@localhost ~]# ls /etc/ssh/*key* 认证文件(公私钥) /etc/ssh/ssh_host_ecdsa_key      /etc/ssh/ssh_host_rsa_key /etc/ssh/ssh_host_ecdsa_key.pub  /etc/ssh/ssh_host_rsa_key.pub

自定义ssh服务: 配置文件:/etc/ssh/sshd_config      #PermitRootLogin yes|no     允许root用户运城登录       #PasswordAuthentication yes|no  选择密码认证  systemctl restart sshd.service  重启ssh服务 第十章:分析和存储日志 描述RHEL7基本的日志体系结构; 理解(interpret)有关日志文件记录(entries),去排查问题或者查看系统状态; 在系统日志(journal)中查找和理解日志文件记录,排查问题,监控系统状态; 配置systemd-journald,在磁盘上存储日志; 维护时间同步,配置时区确认当前系统日志的时间戳

系统日志: /var/log/messages 大部分的系统日志信息 /var/log/secure  安全认证相关日志相关错误 /var/log/maillog 邮件服务相关日志信息 /var/log/cron  自动任务相关日志 /var/log/boot.log 系统启动相关日志

/etc/rsyslog.conf  系统日志定义文件 #### RULES #### #kern.*                      /dev/console authpriv.*                  /var/log/secure mail.*                     -/var/log/maillog 日志类别,等级   日志存储文件  同步系统文件: 1.关闭防火墙 2.开启服务 vim /etc/rsyslog.conf 3.15,16行开启UDP,19/20行开启TCP。 *.*    @/@@172.25.254.189(前UDP,后是TCP,都加接受端的ip地址)仅发送端修改 4.man 5 rsyslog.conf##查看用法,vim /etc/rsyslog.conf###接受端修改 5.logger test###产生日志,仅发送端 6.watch -n 1 tail /var/log/messages###仅接受端 使用journalctl查看日志: 注意:journalctl服务是红帽7专门查看日志的特殊工具,将系统化的系统日志保存下来,并在关机后默认清除。 #journalctl -n 5 查看最后5条日志 #journalctl -f   在线动态查看日志(tail) #journalctl --since today --until "y-m-d h:m:s" #journalctl -p err 查看错误日志

永久存储系统日志(permanently): #mkdir /var/log/journal/ #chown root:systemd-journal /var/log/journal/ #chmod 2755 /var/log/journal/ #killall -1 systemd-journald 一般的会在/var/log/journal/下生成一个目录,同时目录下会生成system以及用户文件

设置本地时钟和时区: # timedatectl   显示当前时间时区等信息       Local time: Fri 2014-12-19 22:28:14 CST   Universal time: Fri 2014-12-19 14:28:14 UTC         RTC time: Fri 2014-12-19 22:28:14         Timezone: Asia/Shanghai (CST, +0800)      NTP enabled: yes NTP synchronized: no  RTC in local TZ: no       DST active: n/a # timedatectl list-timezones 列出时区 # timedatectl set-timezone 时区  设置时区 # timedatectl set-time 22:31:21  设置时间 # timedatectl set-ntp true/flase  开启NTP(注意,有个bug好像,第一次执行报错) 配置和监控chronyd:(维护系统时间的精准度?) 背景程序,可以在启动的时候开启(类似于ntpd服务?) -n and -d #vim /etc/chrony.conf  修改配置立即同步 server ntp.server.example.com iburst # systemctl restart chronyd.service # chronyc sources -v  同步配置显示

第十一章:管理RHEL7系统网络 1.了解计算机网络的基本概念 2.使用基本工具测试查看当前网络配置 3.使用nmcli(network manager contral list)管理网络设置和设备以及NetworkManager 4.通过编辑配置文件修改网络设置 5.配置和测试系统主机名以及名字解析

计算机网络基本要素:    IPaddress:ip地址,用来唯一确定一台主机的位置信息N(一般使用八位2进制来识别,使用点分十进制表示)    DNS:域名解析系统(domain name system)用来记录IP地址和域名的对应信息的,方便用户使用域名信息访问特定的服务。    GATEWAY:网关,又称网间连接器,在网络层实现互联,用来将不同网络间的报文信息进行翻译。     IP地址的划分:  172.17.5.3=10101100.00010001.00000101.00000011     NETMASK的表示:  255.255.0.0=11111111.11111111.00000000.0000000  注意:掩码部分全为1的表示为网络位,全为0的表示主机位  网络配置查看的相关命令:  # ifconfig  查看当前网络接口信息  # ip addr show DEVICE 查看某个网络接口信息  #ping -c -w   测试网络的连通性(c表示连接数,-w代表时间)  #ip route  查看当前路由表信息  #route -n  查看网关信息  #traceroute  查看网络数据包经过路由(数据走向)  查看网络端口信息:  #ss -n  查看接口和端口信息,使用数字表示  #ss -t  查看TCP链接  #ss -u  查看UDP链接  #ss -l  只显示监听的链接  #ss -a  显示所有链接  #ss -p  显示正在使用socket链接的进程  红帽7特有的配置网络工具:  nmcli(network manager contral list):命令配置  nm-connection-editor:      图形界面配置  nmtui:   终端界面配置  nmcli命令详解:  # nmcli connection show 显示网络链接  # nmcli device show  显示设备信息 注意:nmcli 命令下的参数和目标都是可以tab出来的。 nmcli      connection (对连接的网络进行增、删、改、查)      device(对设备进行操作网卡的状态显示、链接)      general(通用设置)      neworking (网络开关)      radio(radio信息)

使用配置文件进行网络参数修改: /etc/sysconfig/network-scripts/ 网络配置文件都会以ifcfg-开头 红帽7默认使用ens33设备。

网络配置的两种模式: #cat ifcfg-ens33 DEVICE=ens33 ONBOOT=yes IPADDR=192.168.2.234 NETMASK=255.255.255.0 GATEWAY=192.168.2.1 BOOTPROTO=none|static (网络配置模式,静态) DNS=192.168.2.254

#cat ifcfg-ens33 动态网络配置 DEVICE=ens33 ONBOOT=yes BOOTPROTO=dhcp (动态主机配置,需要开启服务)

#systemctl restart network 重启网络加载网络配置参数

修改系统主机名称: #hostname 显示当前主机名 #hostnamectl set-hostname  设置主机名 #hostnamectl status  查看主机名信息 #vim /etc/hostname  手动查看主机名信息

配置名称解析: /etc/hosts /etc/resolv.conf # nmcli connection modify ens33 ipv4.dns IP 修改dns # vim /etc/nsswitch.conf 修改检索顺序

补充知识: 在实际中安装双系统时发现安装Centos7后发现之前的windows系统不见了。此时,读者千万不要慌张,如果在安装linux时选择的是自动分区,那么就不会损坏之前磁盘的信息(如果自己手动分区,并可能损坏了就不要继续看了)。为什么呢?因为CentOS7跟随RHEL7的脚步,grub已经升级到v2版本了,因此不会自动加载到其他磁盘的系统引导信息,因此,如果你装完双系统重启后发现不能正常启动windows,接下来就教你怎样手动把windows启动信息加入grub2,让grub共同管理windows和linux的启动信息。 编辑grub文件; #vim /boot/grub2/grub.cfg 找到menuentry 信息,在之前添加以下信息 menuentry 'Windows 7'{         set root='hd0,msdos1'         chainloader +1 } 重启linux系统就可以发现启动信息有windows了。

第十二章:在系统间存档和拷贝文件 1.使用tar工具从现有的目录文件中提取新建一个归档文件 2.使用sshd把文件从远程系统拷贝本地或者到远程(安全的) 3.使用远程拷贝安全的同步本地文件或者内容

tar工具,是linux系统中备份文件的可靠方法,几乎可以工作在任何环境中,使用权限时所有用户。 使用方法: #tar 选项  filename.tar  file|directory 选项列表:  -c 创建一个归档文件  -x 从档案中释放文件  -f 使用档案文件或设备

 -v 详细显示tar处理的信息  -t 列出档案文件内容  -r 把要存档的文件追加到归档文件末尾  --get  --delete  -j 使用bzip2格式进行压缩  -J  -z 使用gzip来压缩和解压缩文件 example:  # tar -zcf hel.tar.gz hel/ 压缩目录 # tar zxf hel.tar.gz  解压gz文件 # tar jcf hel.tar.bzip hel/ bzip格式 # tar jxf hel.tar.bzip

#tar Jcf hel.tar.xz hel/  压缩xz格式

其他压缩工具:gzip,bzip2,xz #gzip filename(-r directory) 压缩成gz格式 #gunzip filename.gz        解压gz文件 # bzip2 file1 # bunzip2 file1.bz2 # xz file1 # unxz file1.xz 更多参数请自行查看帮助

拷贝文件到远程主机或者从远程主机拷贝文件(scp) 上传: # scp -r /root/hello/ root@192.168.2.254:/root/xxb  将本地hello目录上传到远程主机xxb下 下载: # scp -r root@192.168.2.254:/root/rpmbuild /root/hello/  将远程主机目录拷贝到本地hello下 注意:-r参数表示同步的是目录(默认不加参数表示普通文件)

使用sftp转移远程文件: # sftp root@192.168.2.254 登录远程主机 此时需要提供远程主机密码,默认登录用户家目录 sftp> ls   本地操作远程主机 sftp> put /etc/hosts  把本地文件上传到远程主机 sftp> get /etc/hosts.allow 把远程主机文件下载到本地目录(当前登录目录)

使用rsync同步文件和目录 rsync也是文件传输程序,和scp用法相似。区别是rsync具有增量备份的功能。scp只是简单的拷贝,使用ssh协议 #rsync [options] source destination 参数选项: -r 同步整个文件目录 -l 同步连接 -p 保留权限 -t 保留时间戳 -g 保留文件的用户组 -o 保留文件的所有者 -D 同步设备文件

examples: #rsync -r test/ 192.168.2.234:/root/hello 将本地目录中文件同步到远程,同步后会自动识别到远程的文件目录和权限 # rsync -g(u) filename1 192.168.2.234:/root/hello   同步文件,到hello目录,保证文件的属组是本地权限 注意:默认普通用户传到超级用户-u选项是不生效的;同时,同步后会发现两个主机的权限是不一样的(自行查看) # rsync -p filename1 192.168.2.234:/root/hello -p选项可以使文件权限不变 经常使用的参数就是pug

第十三章:安装和更新软件包 1.解释一下,什么是RPM包,怎样在CentOS上使用rpm管理软件 2.使用yum工具进行发现,安装和更新软件包 3.启用CentOS/RHEL或者第三方yum仓库 4.测试并且安装下载的软件包

一个RPM包的名称架构信息: yum-utils-1.1.31-24.el7.noarch.rpm 软件名字-软件版本.发布行.架构.rpm 其中架构一般分为noarch和x86_64和i686。noarch为软件的通用架构,也就是适用于32位和64位。后两个架构分别为64和32位设计。

使用yum管理软件: yum配置文件:/etc/yum.conf  将配置中的keepcache改为1则可以将安装的软件下载 yum源文件目录:/etc/yum.repos.d/

yum源的创建和指定: 注意:yum源的文件必须以.repo文件结尾,并且必须存放在/etc/yum.repos.d/目录中 实例: # vim /etc/yum.repos.d/base.repo [base]   yum源名字(全局唯一) name=xxb  yum源描述 baseurl=file:///mnt/centos7  yum源地址(可使用file|http|nfs|ftp) gpgcheck=0(1) (不)检查软件包的gpgkey gpgkey=file gpgkey的地址 enable=0|1 (不)启用yum源 注意:一般创建yum源前四个信息是必须的。那么我自己的yum源是前四条,[base]是源的名字,给系统识别的;name=xxb是源的描述,方便自己知道源的用途;baseurl=file:///mnt/centos7是我自己指定的源,因为我用的是自己本地创建的yum源,/mnt/centos7目录下存放着我解压后的镜像文件(即系统自带软件);gpgcheck=0不检查软件包的许可(因为我自己知道来源,可放心使用的) 如果使用的是互联网上的yum源,一般的第三条应该这样写 baseurl=ftp(http)://www.xxx.xxx/   写上网址就行

#yum clean all  配置完成yum源之后进行清除

yum命令详解: yum list name  按名字列出安装和可用软件 yum grouplist  列出安装和可用的组 yum search KEYWORD 按关键字查找软件 yum info PACKAGENAME 查看软件包的信息 yum install PACKAGENAME 安装软件包 yum groupinstall "GROUPNAME"安装一个软件包组 yum update  更新所有包 yum remove PACKAGENAME 删除一个软件 yum history  显示历史

使用rpm检查下载的rpm包: #rpm -q -i openssh 显示包的信息 #rpm -q -l openssh 列出ssh软件包含全部文件 #rpm -q -c openssh 列出配置文件 #rpm -q -d openssh 列出软件的文档(doc) #rpm -q --scripts openssh 列出shell脚本  使用yum安装本地rpm软件包: #rpm -ivh PACKAGEFILE.rpm #yum localinstall PACKAGEFILE.rpm

从rpm包中提取文件:  #rpm2cpio zziplib-0.13.62-5.el7.x86_64.rpm |cpio -id  使用此命令可以将包解压开来查看内容  第十四章:访问CentOS7文件系统  1.识别文件系统层次  2.访问文件系统的内容  3.使用硬链接和符号链接去做多路径名称  4.在挂载的文件系统上查找文件  存储管理概念介绍:  /dev/xdx 磁盘设备(第一个x代表磁盘类型,s代表sata盘,v代表虚拟磁盘。第二个x代表设备的位置,a代表第一块设备)  /dev/cdrom CD/DVD设备  /dev/mapper lvm设备映像  检查文件系统:  #df -H|h 显示文件系统的格式和大小(H是1000,h是1024,单位为k,M,G)  #du -sh|H 显示文件大小  手动挂载文件系统:  #blkid  查看当前设备的UUID  /dev/sda1: UUID="c9e59a31-69b3-4241-87d5-d5b82073c91b" TYPE="xfs" /dev/sda2: UUID="XuBZVU-srAs-mfXn-IvQS-DGSw-Wq4e-21AUl0" TYPE="LVM2_member" /dev/mapper/centos-swap: UUID="f88801ef-594e-40cf-b3d6-e232b01e183f" TYPE="swap" /dev/mapper/centos-root: UUID="ca7bf22c-8874-4c7c-b8a3-7ce189298bd3" TYPE="xfs"

#mount -o [options] device mountpoint 挂载设备 #umount device/mountpoint  卸载设备 #fuser -kvm device/mountpoint    强制删除设备占用程序 #lsof device|mountpoint 创建连接文件:  #ls -i filename  查看文件的inode  硬链接 #ln file file  软链接 #ln -s file file(相当于windows下的快捷方式) 软链接和硬链接的区别:  区别:硬链接原文件和链接文件公用一个inode号,说明他 们是同一个文件,而软链接原文件&链接文件拥有不同的inode号,表明他们是两个不同的文件;  在文件属性上软链接明确写出了是链接文件,而硬链接没有写 出来,因为在本质上硬链接文件和原文件是完全平等关系;  链接数目是不一样的,软链接的链接数目不会增加;  文件大小是不一样的,硬链接文件显示的大小是跟原 文件是一样的(这用强调,因为是等同的嘛),而这里软链接显示的大小与原文件就不同了,file1大小是48B,而file1soft是5B,这里面的5实 际上就是“file1”的大小。(软链接文件的大小就是原文件的名字长度)  硬链接不支持目录,软连接支持哦   总之,建立软链接就是建立了一个新文件。当访问链接文件时,系统就会发现他是个链接文件,它读取链接文件找到真正要访问的文件。

使用locate通过名字定位文件: # locate passwd  查找和passwd相关的文件 # locate -c passwd 统计和passwd相关文件个数 # updatedb  更新locate数据库

使用find查找文件: find -name 按名字查找 find -user 按用户查找 find -group 按组查找 find -o find -size 按大小查找() find -perm 按权限查找 find -exec 对匹配的文件执行该参数所给出的shell命令。形式:command {} \; find -m find -type 按类型查找(f/d/b/l ) find -print 将匹配的文件输出到标准输出

example: #find /etc -name passwd -exec grep xxb {} \; 查找/etc/下的passwd文件,对文件进行过滤xxb #find / -type -name andy* -exec rename andy ANDY {} \; 按文件查找andy*文件,并批量替换名称 #find / -size +1000000c -print

 第十五章:使用虚拟化系统 1.安装一个CentOS运行虚拟机(KVM) 2.在虚拟机上perform an interactive install RHEL

系统虚拟化和RHEL:

安装虚拟化: #grep --color -E "vmx|svm" /proc/cpuinfo 查看cpu是否支持虚拟化 #yum install qemu-kvm qemu-img -y #yum install virt-manager libvirt libvirt-python python-virtnst libvirt-client

管理虚拟机: # virsh list  查看运行的主机 # virsh destroy server 摧毁server主机 # virsh list --all 查看所有主机 # virsh start|stop  server

 补充:

rpm -qp packagename --script  查看包在安装过程的作 rpm -qf /usr/bin/ls 查看文件所在的包 yum whatprovides */usr/bin/ls  查看所以有包信息(查找包) rpm -qa | grep name   查看包名 rpm -e 包名 --nodeps 删除rpm包(不检查依赖性) rpm -V vsftpd  查看软件包是否修改了 rpm -k vsftpd  查看包是否修改

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏xiaoheike

Elasticsearch Network Settings

Elasticsearch 缺省情况下是绑定 localhost。对于本地开发服务是足够的(如果你在相同机子上启动多个节点,它还可以形成一个集群),但是你需要配...

1392
来自专栏pangguoming

Git忽略规则.gitignore梳理

对于经常使用Git的朋友来说,.gitignore配置一定不会陌生。废话不说多了,接下来就来说说这个.gitignore的使用。

792
来自专栏進无尽的文章

基础篇-Mac终端指令大全

在日常开发中我们经常会用到一些Mac的指令在终端中进行操作,所以了解和熟练使用一些基本的Mac终端指令是非常有必要的,也有利于自己的职业发展,下面就简单总结下M...

661
来自专栏张戈的专栏

Llinux文件目录权限及chmod命令简析

这些天,在互推联盟群(344134224 )遇到几例关于 WP 升级失败以及 FTP 账号登陆的问题。最终发现都是主机的目录权限设置存在问题。比如,博友【PPT...

4296
来自专栏云计算教程系列

在Ubuntu 16.04如何使用Percona将MySQL类别的数据库备份到指定的对象存储上呢?

数据库通常会在您的基础架构中存储一些最有价值的信息。因此,在发生事故或硬件故障时,必须具有可靠的备份以防止数据丢失。

1303
来自专栏weixuqin 的专栏

一些杂想

(目前个人认为,Django 还是应该使用 Django1.11版本,稳定长期支持到2020年,兼容性也好。)

933
来自专栏企鹅号快讯

Linux系统下常用的数据备份方法

Linux作为网络操作系统,在服务器方面的应用越来越广泛。作为专门的网络服务器,一个重要功能就是对服务器数据进行备份,以确保数据的安全。本文将介绍在Linux系...

2098
来自专栏SDNLAB

ONOS编程系列(二)命令行命令与服务开发

此文章承接ONOS编程系列(一) Application Tutorial ,如果尚未看过上一篇,请先看完上一篇,再回过头来看此篇。 本文章的目的在于让读者明白...

3299
来自专栏coding

bash基础特征

1052
来自专栏散尽浮华

Git忽略规则.gitignore梳理

对于经常使用Git的朋友来说,.gitignore配置一定不会陌生。废话不说多了,接下来就来说说这个.gitignore的使用。 首先要强调一点,这个文件的完整...

1887

扫码关注云+社区