linux基础知识的总结

时间:2024-01-04 10:02:20

例如以下内容是我对linux基础知识的总结,由于本人在初期学习linux的时候走了不少的弯路,对于基础的掌握耗费了不少的时间,所以为了后来者对linux的基础部分有个清晰的了解,特对基础知识进行了总结,由于水平有限。难免有疏忽或者不准确的地方。希望大家可以直接指出来,我会及时改正。一切为了知识的传播。^_^





*******************************************************************************************************



                                           linux基础知识总结



一.课程结构:



(一)预科部分:



    1.初始linux



        (1)了解linux的历史



        (2)对linux操作系统的认知



        (3)体会linux的长处



        (4)理解linux的基本思想



    2.学会怎样安装linux操作系统



    3.掌握linux下的常规操作(登陆和注销)



    4.了解linux的文件夹结构



    5.掌握linux下的常规操作



    6.linux下的常规网络配置



    7.制作yum源(本地、远程)及yum命令的基本操作



(二)linux系统知识:

    

    1.redhat7下图形界面使用(包含gedit使用)、字符界面和图形界面的切换

    

    2.使用nautilus以图形方式管理文件(显示隐藏文件、訪问远程ftp)

 

    3.熟悉redhat的文档阅读(redhat官方站点下载或者在本地owncloud处下载redhat7文档并阅读)

   

    4.配置本机系统时钟(ntpdate、system-config-date使用)



    5.shell的简单介绍和使用

   

    6.管理物理存储(磁盘分区)

    

    7.使用LVM灵活存储(LVM的创建、使用、扩展、销毁)



    8.使用man手冊获取帮助

    

    9.查看管理系统进程(keyword:ps、top、kill使用)

 

    10.建立网络链接(keyword:DNS、子网掩码、ping)



    11.系统服务的管理(keyword:systemctl)

    

    12.管理系统用户和组



    13.文件权限(文件权限的意义和改动)

     

    14.使用ssh远程管理系统(keyword:公私钥、ssh-keygen)



    15.apache、vsftpd和vncserver的配置



    16.管理物理存储(keyword:tune2fs、swap交换分区)



    17.selinux和iptables基本设置(设置文件的selinux标签、关闭打开iptables)



    18.软链接和硬链接(ln命令)

   

    19.归档和压缩(keyword:tar命令)

  

    20.vim的使用(keyword:快捷键操作)

    

    21.正則表達式(管道与重定向)

  

    22.网络故障的排除过程

    

    23.訪问网络文件共享服务(NFS和CIFS(samba服务))

       

    24.管理文件系统(文件系统的加密)



*******************************************************************************************************



二.具体介绍

  

*******************************************************************************************************

    1.linux系统简单介绍:

    

    Linux的含义



    严格的来讲,Linux不算是一个操作系统,仅仅是一个Linux系统中的内核。即计算机软件与硬件通讯之间的平台;Linux的全称是GNU/Linux,这才算是一个真正意义上的Linux系统。

GNU是Richard Stallman组织的一个项目,世界各地的程序猿能够变形GNU程序,同一时候遵循GPL协议,同意不论什么人随意修改。可是,修改后的程序必须遵循GPL协议。  
 



    Linux的特点



    Linux之所以流行,是由于它拥有例如以下几方面的特点:



    开放性



    开放性是指系统遵循世界标准和规范,特别是遵循开发系统互联(OSI)国际标准。凡是,遵循国际标准开发的硬件和软件。都彼此兼容。能够方便的实现互联。



    稳定性



    Linux的稳定性是众所周知的,因为他没有太多的UI界面。所以他相对其它操作系统较稳定。

多用户



    多用户是指系统资源能够被不同用户各自拥有使用。即每一个用户对自己的资源,多任务文件系统,系统设备等。

有特定的使用权。

而彼此之间却不相互影响。

Linux和Unix都具有多用户的特定。



    设备独立性



    是指操作系统把全部外部设备统一当成文件来看待,仅仅要安装它们的驱动程序。不论什么用户都可以像使用文件一样,操纵、使用这些设备。而不必知道他们的详细存在形式。

具有设备独立性的操作系统。通过把每个外围设备看做一个独立的文件来简化添加新设备的工作。当须要向系统加入新设备时。系统管理员就在内核中添加必要的连接。

这样的连接(也称做设备驱动程序)保证每次调用设备提供服务时,内核都可以使用同样的方式来处理他们。当新的及更好的外设被开发并交付给用户,这些设备都连接到内核后。用户就行不受限制的马上使用它们。设备独立性的关键在于内核的适应能力。其它的操作系统仅仅同意一定数量或者一定种类的外部设备连接。而设备独立性的系统,可以容纳随意种类及随意数量的设备。由于每个设备都是通过其与内核的专用连接独立进行訪问的。



    丰富的网络功能



    完好的内置网络是Linux的一大特点。Linux在通信和网络功能方面优越于其它操作系统。其它操作系统不包括如此紧密地和内核结合在一起的连接网络的能力,也没有内置这些联网特性的灵活性。

而Linux为用户提供了完好的、强大的网络功能。

可靠的系统安全性



    Linux採用了很多安全技术措施,包含对读/写进行权限控制、带保护的子系统、审计跟踪、核心授权等,这为网络多用户环境中的用户提供了安全性。

良好的可移植性



    可移植性是指系统从一个平台移植到还有一个平台它仍能按其自身的方式执行的能力。Linux是一种可移植的系统,它可以从微型计算机到大型计算机的不论什么环境中和不论什么平台上执行。

可移植性为执行Linux的不同计算机平台与其它不论什么机器进行准确而又有效的通信提供了手段,不须要添加不论什么特殊的和昂贵的通信接口。

支持多种文件系统



    Linux可以支持多种文件系统。

眼下支持的文件系统有EXT2、EXT3、ISOFS、MSDOS、UMSDOS、NFS、SYSV、Minix、SMB、UFS、NCP、VFAT、NTFS、AFFS等数十种。Linux最经常使用的文件系统是EXT4。

可是redhat7採用的文件系统是xfs。xfs与ext4相比有着更大的优势,为了云计算发展方向,redhat更换文件系统是一个比較明智的选择。

对于ext4和xfs的性能对照參照下面的地址:

    

    不同linux文件系统的比較

    链接地址:http://man.ddvip.com/linux/Mandrakelinuxref/ch09s01.html



    Linux的发行版本号



    发行版为很多不同的目的而制作, 包含对不同计算机结构的支持, 对一个详细区域或语言的本地化,实时应用,和嵌入式系统,甚至很多版本号有益地仅仅增加免费软件。基本上能够分为两大类:一类是由商业提供商提供的。在一定的时间内提供技术支持,该类版本号的提供商有Red
Hat和SUSE等;还有一类是由具有共同的技术爱好者社区提供支持的,如BSD、Slackware、Debian、Fedora、Ubuntu等。

下面是发行版本号中较为流行的几种:



    FreeBSD



    须要强调的是:FreeBSD并非一个Linux系统!但FreeBSD与Linux的用户群有相当一部分是重合的,二者支持的硬件环境也比較一致,所採用的软件也比較类似。所以能够将FreeBSD视为一个Linux版本号来比較。FreeBSD拥有两个分支:stable和current。

顾名思义,stable是稳定版。而
current则是加入了新技术的測试版。FreeBSD採用Ports包管理系统。与Gentoo类似,基于源码分发,必须在本地机器编后后才干执行,可是Ports系统没有Portage系统使用简便,使用起来略微复杂一些。FreeBSD的最大特点就是稳定和高效,是作为server操作系统的最佳选择,但对硬件的支持没有Linux完备,所以并不适合作为桌面系统。



    Slackware



    Slackware是眼下全部linux发行版本号时间最久的一个版本号,始于1993年的Partick Volkerding。

它非常具有Unix/BSD的风格,它仅仅吸收经过測试且稳定的软件版本号。所以稳定性是全部版本号的非常强的一个。此外,因为缺少其它发行版本号的配置工具和系统外壳,它要求用户必须掌握命令行的操作、编辑文本配置文件。所以对于一般接触linux不久的用户上手较难。可是一旦你熟悉了命令行就会让你用起来十分高速。该系统的长处是系统对硬件要求非常低。并且执行速度非常快;其缺点是支持的软件较少。要熟悉掌握它须要较长的时间摸索。



    Debian



    Debian系列,包含Debian和Ubuntu等。Debian最早由Ian Murdock于1993年创建,Debian是社区类Linux的典范,是迄今为止最遵循GNU规范的Linux系统。它拥有许多的支持者,社区发展也很稳定,软件的安装,升级很方便。Bug补丁公布很及时。分为三个版本号分支:stable,
testing 和 unstable。

当中,unstable(不稳定)为最新的測试版本号,当中包含最新的软件包。可是也有相对较多的bug。适合桌面用户。Testing(測试中)的版本号都经过unstable中的測试,相对较为稳定。也支持了不少新技术(比方SMP等)。而stable(稳定)一般仅仅用于server,上面的软件包大部分都比較过时,可是稳定和安全性都很的高。Debian最具特色的是apt-get / dpkg包管理方式。事实上Redhat的YUM也是在模仿Debian的APT方式,在二进制文件发行方式中,APT应该是最好的了。



    SUSE



    SUSE 原是以Slackware Linux为基础,并提供完整德文使用界面的产品。

1992年 Peter McDonald成立了Softlanding Linux System(SLS)这个发行版。

这套发行版包括的软件许多,更首次收录了X Window及TCP/IP等套件。

Slackware就是一个基于SLS的发行版。

原来的名字叫"S.u.S.E."后来改称/简短为"SuSE",意思为"Software-
und System-Entwicklung",那是一句德文,英文为"Software and system development"。

如今这家公司的名字再度更改成SUSE Linux。"SUSE"一字已经不包括甚么意义了。

    2003年11月4日,Novell表示将会对SUSE提出收购。收购的工作于2004年1月完毕。Novell也向大家保证SUSE的开发工作仍会继续下去。Novell更把公司内全线电脑的系统换成SUSE LINUX,并同一时候表示将会把SUSE特有而优秀的系统管理程序
- YaST2以GPL授权释出。

    2005年8月4日,Novell公共关系科的领导及代言人 - Bruce Lowry表示。SUSE Linux Professional系列的开发将变得更开放以及让社群參与其中的工作。新的开发计划名为openSUSE。目的是为了吸引很多其它的使用者及开发者。

相比以往,如今全部的开发者及使用者可以測试SUSE的产品并一起开发新版本号的SUSE。在以往,SUSE的开发工作都是于内部进行的。SUSE
10.0是第一个给予公众測试的版本号。

为了配合这个转变。用户除了能够购买盒装版本号的SUSE外,也能够从网络上免费下载。一系列的改变让于2005年10月6日推出的SUSE Linux有三个版本号 - "OSS版" (全然地开放原始码)、"试用版"(同一时候包括开放原始码的程序及专属程序如Adobe Reader、Real Player等,事实上就是盒装零售版。也能够免费下载。能够安装在硬盘上,而且没有使用限制或限期。但不含说明手冊及Novell提供的技术支援)及盒装零售版。

    2010年。Attachmate收购Novell。SUSE成为Attachmate的产品。

须要注意的是,Novell Linux Desktop 系列的新产品以后改称 SUSE Linux Enterprise Desktop。他是德国最著名的Linux发行版,在全世界也享有较高的声誉,号称是世界上最华丽的操作系统。

它一直致力于创建一个连接数据库的最佳Linux版本号。为了实现这一目的,SuSE与Oracle
和IBM合作,以使他们的产品能稳定地工作。他自主开发的软件包管理系统YaST也得到了大家的好评。SuSE还开发了SuSE Linux eMail Server III,是一个非常稳定的电子邮件群组应用。

另外。SuSE的硬件检測也非常优秀。该版本号在server和工作站上都用得非常好。在安装方面,SuSE拥有界面友好的安装过程,还有图形管理工具,可方便地訪问Windows磁盘。对于终端用户和管理员来说使用它相同方便,这使它成为了一个强大的server平台。在桌面方面,SUSE支持kde和gnome,xface等桌面,桌面特效比較丰富。新手用这个也非常easy上手,缺点是KDE尽管华丽多彩。但比較不稳定。

Red Hat



    1991年,Linus的Linux内核公布,同年加拿,多伦多大学毕业的Bob Yong在纽约把UNIX用户组引入系统管理*软件。

加强了Linux用户的管理功能。

1993年。Bob Yang 创立了ACC公司,主要营销Linux和UNIX的支持软件和书籍杂志。

1994年。美国卡内基梅隆大学毕业的Marc Ewing建立了自己的Linux分销业务,并公布了Red Hat Linux 1.0。

1995年,AAC公司的Bob Yang 收购了Marc Ewing的业务,合并后的ACC公司成为新的Red Hat软件公司,并公布了Red Hat Linux 2.0。 1997年12月,Red Hat Linux 5.0公布。它支持Intel、alpha和Sparc平台和大多数的应用软件。极其简单易用的RPM模块化的安装、配置和卸载工具,使程序的安装可在15分钟内完毕。软件升级也非常方便,这对刚開始使用Linux的用户来说是非常好的消息。
2003年4月,Red Hat Linux 9.0公布。重点放在改善桌面应用方面。包含改进安装过程、更好的字体浏览、更好的打印服务等。2004年4月30日,Red Hat公司正式停止对Red Hat 9.0版本号的支持,标志著Red Hat Linux的正式完结。

原本的桌面版Red Hat Linux发行包则与来自社区的Fedora计划合并,成为Fedora Core发行版本号。Red Hat公司宣布不再开发桌面版的Linux发行包,而将所有力量集中在server版的开发上,也就是Red Hat Enterprise
Linux版。

    Redhat系列,包含RHEL、Fedora Core(由原来的Redhat桌面版本号发展而来,免费版本号)、CentOS(RHEL的社区克隆免费版本号)。

发展到RHEL5时分成了两个版本号,Server和Desktop。

Server版本号又分为:



    Red Hat Enterprise Linux Advanced Platform相应曾经的 Red Hat Enterprise Linux AS

    Red Hat Enterprise Linux相应曾经的Red Hat Enterprise Linux AS



    Desktop版本号分为:



    Red Hat Enterprise Linux Desktop相应曾经的Red Hat Desktop

    Red Hat Enterprise Linux Desktop with Workstation option 相应曾经的Red Hat Enterprise Linux WS  



    Fedora



    Fedora(原名 Fedora Core 自第七版更名为Fedora)是众多 Linux 发行套件之中的一个。是一个开放的、创新的、前瞻性的操作系统和平台,基于 Linux。它同意不论什么人*地使用、改动和重公布。不管如今还是将来。Fedora的前身是Red
Hat Linux。2003年9月 。红帽公司 (Red Hat) 突然宣布不再推出个人使用的发行套件Red Hat Linux而专心发展商业版本号(Red Hat Enterprise Linux)。但红帽公司也同一时候宣布将原有的 Red Hat Linux 开发计划和 Fedora 计划整合成一个新的 Fedora Project。

Fedora Project 将会由红帽公司赞助,以 Red Hat Linux 9 为范本加以改进。原本的开发团队将继续參与 Fedora 开发计划。同一时候也鼓舞开放原始码社群參与开发工作。

Fedora被红帽公司定位为新技术的实验场,与 Red Hat Enterprise Linux 被定位为稳定性优先不同,很多新的技术都会在 Fedora Core 中检验,假设稳定的话红帽公司则会考虑增加 Red Hat Enterprise Linux 中。

Fedora 估计每年发行 2~3 次的发行版本号。

Ubuntu



    Ubuntu是如今最流行的Linux桌面系统。它简单方便。有KDE和GNOME等视窗界面可供选择,拥有强大的apt-get软件管理程序,安装个管理软件非常方便。

    Ubuntu严格来说不能算一个独立的发行版本号。Ubuntu是基于Debian的unstable版本号加强而来,能够这么说,Ubuntu就是一个拥有Debian全部的长处。以及自己所加强的长处的近乎完美的 Linux桌面系统。

依据选择的桌面系统不同。有三个版本号可供选择,基于Gnome的Ubuntu,基于KDE的Kubuntu以及基于Xfc的Xubuntu。

特点是界面很友好,easy上手,对硬件的支持很全面。是最适合做桌面系统的Linux发行版本号。   
 



*******************************************************************************************************



    2.安装redhat系统



    对于安装系统我们有下面基本的方法:

        

        (1)DVD光盘安装;

        (2)u盘引导安装;

        (3)网络引导安装;

        (4)使用iso文件安装(虚拟机时能够使用)

    

    *对于redhat安装时主要有下面几个方面要注意:

    

        (1)/boot、/和swap的大小设置建议大小分别为:



             /boot          200M

             /                  5G(或者很多其它。最好使用LVM)

             swap         所分配内存的大小



        (2)设置好时区(为Asian/Shanghai)、超级用户password

   

*******************************************************************************************************           

    3.掌握linux下的常规操作



        登陆和注销

        

        登陆linux系统须要username和password,分为超级用户(root)和普通用户。两者之间存在着权限的差异。

   

        虚拟控制台:RHEL在电脑为用户提供了6个能够使用的虚拟控制台(Virtual Console)拟当Unix的”哑终端“。

我们能够用CTRL+ALT+F1~F6这6个组合键来訪问相应的VC。每一个VC相应6个组合键中的一个,在图形界面时能够用组合键CTRL+ALT+F7回到图形环境。

        

        假设是在控制台中要进行用户的切换使用su命令,超级用户切入到普通用户能够直接切换。

登陆控制台之后我们能够看到一个等待用户输入命令的行提示符号:

        

        [root@server home]#



       第一个是指用户为root,server为我们的主机名(输入命令hostname能够查看),第三个为我们当前工作文件夹

       这个格式在当前用户的家文件夹中的文件下设置。假设是超级用户root。能够查看文件:

        

        [root@foundation0 ~]# vim /root/.tcshrc



       命令行提示符的结尾为#说明是超级用户。假设是$说明是普通用户

        

       

       文件路径(绝对路径和相对路径)

       

       绝对路径:在Linux中。绝对路径是从/(也被称为根文件夹)開始的,比方/usr、/etc/X11。

       相对路径:相应的就不是从/開始描写叙述的,以当前文件夹.開始进行描写叙述。(.为当前文件夹,..为当前文件夹的上一级文件夹)



       文件和文件夹操作命令

        

       1.ls命令



       这个命令就相当于 dos 下的 dir 命令一样 也是 Linux 控制台命令中最为重要几个命令之中的一个。ls 最经常使用的參数有三个-a、-l 和 –F:



       ls -a

       Linux 系统上的文件以.开头的文件被系统视为隐藏文件。仅用 ls 命令是看不到他们的。而用ls -a除了显示一般文件名称外。连隐藏文件也会显示出来。



       ls –l

       这个命令能够使用长格式显示文件内容 假设须要察看更具体的文件资料就要用到 ls -l 这个指令。

       

       ls -F

       在列出的文件 文件夹 名称后加一符号 比如可运行文件加 "*", 文件夹则加 "/"。

       

       2.cd命令



       cd 这个命令是用来进出文件夹的,它的用法和在 dos 下没什么两样,但和dos不同的是Linux的文件夹对大写和小写是敏感的假设大写和小写拼写有误,你的cd操作是成功不了的。

另外,cd 假设直接输入,cd 后面不加不论什么东西。

会回到使用者自己的 Home
文件夹。如果如果是 root 那就是回到/root。这个功能同 cd ~是一样的。

3. mkdir rmdir命令



      mkdir 命令用来建立新的文件夹

      如输入例如以下命令

      mkdir work

      将在当前文件夹下新建一个 work 文件夹

      rmdir 用来删除已建立的文件夹

      如输入例如以下命令

      rmdir work

      将删除已存在的空文件夹 work        



      *假设要删除的文件夹不为空的话,使用rmdir无法进行删除。使用命令:

      [root@foundation0 Desktop]# rm 文件夹文件 -fr

     

      4. cp命令



      cp 这个命令相当于 dos 以下的 copy 命令

      详细使用方法是:



      cp –r 源文件(source) 目的文件(target)

      參数 r 是指连同源文件里的子文件夹一同拷贝  

      在我们的shell设置中,把cp -r的别名设置成了cp。两者功能同样。

      

      5. rm命令



      rm 这个命令是用来删除文件的

      rm 命令经常使用的參数有三个-i,-r,-f



      比方我如今要删除一个名字为 text 的一个文件

      输入例如以下命令

      rm –i test

      系统会询问我们是否要删除 test 文件 敲了 y/n 确认是否要删除 test 文件



      rm –r 文件夹名

      这个操作能够连同这个文件夹以下的子文件夹都删除

      功能比上面讲到的 rmdir 更强大 不仅可能删除指定的文件夹 并且能够删除该文件夹下全部文件和子文件夹。

rm –f 文件名称

      这个操作能够不经确认强制删除文件

      

      *须要强调的是,rm 文件 -fr这个命令是十分危急的。当你不清楚它运行后的结果的时候请不要轻易使用,以免造成文件的丢失。

      

      6. mv命令



      mv 这个命令的功能是移动文件夹或文件

      引申的功能是给文件夹或文件重命名

      比方:

      mv /tmp/xxx.tar /root

      该命令将/tmp 文件夹下的 xxx.tar 文件移动到/root 文件夹下,须要注意的是mv此时和cp命令有着些许区别,mv会把移动文件的安全上下文属性保留。cp则会使用目标文件夹的安全上下文。

      

      查看文件的安全上下文:

      [root@foundation0 mnt]# ll file -Z

      -rw-r--r--. root root unconfined_u:object_r:mnt_t:s0   file



      这个是cp后的结果。安全上下文由mnt_t改为public_content_t。

      [root@foundation0 mnt]# cp file /var/ftp/pub/file1

      [root@foundation0 mnt]# ll /var/ftp/pub/file1 -Z

      -rw-r--r--. root root unconfined_u:object_r:public_content_t:s0 /var/ftp/pub/file1

      这个是mv后的结果。安全上下文未发生改变:

      [root@foundation0 mnt]# mv file /var/ftp/pub/

      [root@foundation0 mnt]# ll /var/ftp/pub/file -Z

      -rw-r--r--. root root unconfined_u:object_r:mnt_t:s0   /var/ftp/pub/file



      *安全上下文是linux系统中第二种安全机制。与selinux是息息相关的。相当于给每一个文件一个标签,通过安全上下文能够限制文件的功能。



      文件重命名:

      mv aaa.tar bbb.tar

      则是将当前文件夹下的文件 aaa.tar 更名为 bbb.tar      

       

      7. cat命令



      cat 这个命令是 linux 中很重要的一个命令,它的功能是显示或连结一般的ascii文本文件。它的使用方法例如以下:



      cat text

      该命令显示 text 这个文件的内容



      cat file1 file2

      该命令依顺序显示 file1,file2 的内容



      cat file1 file2>file3

      该命令把 file1,file2 的内容结合起来再重定向>到 file3 文件里  



      8. more命令



      more 是显示一般文本文件的指令。假设一个文本文件太长了超过一个屏幕的画面。用cat来看实在是不理想就能够试试 more。

使用方法例如以下:

      more file1 

     

      9. pwd命令



      pwd 这个命令的作用是显示用户当前的工作路径。直接输入 pwd 就可以。



      演示样例:

      [root@foundation0 mnt]# cd /var/ftp/pub/

      [root@foundation0 pub]# pwd

      /var/ftp/pub



      用户及用户组管理命令



      1. useradd命令



      useradd 命令能够创建一个新的用户帐号,其最基本使用方法为:

      useradd username



      如输入下面命令

      useradd newuser,系统将创建一个新用户 newuser,该用户的 Home 文件夹为/home/newuser。

      

      useradd 命令的參数较多,经常使用的组合为:



      useradd username -g 组名 –G 组名 -d Home文件夹名 -p password

      当中:

      -g 指定该用户的首要组

      -G 指定该用户的次要组

      -d 指定该用户的 Home 文件夹

      -p 指定该用户的password



      如输入下面命令:

      useradd oracle –g oinstall –G dba –d /home/oracle –p ora123



      系统将创建一个用户oracle。oracle用户的首要组为oinstall,次要组为dba,Home文件夹为/home/oracle。password为 ora123。

     

      *当要查看系统是否有某个用户的时候。使用命令id:



      id username



      2.userdel命令



      userdel命令用于删除一个已经存在的帐号,其使用方法为:

      userdel username



      3.groupadd命令

      groupadd 命令能够创建一个新的用户组,其最基本使用方法为:



      groupadd 组名



      如输入下面命令:

      groupadd newgroup



      系统将创建一个新的用户组 newgroup    

      

      4.groupdel命令



      groupdel 命令用于删除一个已存在的用户组,其使用方法为:



      groupdel 组名



      5.passwd命令



      出于系统安全考虑 Linux 系统中的每个用户除了有其username外还有其相应的用户口令,用户能够随时用passwd命令改变自己的口令。该命令的一般格式为:



      passwd



      输入该命令后。按系统提示一次输入password和password确认后。就可以完毕对用户password的改动      此外,超级用户还能够改动其它用户的password,命令例如以下:

      

      passwd username

      

      6.su命令



      su 命令这个命令很重要,它能够让一个普通用户拥有超级用户或其它用户的权限也能够让超级用户以普通用户的身份做一些事情。普通用户使用这个命令时必须有超级用户或其它用户的口令。假设想要离开当前用户的身份能够键入 exit 命令。su 命令的一般形式为:

      su - username



      7.chmod命令



      使用权限 : 全部使用者

      使用方式 : chmod [-cfvR] [--help] [--version] mode file...

      说明 : Linux/Unix 的档案调用权限分为三级 : 档案拥有者、群组、其它。利用 chmod 能够藉以控制档案怎样被他人所调用。



      參数 :

      mode : 权限设定字串。格式例如以下 : [ugoa...][[+-=][rwxX]...][,...],当中:



      u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者。o 表示其它以外的人,a 表示这三者皆是。

 

      + 表示添加权限、- 表示取消权限、= 表示唯一设定权限。

      r 表示可读取,w 表示可写入,x 表示可运行,X 表示仅仅有当该档案是个子文件夹或者该档案已经被设定过为可运行。

      -c : 若该档案权限确实已经更改,才显示其更修改作

      -f : 若该档案权限无法被更改也不要显示错误讯息

      -v : 显示权限变更的具体资料

      -R : 对眼下文件夹下的全部档案与子文件夹进行同样的权限变更(即以递回的方式逐个变更)

      --help : 显示辅助说明

      --version : 显示版本号



      范例 :将档案 file1.txt 设为全部人皆可读取 :\

      chmod ugo+r file1.txt 



      将档案 file1.txt 设为全部人皆可读取 :

      chmod a+r file1.txt 



      将档案 file1.txt 与 file2.txt 设为该档案拥有者。与其所属同一个群体者可写入。但其它以外的人则不可写入 :

      chmod ug+w,o-w file1.txt file2.txt 



      将 ex1.py 设定为仅仅有该档案拥有者能够运行 :

      chmod u+x ex1.py 



      将眼下文件夹下的全部档案与子文件夹皆设为不论什么人可读取 :

      chmod -R a+r * 



      此外chmod也能够用数字来表示权限如 chmod 777 file

      语法为:chmod abc file

      当中a,b,c各为一个数字,分别表示User、Group、及Other的权限。

      r=4,w=2。x=1

      若要rwx属性则4+2+1=7;

      若要rw-属性则4+2=6;

      若要r-x属性则4+1=5。



      范例:

      chmod a=rwx file和chmod 777 file效果同样。

      chmod ug=rwx,o=x file和chmod 771 file 效果同样。

      若用chmod 4755 filename可使此程序具有root的权限。



      8.chown命令



      chown 用于更改某个文件或文件夹的属主和属组,这个命令也非经常常使用。比如root用户把自己的一个文件拷贝给用户 oracle 为了让用户 oracle 可以存取这个文件,root用户应该把这个文件的属主设为 oracle 否则用户oracle无法存取这个文件。



      chown 的基本使用方法为:

      chown [用户:组] 文件



      举例:

      chown oracle:dba text

      该命令将 text 文件的属主和属组分别改为 oracle 和 dba。



      磁盘及文件系统管理命令:



      1.df命令



      作用:df命令用来检查文件系统的磁盘空间占用情况,使用权限是全部用户。



      格式 df [options]



      主要參数



          -s:对每一个Names參数仅仅给出占用的数据块总数。

-a:递归地显示指定文件夹中各文件及子文件夹中各文件占用的数据块数。

若既不指定-s,也不指定-a,则

          仅仅显示Names中的每个文件夹及当中的各子文件夹所占的磁盘块数。

-k:以1024字节为单位列出磁盘空间使用情况。

          -x:跳过在不同文件系统上的文件夹不予统计。

-l:计算全部的文件大小,对硬链接文件则计算多次。

-i:显示inode信息而非块使用量。

          -h:以easy理解的格式印出文件系统大小。比如136KB、2 4MB、21GB。

-P:使用POSIX输出格式。

-T:显示文件系统类型。

说明



      df命令被广泛地用来生成文件系统的使用统计数据,它能显示系统中全部的文件系统的信息。包含总容量、可用的空暇空间、眼下的安装点等。

超级权限用户使用df命令时会发现这种情况:某个分区的容量超过了100%。

这是由于Linux系统为超级用户保留了10%的空间。由其单独支配。也就是说,对于超级用户而言,他所见到的硬盘容量将是110%。

这种安排对于系统管理而言是有优点的,当硬盘被使用的容量接近100%时系统管理员还能够正常工作。 



      使用演示样例:

      [root@foundation0 yum.repos.d]# df -h

      Filesystem      Size  Used Avail Use% Mounted on

      /dev/sda1       462G   50G  413G  11% /

      devtmpfs        1.8G     0  1.8G   0% /dev

      tmpfs           1.8G   12K  1.8G   1% /dev/shm

      tmpfs           1.8G   17M  1.8G   1% /run

      tmpfs           1.8G     0  1.8G   0% /sys/fs/cgroup

      /dev/loop0      3.5G  3.5G     0 100% /content/rhel7.0/x86_64/dvd



      2. mount 和 umount

      mount 命令有非常多參数。当中大多数都不会在日常工作中用到。mount 命令最常见的使用方法例如以下所看到的:



      mount [选项] 设备 文件夹

      当中最经常使用的选项是 -a,把/etc/fstab 文件里列出的文件系统都挂装上



      挂装软驱和光驱的命令比較简单,直接输入下面命令就可以:



      mount /mnt/cdrom

      mount /mnt/floppy



      umount 命令用于卸载一个文件系统,命令的格式例如以下:



      umount [ -f ] directory



      当中directory 是准备卸载的文件夹名



      umount 命令有一个不足之处 假设文件系统正在使用中 也就是说有人在那个分区上打开了文件 就无法把这个文件系统卸载下来 这时能够使用和- f參数强制运行卸载操作 当然这样的操作可能会造成用户数据的丢失。如:



      umount -f /mnt/cdrom



      该命令将强制卸载挂装在/mnt/cdrom 文件夹下的文件系统

     

      所以我们给出的建议是,最好先退出所要卸载的文件夹,然后再运行卸载命令。

*******************************************************************************************************



    4.linux的文件夹结构

    

    关于linux的文件夹结构,我这里找到一篇博客解释的很具体。对于文件夹及其各个文件的功能都有着很具体的解释,大家能够学习并进行理解:

    

    链接地址:http://yangrong.blog.51cto.com/6945369/1288072



*******************************************************************************************************

    

    5.linux下的网络配置:

    

    关于linux的网络配置,redhat6和redhat7有着细微的区别:

    

    网卡的名称发生了改变,在redhat6中,我们着重关注的文件是ifcfg-eth0和ifcfg-br0(与虚拟机进行桥接的文件),而在redhat7中,ifcfg-eth0变成了ifcfg-enp3s0f0的形式。也就是说eth0网卡失效了。可是这几个文件的文件夹并没有发生改变:

    

    网络配置文件文件夹:/etc/sysconfig/network-scripts/

    

    假设我们不进行桥接的情况下。在ifcfg-eth0和ifcfg-enp3s0f0中须要写入下面參数:

    

    DEVICE       设备名称                                   与ifcfg-后的名字要同样,否则系统无法识别;



    ONBOOT       YES|NO                                 在又一次启动网络时是否开启该网卡



    BOOTPROTO    dhcp | (static | none) 



dhcp表示我们主机的IPADDR,GATEWAY,DNS都是自己主动获取的,这个设置要想成功的话,当前的环境中必需要有dhcpserver开启,否则会获取失败,假设设置为static或者none,则需要手动设置IPADDR,GATEWA Y和DNS1的值。  
 



    GATEWAY      环境的网关IP

    IPADDR       与网关在同一网段的IP

    DNS1         域名解析serverIP

    NETMASK      子网掩码(能够与IPADDR进行与运算确定该IP网段)      

     

*******************************************************************************************************

    

    6.制作yum源(本地、远程)及yum命令的基本操作



    关于yum源非常多同学并不了解它的机理。yum是一个软件包管理器,一般我在安装完一个虚拟机的时候第一时间就是设置它的yum仓库,由于仅仅有这样我们才干够轻松的安装redhat官方提供给我们的各种工具包。所以熟悉和懂得yum仓库的配置是非常重要的。



    为什么是YUM?



    基于RPM包管理。可以从指定的server自己主动下载RPM包而且安装,可以自己主动处理依赖性关系。而且一次安装全部依赖的软件包。无须繁琐地一次次下载、安装。

    是的,它帮助我们把各种RPM包的依赖性解决好了,仅仅须要运行yum命令安装就能够了,所以非常有用。

制作远程yum源



    这个就相当于是别人把yum源做好之后。把地址共享出来,我们设定好远程yum源后,每次在安装某个软件的时候,事实上是在本地查询软件的包依赖关系,依照依赖关系在远程的ftpserver下载指定的包,完毕安装后删除(系统默认,可保存包)所下载的包。

    此时你仅仅须要设置一个配置文件就可以,该文件的文件夹为:

    

    /etc/yum.repos.d/

    在这个文件夹下的文件都是以repo为后缀结尾的,比如:yum.repo



    编辑yum.repo文件,以下是我给出的一个演示样例:

    

    [source]

    name=localserver

    #baseurl=ftp://192.168.3.252/pub/rhel7.0

    baseurl=file:///content/rhel7.0/x86_64/dvd

    gpgcheck=0



    我们做下解释。第一行为一个源的名称(能够自己定义),name是对这个源的描写叙述(能够自己定义)。baseurl是yum源的指定文件夹。假设是远程的yum源使用ftp://,假设是本地的yum源使用file://然后加上yum源的绝对路径

    gpgcheck决定是否要对所下载的包进行校验,0为否。1为是。



    这个是repo文件中基本的參数。还有其它的參数,以后有需求了再进行应用:



    cachedir:  yum缓存的文件夹。yum在此路径下存储下载的rpm包和数据库,通常是/var/cache/yum。

    debuglevel:除错级别,0──10,默认是2

    logfile:   yum的日志文件。默认是/var/log/yum.log。



    pkgpolicy: 包的策略。一共同拥有两个选项。newest和last,这个作用是假设你设置了多个repository。而同一软件在不同的repository中同一时候存在,yum应该安装哪一个。假设是newest,则yum会安装最新的那个版本号。

假设是last。则yum会将serverid以字母表排序,并选择最后的那个server上的软件安装。一般都是选newest。



    distroverpkg:指定一个软件包。yum会依据这个包推断你的发行版本号,默认是redhat-release。也能够是安装的不论什么针对自己发行版的rpm包。



    exactarch:有两个选项1和0,代表是否仅仅升级和你安装软件包cpu体系一致的包,假设设为1,则如你安装了一个i386的rpm,则yum不会用i686的包来升级。

 

    retries:   网络连接错误发生后的重试次数,假设设为0。则会无限重试。

tolerent:  也有1和0两个选项,表示yum是否容忍命令行发生与软件包有关的错误,比方你要安装1,2,3三个包。而当中3此前已经安装了,假设你设为1则yum不会出现错误信息,默认是0。

exclude:   排除某些软件在升级名单之外,能够用通配符。列表中各个项目要用空格隔开,这个对于安装了诸如美化包,中文补丁的朋友特别实用。

 

    gpgcheck: 有1和0两个选择,分别代表是否是否进行gpg校验。假设没有这一项,默认好像也是检查的。

    plugins:  是否启用全部的插件(plug-in),默觉得0,代表不启用。因为RHEL为YUM提供了一个名为rhn-plugin的插件,以便读取RHN提供的YUM下载源。因此你必须保持这个參数为1,才干顺利使用RHN的YUM下载源来安装、升级你的RHEL。

metadata_expire: 定义YUM缓存中数据的过期时间。单位为秒。

proxy:    指定读取下载源时使用的代理server的路径(URL)。

制作本地yum源:

    

    制作本地yum源分为两个步骤:



    (1)首先。我们要把iso镜像文件挂在到指定的文件夹中。写入/etc/fstab文件;



     写入的内容与以下内容类似:



/content/rhel7.0/x86_64/isos/rhel-server-7.0-x86_64-dvd.iso   /content/rhel7.0/x86_64/dvd   iso9660   loop,ro   0 0



     *每次改动完/etc/fstab中须要运行命令mount -a;  

  

    (2)然后在/etc/yum.repos.d/yum.repo文件里写入baseurl參数中。

*每次改动完repo文件,请运行yum clean all命令进行刷新。

关于yum的基本操作有下面几个命令:



         查看全部安装包的列表    yum list

         查看命令是何种包支持的  yum whatprovides 命令

         安装包                  yum install 包

         删除安装过的包          yum remove 包

         再次安装包              yum reinstall 包

         组安装                  yum groupinstall 包

         组删除                  yum groupremove 包

    

*******************************************************************************************************



(二)linux系统知识:



*******************************************************************************************************



    1.redhat7的图形界面和6有着比較大的差别。它将之前的几个文件夹集和到了Applications里边,大家能够尝试着里边的应用,图形界面我们不做过多的解释。

图形界面和字符界面的切换:

     

    图形---->字符: 

    [root@foundation0 yum.repos.d]# init 3

    

    字符---->图形:

    [root@foundation0 yum.repos.d]# init 5



    假设我们想要改动系统的开机默认界面。redhat6和7的方法有差别:

    

    redhat6改动开机启动界面:

    编辑/etc/inittab文件。在最末尾设置开机级别。0-6七个级别。



    redhat7改动开机启动界面:



    查看/etc/inittab文件例如以下所看到的:

 

    # multi-user.target: analogous to runlevel 3

    # graphical.target: analogous to runlevel 5

    #

    # To set a default target, run:

    #

    # ln -sf /lib/systemd/system/<target name>.target /etc/systemd/system/default.target

 

    能够看到图形界面和字符界面相应的參数分别为:



    graphical.target(5)和multi-user.tartget(3)



    开机默觉得图形界面:



    ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target    



    开机默觉得字符界面:



    ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target    

    

*******************************************************************************************************          

    2.使用nautilus以图形方式管理文件



    打开文件管理器:

    [root@foundation0 Desktop]# nautilus



    进入管理器后要想看到隐藏文件(以.开头的文件):

    ctrl+h



    想要訪问远程ftp文件文件夹:

    单击“Connect to Server”。输入ftp://XXX.XXX.XXX.XXX就可以訪问远程ftp(前提是对方开发了ftp服务)



    *管理和訪问文件我们建议尽量的使用命令行进行处理。

*******************************************************************************************************



    3.熟悉redhat的文档阅读(redhat官方站点下载或者在本地owncloud处下载redhat7文档并阅读)



*******************************************************************************************************

     

    4.配置本机系统时钟



    时钟的设置是很有必要的,对于监控和系统报警的软件。准确的时钟是至关重要的,当时钟不准确时我们须要进行及时的调整,有命令和图形的两种方法:

    

    (1)使用命名ntpdate直接改动:

    

     ntpdate XXX.XXX.XXX.XXX(开放ntpd服务的主机)

     

     *完毕后使用命令date能够进行确认

    

    (2)使用system-config-date打开图形界面进行同步设置。

*******************************************************************************************************

    

    5.shell的简单介绍和使用



    Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。

它接收用户输入的命令并把它送入内核去运行。

    实际上Shell是一个命令解释器,它解释由用户输入的命令而且把它们送到内核。

不仅如此,Shell有自己的编程语言用于对命令的编辑。它同意用户编写由shell命令组成的程序。Shell编程语言具有普通编程语言的非常多特点,比方它也有循环结构和分支控制结构等,用这样的编程语言编写的Shell程序与其它应用程序具有相同的效果。

    Linux提供了像MicrosoftWindows那样的可视的命令输入界面--X Window的图形用户界面(GUI)。它提供了非常多桌面环境系统,其操作就像Windows一样,有窗体、图标和菜单。全部的管理都是通过鼠标控制。

GNOME。

每一个Linux系统的用户能够拥有他自己的用户界面或Shell,用以满足他们自己专门的Shell须要。

    同Linux本身一样,Shell也有多种不同的版本号。主要有下列版本号的Shell:

   

    Bourne Shell:是贝尔实验室开发的。

    BASH        :是GNU的Bourne Again Shell,是GNU操作系统上默认的shell。

    Korn Shell  :是对Bourne SHell的发展,在大部分内容上与Bourne Shell兼容。

C Shell     :是SUN公司Shell的BSD版本号。

Z Shell     :The last shell you’ll ever need! Z是最后一个字母。也就是终极Shell。

它集成了bash、ksh的重要特性,同一时候又添加了自己独有的特性。



    *shell的使用之前我们已经介绍了部分命令,然而对于shell的学习不仅限于此。在以后的linux学习中我们还要接触脚本的编程,让系统的管理变得自己主动化。可是前面的命令操作是基石,希望大家可以熟练掌握。



*******************************************************************************************************



    6.管理物理存储

    

        主要掌握的命令fdisk,而且在分区结束后要使用命令partprobe刷新分区表.



        查看设备:

        [root@foundation0 Desktop]# cat /proc/partitions

        

        关于磁盘分区的具体介绍能够查看博客:

        http://blog.chinaunix.net/uid-29622064-id-4221446.html



*******************************************************************************************************



    7.使用LVM灵活存储(LVM的创建、使用、扩展、销毁)



    *这个内容是我们重点进行解说的。并且大家都要做总结进行整理。 



    请注意xfs和ext4文件系统在扩展的时候使用的命令有所差异:

    

    xfs使用的命令是:

    [root@foundation0 Desktop]# xfs_growfs 设备名(lv)

 

    ext4使用的命令是:

    [root@foundation0 Desktop]# resize2fs 设备名(lv)



    也能够參看博客(ext4文件系统的操作):

    http://blog.chinaunix.net/uid-29622064-id-4225209.html



*******************************************************************************************************



    8.使用man手冊获取帮助



    对命令的操作不熟悉时。或者在C语言编程对函数的參数有不了解的地方。则须要使用man命令进行查找。它有非常多个查找类型:

    

       1   Executable programs or shell commands

       2   System calls (functions provided by the kernel)

       3   Library calls (functions within program libraries)

       4   Special files (usually found in /dev)

       5   File formats and conventions eg /etc/passwd

       6   Games

       7   Miscellaneous (including macro packages and conventions), e.g. man(7), groff(7)

       8   System administration commands (usually only for root)

       9   Kernel routines [Non standard]

    

    *小提示:在man中假设搜索某个keyword。使用“/查找keyword”高速的进行定位。而且能够按“n”进行下一个的匹配

   

*******************************************************************************************************



    9.查看管理系统进程    



    熟练掌握下面命令:

    

    ps aux

    top

    kill



    我们能够通过上述的命令关闭某些进程。找到系统所占用资源最大的进程;找到指定的进程。

*******************************************************************************************************

 

    10.建立网络链接

    

    之前我们已经熟悉了网络配置文件中的部分參数意义,这个阶段的内容就是要可以准确的配置,让主机可以连接外网,可以通过ping命令进行检验,一旦可以发送接受数据包说明二者之间可以通信。



    而且我们要熟悉网络故障排错的一般流程(这个是要作为作业总结的^_^)



*******************************************************************************************************



    11.系统服务的管理(keyword:systemctl)  



    对于系统服务的管理,redhat7和6有着不小的差别:

    在redhat6中我们在/etc/init.d/文件夹下进行服务的开关,比如:

 

    /etc/init.d/network restart

    

    而在redhat7中,我们使用systemctl命令进行开关服务:

    

    systemctl start network



    主要须要掌握下面几个命令:



    systemctl start      服务名称

    systemctl stop       服务名称

    systemctl status     服务名称

    systemctl restart    服务名称



*******************************************************************************************************



    12.文件权限

    

    ls -l能够列出文件的权限,可是这仅仅是一部分。我们要学习怎样改动文件权限,怎样改动文件的安全上下文,以及setacl和getacl的使用。



*******************************************************************************************************



    13.使用ssh远程管理系统(keyword:公私钥、ssh-keygen)



    ssh能够远程訪问系统。使用所訪问系统的username和password。

    ssh-keygen能够生成认证文件,通过非对称加密。把公钥拷贝给相应的远程主机,能够实现无password认证的远程訪问。

*******************************************************************************************************



    14.apache、vsftpd和vncserver的配置



    了解apache、vsftpd和vnc服务端的安装包有那些;

    安装上述的服务。而且可以简单的改动配置文件;

    开启服务。

 

*******************************************************************************************************



    15.管理物理存储(keyword:tune2fs、swap交换分区)



    通过磁盘分区生成swap分区,并对磁盘分区进行加入和删除



*******************************************************************************************************



    16.selinux和iptables基本设置



    selinux是安全上下文,上面的内容已经做了简单的介绍。



    SELinux(Security-Enhanced Linux) 是美国国家安全局(NSA)对于强制訪问控制的实现,是 Linux历史上最杰出的新安全子系统。NSA是在Linux社区的帮助下开发了一种訪问控制体系,在这样的訪问控制体系的限制下,进程仅仅能訪问那些在他的任务中所须要文件。SELinux
默认安装在 Fedora 和 Red Hat Enterprise Linux 上,也能够作为其它发行版上easy安装的包得到。

我们要知道selinux的配置文件在:

    /etc/sysconfig/selinux中,它有三种模式:

    

    #     enforcing - SELinux security policy is enforced.              强制打开模式

    #     permissive - SELinux prints warnings instead of enforcing.    打开并警告模式

    #     disabled - No SELinux policy is loaded.                       关闭模式



    在命令行下能够进行状态的切换(前提是selinux是打开状态):

    setenforce (0 | 1)  0为permissive,1为enforcing

    getenforce            能够得到selinux的状态    



    对于iptables我们临时仅仅须要学会怎样去打开和关闭iptables,关于iptables的加入策略有兴趣的同学能够在网上搜索资料自行学习。

*******************************************************************************************************

    

    17.软链接和硬链接(ln命令)



    软连接和硬连接能够查看博客:

    http://blog.chinaunix.net/uid-29622064-id-4220416.html



*******************************************************************************************************



    18.归档和压缩(keyword:tar命令)



    这个就是我们windows其中的压缩和解压缩。要求我们要熟悉tar命令。

关于tar命令的解释,网上有非常多博客介绍到了:

    http://blog.csdn.net/ericbaner/article/details/3966741

    

    关于解压缩除了tar之外,我们有时还须要解压zip和rar压缩包:



    1)对于.zip

  linux下提供了zip和unzip程序,zip是压缩程序。unzip是解压程序。它们的參数选项非常多,

这里仅仅做简介。依然举例说明一下其使用方法:



  # zip all.zip *.jpg

  这条命令是将全部.jpg的文件压缩成一个zip包



    # unzip all.zip

  这条命令是将all.zip中的全部文件解压出来



  2)对于.rar



  要在linux下处理.rar文件,须要安装RAR for Linux。能够从网上下载,但要记住,RAR for Linux不是免费的。然后安装:

  # tar -xzpvf rarlinux-3.2.0.tar.gz

  # cd rar

  # make

  这样就安装好了,安装后就有了rar和unrar这两个程序。rar是压缩程序,unrar是解压程序。



    它们的參数选项非常多。这里仅仅做简介。依然举例说明一下其使用方法:

  # rar a all *.jpg

  这条命令是将全部.jpg的文件压缩成一个rar包,名为all.rar,该程序会将.rar



    扩展名将自己主动附加到包名后。

  # unrar e all.rar

  这条命令是将all.rar中的全部文件解压出来   

   

*******************************************************************************************************



    19.vim的使用



    关于vim的使用技巧,这里推荐《VI和VIM编辑器(第7版)(中文版).pdf 》,在owncloud上面有电子版,具体的介绍了vim的使用。



    练习:自己安装ctags,而且结合vim进行高速的源代码阅读。



******************************************************************************************************* 

    20.正則表達式

    

    在我们今后学习linux下的shell编程时。会具体的进行说明。



    练习:学会使用find命令查找指定文件

  

*******************************************************************************************************







 

                                                                                

                                                                                 作者:linux_player_c

                                                                                 邮箱:597114476@qq.com