首页 > 代码库 > linux

linux

Linux基础

 一、基础命令

    1ls:列出当前目录下的的文件或目录

2ls -a :列出当前目录下所有的文件和目录(包括隐藏文件)

3ls -l :显示文件的详细信息(长格式的信息查看),相当于 ll

   ls -hl:显示文件的详细信息和文件的大小

   ls -al:列出当前目录下所有的文件和目录的详细信息

   ls -dl:显示当前文件本身的详细信息

4cat 命令:查看文件信息(只能查看文件)

      [root@com ~]# cat /etc/passwd :查看所有的用户信息

  [root@com ~]# cat /etc/group  :查看所有的用户组信息

  注明:在Linux系统中每创建一个用户就会自动生成一个对应的用户组。

5cd命令:切换目录(注意切换的时候路径要写全)

     [root@com ~]# cd /etc :切换到根目录下的etc目录

pwd:显示当前文件的目录

whoami:查看当前的用户

       [root@com etc]# whoami:查看当前用户是root用户

               root

6/:表示用户的根目录

          添加用户adduser

                 passwd 密码

      家目录(宿主目录)

  1)管理员用户的家目录:

     [root@com ~]# pwd

 /root

  2)普通用户的家目录:

     [java17@com ~]$ pwd

 /home/java17

7、切换用户命令:su - 用户名

   1)切换到普通用户

   [root@com ~]# su - java17

[java17@com ~]$ pwd

/home/java17

       2)切换到root管理员用户

   [java17@com ~]$ su -

   [java17@com ~]$ su - root

       Password:

8、关机、重启、清屏

        关机:haltinit 0shutdown now

        重启:rebootinit6

        清屏:clearCtrl+l

二、Linux文件和目录的一些常用命令

1touch命令:创建一个空文件

root用户的家目录下创建一个java17.txt的空文件

    [root@com ~]# touch java17.txt

 2)在root用户的家目录下创建一个带空格的文件(对有空格文件加上引号即可)

    [root@com ~]# touch "program file"

2rm命令:删除文件或目录

   删除root用户家目录下的program这个空文件

   [root@com ~]# rm program

3mkdir命令:创建一个目录

   1[root@com ~]# mkdir java17:创建一个java17的目录

   2)删除java17这个目录:[root@com ~]# rm -rf java17

  注意:如果java17这个目录下还有文件,向一次性删除,用到选项-rf

                -f:在使用中很容易将系统中重要的文件删掉,所以在使用中要谨慎。

       3)递归创建目录 -p

      [root@com ~]# mkdir -p beifeng/laowang

    4cp命令:复制一个文件或目录

        拷贝根目录下etc配置目录下的passwd文件到root用户家目录下的beifeng目录中

        [root@com ~]# cp /etc/passwd /root/beifeng

        查看是否复制成功:[root@com ~]# ls beifeng

                           file  laowang  passwd

5mv命令:剪切和重命名移动

1)如需要将 /tmp 目录下的tomcat.zip文件剪切到 /usr/local 目录下,执行命令即可:
# mv /tmp/tomcat.zip  /usr/local

       2)重命名的功能

          [root@com ~]# mv laowang gebilaowang

    6more命令:分页查看文件的内容

       [root@com ~]# more /etc/services

    1)按回车键:一行一行的查看文件内容

2)按一下空格键:一页一页的查看文件的内容

3)退出文件查看:qCtrl+c

7head命令

   1)查看一个文件的前几行(默认是查看前十行)

      [root@com ~]# head /etc/services

   2)选项 -nn代表数字)查看文件的前30

      [root@com ~]# head -30 /etc/services

8tail命名:查看文件的后几行(默认查看文件的后十行)

   1[root@com ~]# tail /etc/services (默认查看文件的后十行)

       2)查看文件的后三十行

          [root@com ~]# tail -30 /etc/services

       3)动态查看文件的后十行

          [root@com ~]# tail -f /etc/services   

       注意:文件可能优势回进行添加和删除,加上选项-f就能保证我们要查看最后十行文件信息数据

9find命令:查找文件或目录

   查看文件名为java17.txt的文件同时显示目录信息

   [root@com ~]# find -name java17.txt

       ./java17.tx

   [root@com ~]# find / -name beifeng01

       /beifeng01

三、vi编辑器

   1、三种模式:

    1)命令行模式:刚进入文件的时候状态

   [root@com ~]# vi /etc/passwd

2)编辑模式(插入模式):按i键进入编辑模式

3)最后行模式:保存和退出状态

   a.如果我们对文件进行了修改要进行保存的话,先进入命令行模式anEsc进去最后行模式后

     Shift : wq 对文件进行保存并退出。

   b.如果指示查看文件信息不进行对其编辑直接进入命令行模式按Esc进入最后行模式进行退出,

     Shift : q!进行强制退出。

    注意:w:保存   q:退出   !:强制操作

这三个选项可以联合使用。

   2vi快捷键

    1G:在命令行模式按G进入文件最后一行

        2gg:在命令行模式按gg进入文件的第一行

3)在最后行模式输入:set nu 显示文件的行号

   不显示行号 set nonu

4dd:在命令行模式删除一行数据,同样带有剪切的功能

      如果要删除多行,直接在dd前面加上数字即可,比如7dd

    5p:黏贴的功能,命令行模式使用

6u:撤销操作

7)替换内容,在最后行模式操作

   :1,$s/nologin/88888888/g

注释:1:表示文件的第一行,不一定十从第一行开始,也可以重其他行开始,只要修改前面的数字即可。

$:表示文件的最后一行 中间的斜线起到了分隔的作用

   g:表示通行(全部替换的意思)

\ 表示命令未结束换行继续

注意: \后面不能任何字符,直接回车

$ cat /etc/sysconfig/\

> network-scripts/ifcfg-eth0

 

补充命令

5wc(word count)统计命令:统计单词、字符、行数,支持管道符号  

   $ wc file.log

 1  4 19 file.log   行数  单词数  字节数

 

  $  wc -l  /etc/passwd   统计行数

 

   $  head -3 /etc/passwd  |  wc  -l

    

    统计某个文件或目录的大小或者是占用的存储空间大小

  du -sh  /test

四、文件系统常用的命令

       1df命令:查看系统文件占用情况(分区大小)

      [root@com ~]# df 选项 挂载点

  选项:

       -a:显示所有系统文件信息,包括特殊的和隐藏的系统文件

   -h:显示文件的一个大小容量,比如KBMBGB

   -T: 显示系统文件的一个类型

   -m: MB为单位显示文件大小容量

   -k: KB为单位显示文件大小容量,默认都是以KB为大那位的

     1)查看root目录下的系统文件

    [root@com ~]# df

 2)显示文件的大小和占用情况

                    [root@com ~]# df -h

         df –lh 磁盘的详细使用实用信息

        2du命令:统计目录和文件的大小

      格式:[root@com ~]# du 选项 目录或文件

   选项:

       -a:显示每个子文件的磁盘占用量。默认情况下只统计子目录的占用量

   -h:显示文件的一个大小容量,比如KBMBGB

   -s: 统计总占用量,不显示子文件的占用量

      1)查看etc目录及子目录下的文件大小

     [root@com ~]# du -h /etc/

  2)查看etc目录及子目录的总大小,不显示子目录

     [root@com ~]# du -sh /etc

 35M     /etc

Du sh / file /

文件的占用大小

补充:du命令和df命令的区别:

1df命令十从文件系统考虑的,不光要文件的空间,还要统计被命令或系统程序占用的空间,

最常见就是文件已经被删除,但是程序并没有释放空间。所以说用df命令查看文件或目录的剩余空间更准确。

2du命令是面向文件的,只会统计文件或目录的占用空间,用du命令查看文件或目录更准确。

root用户的时候

 

 fdisk  l

 查看详细的磁盘占用,缓存情况 ,挂载的对应磁盘情况

修复磁盘

fsck / 对应要修复的磁盘 /  它会自动修复

mount查看挂载的磁盘信息

 挂载磁盘

mount / 要挂载的磁盘/ 要挂载那个目录下

  卸载磁盘

umount / 磁盘/

默认情况下网卡的相关信息都在

etc/sysconfig/network-scripts

ping 0 .0 .0 .0的时候其实ping 的就是本地ip地址(127.0.0.1

五、用户(adduser)和用户组(groupadd)

   1、创建用户:

adduser 用户名

      root@com ~]# adduser jerry :创建一个名为jerry的普通用户

  jerry:x:501:501::/home/jerry:/bin/bash

   2、给用户设置密码

      [root@com ~]# passwd jerry(密码为123456

   3、创建号用户后查看用户信息

      [root@com ~]# cat /etc/passwd

      jerry:x:501:501::/home/jerry:/bin/bash

   4、以root管理员用户为例,分析用户信息

      root:x:0:0:root:/root:/bin/bash

      用户信息一般分为7个字段

  1)第1个字段

     用户名:root

  2)第2个字段:密码位x

     查看用户密码文件(只能在管理员用户下查看)

 [root@com ~]# cat /etc/shadow

 root:$1$6Lb6HpD1$uWDZbUlGEOj8EqHWAj52m/:17254:0:99999:7:::

  3)第3个字段:用户的一个UID编号位

     0:表示管理员用户

 1——499:表示伪用户

 500——65535:表示普通用户

  4)第4个字段:用户组的GID编号位

      一个用户组里面可以有多个用户

  [root@com ~]# usermod -G webadmin jerry

查看用户组文件

  [root@com ~]# cat /etc/group

   root:x:0:

      5)第5个字段:说明位(对用户进行解释说明的)

  6)第6个字段:用户的一个宿主目录,就是说用户开始登录后的哪个位置

  7)第7个字段:shell的命令环境,用户登录后就可以写shell脚本语言,

Linux默认使用的是/bin/bash

   5、影子文件(就相当于passwd的影子,用户的密码文件)

      查看用户的密码文件

  root:$1$6Lb6HpD1$uWDZbUlGEOj8EqHWAj52m/:17254:0:99999: :::

      一共有9个字段

  1)第一个字段:用户名

  2)第二个字段:加密的密码

     散列式的一个加密方法:SHA512加密

 如果!!、* 表示用户没有密码,不能登录

  3)第三个字段:密码最后修改的时间

     使用197011号的第17254天。

  4)第四个字段:第二次修改时间和修改的时间差

     如果是0就代表没有时间差,忽略不计

  5)第五个字段:表示用户密码的一个有效期

     99999表示在创建用户之后第99999天内密码有效

  6)第六个字段:密码到期前得到的一个警告天数

  7)第七个字段:表示密码到期后的宽限天数

     如果是8就表示宽限天数为8

  8)第八个字段:账户的失效天数

  9)第九个字段:起到一个保留信息的作用(暂无显示任何内容)

   6、创建组

      创建一个名为wedadmin的组

      [root@com ~]# groupadd webadmin

  webadmin:x:502:

   7、将用户添加到组里

      所用到的命令:usermod -G 用户组 用户名

  jerry用户添加到webadmin这个组中

  [root@com ~]# usermod -G webadmin jerry

  webadmin:x:502:jerry

   8、删除一个用户

      用到的命令:userdel

  [root@com ~]# userdel jerry(删除不彻底)

  [root@com ~]# userdel -r jerry(彻底删除用户)

   9、删除组

      用到的命令:groupdel

  [root@com ~]# cat /etc/group

六、用户的模板(/etc/skel  

1)在用户模板目录中添加一条信息

   [root@com skel]# vi warning.txt

2)新建一个用户,进入用户的家目录查看是否将用户模板目录里添加的文件拷贝过来

    [root@com ~]# cat /home/jerry/warning.txt

            welcome beifeng!

七、权限

使用方式 : chmod [-cfvR] [--help] [--version] mode file... 
说明 : Linux/Unix 的档案调用权限分为三级 : 档案拥有者、群组、其他。利用 chmod 可以藉以控制档案如何被他人所调用。 
参数 : 

mode : 权限设定字串,格式如下 : [ugoa...][[+-=][rwxX]...][,...],其中 
表示该档案的拥有者,表示与该档案的拥有者属于同一个群体(group)者,表示其他以外的人,表示这三者皆是。 
表示增加权限、表示取消权限、表示唯一设定权限。 
表示可读取,表示可写入,表示可执行,表示只有当该档案是个子目录或者该档案已经被设定过为可执行。 
-c : 若该档案权限确实已经更改,才显示其更改动作 
-f : 若该档案权限无法被更改也不要显示错误讯息 
-v : 显示权限变更的详细资料 
-R : 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更
--help : 显示辅助说明 
--version : 显示版本 

       1、文件的一个权限位

   查看Music目录的权限

[root@com ~]# LL -d Music

drwxr-xr-x. 2 root root 4096 Mar 28 19:29 Music

   1)第1个位置d:目录

   2)第234个位置:表示所有者对该文件的拥有的权限

      rread

  wwrite

  xexcute 执行

   3)第567个位置:表示所属组对该文件的拥有的权限

      -:表示没有权限的意思

   4)第8910个位置:表示其他人对该文件的拥有权限

      补充:所有者:u  root

        所属组:g  root

其他人:o   

   2、设置权限

      1)以test文件为例:

          [root@com ~]# ll -d test

          -rw-r--r--. 1 root root 0 Mar 29 18:50 test

          改变所有者的权限:chmod

 [root@com ~]# chmod u+x test

          [root@com ~]# ll -d test

          -rwxr--r--. 1 root root 0 Mar 29 18:50 test

          补充:如果test文件其他人的权限修改后,要将修改后的该文件拷贝到其他用户目录下,要将该文件修改后的

                具备的所有属性信息都拷贝进去要用到选项-p  

                [root@com ~]# chmod o+w test

                 -rwxr--r--. 1 root root 0 Mar 29 19:16 test

 

                [root@com ~]# cp -p test /home/jerry

                [jerry@com ~]$ ll -d test

-rwxr--rw-. 1 root root 0 Mar 29 18:50 test

       2)设置其他人和所属组对test文件的执行权限

       [root@com ~]# chmod g+x test

   [root@com ~]# ll -d test

   -rwxr-xrw-. 1 root root 0 Mar 29 18:50 test

   [root@com ~]# chmod o+w test

   [root@com ~]# ll -d test

   -rwxr--rw-. 1 root root 0 Mar 29 18:50 test   

   3、设置所有者和所属组

      设置test文件的所有者为jerry(用到的命令:chown

  [root@com ~]# chown jerry test

  [root@com ~]# ll -d test

  -rwxr-xrw-. 1 jerry root 0 Mar 29 18:50 test

  设置test文件的所属组为jerry(用到的命令:chgrp

  [root@com ~]# chgrp jerry test

  [root@com ~]# ll -d test

  -rwxr-xrw-. 1 jerry jerry 0 Mar 29 18:50 test

补充一个简便方法:将test文件的所有者和所属组一起改成root

[root@com ~]# chown root:root test

[root@com ~]# ll -d test

-rwxr-xrw-. 1 root root 0 Mar 29 18:50 test

      4、用数字进行修改文件的操权限

         r4      w2      x1

         [root@com ~]# chmod 777 test

         [root@com ~]# ll -d test

         -rwxrwxrwx. 1 root root 0 Mar 29 18:50 test

 

        课堂作业:如果在普通用户jerry下有一个mysite目录,该目录下的结构为

                  /mysite/hadoop/mr,他们的操作权限分别是

                  mysitejerry root

                  hadooproot jerry  

      mrrootjerry

要求:将mysite目录及子目录的所有者和所属组都修改成root

用到选项-R

[root@com ~]# chown -R root:root mysite

八、date时间设置

        1、设置本地时区

            [root@com ~]# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

cp: overwrite `/etc/localtime‘? y

        2、当前日期和时间

            Date

        显示日历2017年的日历表 cal  2017

            必须要是root用户

         Date s 2017 -03-02 设置年月日

         Date s 14:22:01  设置时分秒

        3、以数字的形式显示日期和时间

           [root@com ~]# date -d ‘7 day ago‘ ‘+%Y%m%d%H%M‘ (两个根号之间要有空格)

           201703231123

        4改写crt外联为中文更改语言环境

           root用户登录。输入【vi /etc/sysconfig/i18n

   如果安装系统为中文系统,则修改【LANG=zh_CN.UTF-8”】

   如果安装系统为英文系统,则修改【LANG=en_US.UTF-8”】

    九、man帮助命令

    1、可以查看命令的一些帮助信息

     [root@com ~]# man ls

    2、可以查看一些配置文件的信息

    [root@com ~]# man services

            service-name:网络服务名

port:端口号

protocol:协议

aliases:别名

3、查看网络配置文件信息

# service-name  port/protocol  [aliases ...]   [# comment]

  discard         9/tcp           sink null

十、管道符:|

    1、定义:将一个命令的输出结果作为另一个命令输入参数

2、命令格式:[root@com ~]# cat /etc/services | more

   注意:前一个命令一定是正确的输出才能执行后面的一个命令

   补充:grep——>从一个文件中搜索出一个字符串所在的行数据

   [root@com ~]# grep ‘jerry‘ /etc/passwd

jerry:x:501:501::/home/jerry:/bin/bash

3、用grep命令显示jerry所在的行数并标识颜色

           [root@com ~]# grep -n --color=auto ‘jerry‘ /etc/passwd

            32:jerry:x:501:501::/home/jerry:/bin/bash

    4、管道符和grep命令联合使用

    1显示当前系统中的关于ESTABLLSHED的网络文件

        [root@com ~]# netstat -an | grep ESTABLISHED

tcp    0     52 192.168.207.120:22    192.168.207.1:5060     ESTABLISHED

        2)查看用户文件中的关于‘root

[root@com ~]# cat /etc/passwd | grep root

             roo         t:x:0:0:root:/root:/bin/bash

             ope         rator:x:11:0:operator:/root:/sbin/nologin

 等价于[root@com ~]# grep ‘root‘ /etc/passwd

十一、追加和覆盖

1、追加 >>:以追加的方式将命令正确的输出 输出到文件或设备中去

用法:[root@com ~]# date >> abc

                  [root@com ~]# cat abc

  20170330日 星期四 14:13:50 CST

补充:错误信息追加 2 >>:以追加的方式将错误的命令输出 输出到文件或设备中去

 [root@com ~]# lss 2>>abc

 20170330日 星期四 14:13:50 CST

 -bash: lss: command not found

2、覆盖 >:以覆盖的方式把命令的正确输出 输出到指定的文件或设备中去

用法:[root@com ~]# date >abc

[root@com ~]# cat abc

          20170330日 星期四 14:20:53 CST

补充:错误信息的覆盖 2>:以覆盖的方式把命令的错误输出 输出到指定的文件或设备中去

     [root@com ~]# lss 2>abc

 [root@com ~]# cat abc

-bash: lss: command not found

 

uname:查看本系统

   -r 查看系统内核

Cat  /proc/cpuinfo

  查看CPU配置信息

Cat  /proc/meminfo

查看内存详细信息

 

    十二、关闭防火墙

(一次性的)

service iptables stop --停止

service iptables start --启动

    1、禁用Linux的安全子系统,在selinux文件中

   路径:/etc/sysconfig/selinux

   将设置为禁用:[root@com ~]# vi /etc/sysconfig/selinux  SELINUX= disabled

2、查看防火墙状态:[root@com ~]# service iptables status

3、关闭防火墙:

    [root@com ~]# service iptables stop

iptables:清除防火墙规则:[确定]

iptables:将链设置为政策 ACCEPTfilter [确定]

iptables:正在卸载模块:[确定]

4、设置开机是否启动相关服务(可以理解为永久性修改)

   查看开始是否自启动

   [root@com ~]# chkconfig

   NetworkManager  0:关闭  1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭

abrt-ccpp       0:关闭  1:关闭  2:关闭  3:启用  4:关闭  5:启用  6:关闭

abrtd           0:关闭  1:关闭  2:关闭  3:启用  4:关闭  5:启用  6:关闭

acpid           0:关闭  1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭

 .......

5、关闭防火墙设置开机不启动

            [root@com ~]# chkconfig iptables off

[root@com ~]# service iptables status

iptables:未运行防火墙。(表示Linux中的防火墙成功被关闭)

十三、sudo权限

         文件所在位置/etc/sudoers

        1、它的操作对象是系统命令(系统命令是存放在/bin/sbin

        2、命令格式:visudo--->给普通用户赋予管理员的权限操作

   [root@com ~]# visudo (管理员身份运行)

   root    ALL=(ALL)-->使用的身份       ALL

   用户    被管理的主机地址             授权的命令

   jerry   ALL=(root)NOPASSWD:ALL

3、用普通用户操作管理员的命令的话要加上 sudo + 系统命令  

   比如:[jerry@com ~]$ sudo reboot————》重启系统

十四、压缩和解压缩

        1、压缩

           linux系统压缩格式有:

           .gz  (gzip命令:只能压缩文件不能压缩目录,压缩后的格式是.gz)

   .tar ()

   .tar.gz

gzip命令:只能压缩文件不能压缩目录,压缩后的格式是.gz

举例:在root家目录下创建一个file文件,将/etc/services文件拷贝到file文件中去,

              然后使用jerry用户进行对file文件的压缩。压缩后格式为.gz

  [jerry@com ~]$ sudo gzip /root/file

  file.gz

        2、解压缩文件

   gunzip命令——>解压.gz压缩包命令

   [jerry@com ~]$ sudo gunzip /root/file.gz

   file

3、压缩文件或目录为.tar

           命令格式:sudo tar 文件或目录(可以保留原文件)

           举例:用jerry用户将root用户下的file文件拷贝到/opt下,然后用jerry用户将file文件压缩成file.tar格式

            [jerry@com opt]$ sudo tar -cvf file.tar file   

file

[jerry@com opt]$ ls

file  file.tar  rh

        4、压缩成.tar.gz格式(常用的压缩类型)

   [jerry@com opt]$ sudo gzip file.tar

[jerry@com opt]$ ls

file  file.tar.gz  rh

   解压:

   [jerry@com opt]$ sudo tar -zxf file.tar.gz -C ./

   [jerry@com opt]$ ls

   file  file.tar.gz  rh

   [jerry@com opt]$ sudo tar -zxf file.tar.gz -C /root

   [jerry@com opt]$ sudo ls /root

   file

   -c:建立一个压缩文件的参数指令

   -x:解开一个压缩文件的参数指令

   -t:查看tarfile里面的文件

   -f:使用档名,请留意f之后要立即接上档名,不要再加参数。

           -C;指定解压后文件存放的位置

    十五、Linux下配置JDK环境变量

    1、解压jdk1.7

   首先在/opt目录下创建一个softwares目录,专门存放压缩文件

       /opt目录下创建一个modules目录,专门存放解压缩文件

    [jerry@com softwares]$ sudo tar -zxf jdk-7u67-linux-x64.tar.gz -C /opt/modules/

[jerry@com softwares]$ ls /opt/modules/

             jdk1.7.0_67

2、修改配置信息(千万不能写错)

   [jerry@com ~]$ sudo vi /etc/profile

   #JAVA_HOME

export JAVA_HOME=/opt/modules/jdk1.7.0_67

export PATH=$PATH:$JAVA_HOME/bin

        3、生效修改后的配置文件

   [root@com ~]# source /etc/profile

4、查看jdk是否安装成功

   [root@com ~]# java -version

           java version "1.7.0_67"

    十六、find搜索命令

      搜索命令会消耗系统的大量资源

  语法格式:find 搜索范围 搜索内容

1、根据文件名搜索

  a.根据具体的文件名

    [root@com ~]# find / -name init

/sbin/init

/lib/alsa/init

  b.模糊查询带有关键字init的文件

[root@com ~]# find /etc -name *init*

/etc/pam.d/run_init

/etc/X11/xinit/xinitrc-common

  c.查找以init关键字为开头的文件

    [root@com ~]# find /etc -name init*

  d.查找以init后面三个字符的文件

    [root@com ~]# find /etc/ -iname init???

/etc/inittab

注释:*号匹配的是任意字符,也叫通配符

      ?号是匹配的单个字符

注意:-iname不区分大小写

  [root@com ~]# find /etc/ -iname INIT???

  /etc/inittab

2、根据文件的大小搜索

            -size,它有两个指定模式,一个是+:大于,一个-:小于,不加符号表示=

[root@com ~]# find / -size +2M

[root@com ~]# find / -size -2M

[root@com ~]# find / -size 2M

3、根据文件的类型去搜索

   a.根据文件类型搜索   (f)         

    [root@com ~]# find /etc -name init* -type f

/etc/init/init-system-dbus.conf

/etc/inittab

           b.根据目录类型搜索(d

     [root@com ~]# find /etc -name init* -type d

 /etc/init

 /etc/rc.d/init.d

    Linux软件安装(root用户)

1.RPM命令

检查某个软件是否安装

qa|grep   java   查看java是否安装

e  -- nodeps  卸载软件 卸载多个的时候用空格隔开

ivh  .rpm  安装

2.tar命令(不推荐)

源码编译 的方式安装软件

3.解压软件

$ unzip  xxx.zip

压缩

  Zip yy.zip 文件

tar软件(大数据一般的软件都是tar包)

解压

   tar zxvf   xxx.tar.gz  (解压到当前目录下)

   tar zxvf   xxx.tar.gz  -C  / 文件目录/解压到指定的位置下

   tar  - zcvf  xx.tar.gz 目录

    十七、Linux软件包的管理

    1Linux中的软件包主要针对于服务器的

2windows中软件包不能在Linux中直接使用

3Linux中的软件包的分类

   1)源码包:一般Linux系统中的内核里面才存在的源码包,特点是开源免费。

   2)二进制包:

      特点:*比较常用,是经过编译的,简化软件包的一个操作。

        *不能看到源码

*安装速度要比源码包快

*具有依赖性,安装起来非常繁琐

  二进制包常用的有:rpm包——》系统默认的包

yum——》自动解析依赖性,针对于解决rpm包的依赖性

    十八、RPM包管理

    1rpm包的一个命名规则:tftp -server-0.49-7.el6.x86_64.rpm

   tftp -server---->软件包名

           0.49-7————>软件的版本号

   el6.x86_64——》适合什么系统

   rpm——》包的类型

2rpm包一个依赖性

1)树形依赖:a->b-c 安装软件包a时,要求先安装软件包b,在安装软件包b时要求先安装软件包c...

2)环形依赖:a->b-c-a :重复回头安装,很繁琐

        3、首先要对光驱进行挂载:mount命令

            [root@com ~]# mount /dev/cdrom /media

           补充:进入挂载的光驱目录下,所有的挂载文件都在   /media/Packages

           查看Packages里面挂载的软件包总条数:

   [root@com Packages]# ls | wc -l

   3956      

        4rpm包的管理

  a.安装一个软件包:

    依赖安装:

[root@com Packages]# rpm -ivh mysql-connector-odbc-5.1.5r1144-7.el6.x86_64.rpm

warning: mysql-connector-odbc-5.1.5r1144-7.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID c105b9de: NOKEY

error: Failed dependencies:

libodbcinst.so.2()(64bit) is needed by mysql-connector-odbc-5.1.5r1144-7.el6.x86_64

unixODBC is needed by mysql-connector-odbc-5.1.5r1144-7.el6.x86_64

一次性安装成功:

[root@com Packages]# rpm -ivh zlib-devel-1.2.3-29.el6.x86_64.rpm

warning: zlib-devel-1.2.3-29.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY

Preparing...                ########################################### [100%]

1:zlib-devel             ########################################### [100%]

          b.卸载安装包:(不加包的后缀名)

    命令格式:[root@com Packages]# rpm -e zlib-devel-1.2.3-29.el6.x86_64

  c.查询

    *查询rpm包安装是否成功(不加包的后缀名)

 [root@com Packages]# rpm -q zlib-devel-1.2.3-29.el6.x86_64

 zlib-devel-1.2.3-29.el6.x86_64

*查询所有已经安装好的rpm

 [root@com Packages]# rpm -qa

*查询httpd主包是否安装

 [root@com Packages]# rpm -q httpd

 httpd-2.2.15-26.el6.centos.x86_64

*查询软件包的一个详情信息

[root@com Packages]# rpm -qi httpd

*查询系统文件属于哪个包 选项-qff表示文件)

1)查询ls命令属于哪个rpm

[root@com Packages]# rpm -qf /bin/ls

coreutils-8.4-19.el6.x86_64

2)查询ntp.conf这个系统脚本文件属于属于哪个包 

[root@com Packages]# rpm -qf /etc/ntp.conf

ntp-4.2.4p8-3.el6.centos.x86_64

    十九、yum命令

    1、作用:用来解决rpm包的依赖性

2、使用它的条件:需要可用的外网

3、特点:方便、快捷、自动解析依赖

        麻烦的是需要搭建源,比较麻烦

4、命令格式:#yum

*列出系统中所有已经安装好的rpm

 [root@com ~]# yum list

 yum-utils.noarch     1.1.30-37.el6         base

         包名                  版本                 仓库名

*查看httpd-tools

         [root@com ~]# yum list | grep httpd-tools

httpd-tools.x86_64                         2.2.15-26.el6.centos          @anaconda-CentOS-201303020151.x86_64/6.4

httpd-tools.x86_64                         2.2.15-56.el6.centos.3        updates

@anaconda-CentOS-201303020151.x86_64/6.4————》表示该包已经安装成功

 

5、安装(不加后缀名)

   *选择确定安装:

   [root@com ~]# yum install mysql-connector-odbc-5.1.5r1144-7.el6.x86_64

    y

            Complete!

   

    *自动下载安装:

    [root@com ~]# yum -y install mysql-connector-odbc-5.1.5r1144-7.el6.x86_64

Complete!

 

*卸载软件包:

[root@com ~]# yum -y remove mysql-connector-odbc-5.1.5r1144-7.el6.x86_64

Complete!

 

6yum仓库

路径位置:/etc/yum.repos.d/

 

查看仓库里面的4个配置文件

[root@com yum.repos.d]# ls

             CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo  CentOS-Vault.repo

 

 CentOS-Base.repo为例

 [root@com yum.repos.d]# cat CentOS-Base.repo

 gpgcheck=1——>代表是否开启验证

             gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 ——》校验公密所在的位置。

 

 有时候校验失败:

   *ping不通外网

   *包根本无法下载(配置仓库信息错误)

shell编程

    一、shell编程的概念

   1shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面

      系统程序。用户可以通过shell来启动、挂载、停止甚至编写一些程序。

   2shell还是功能强大的编程语言,易调试,易编辑、灵活性强,shell是结识知识性的脚本语言。

      shell中直接调用Linux中系统命令。

    二、shell执行原理

    1. 在我们计算机语言中,最底层是硬件,硬件是通过内核进行管理的。内核通过管理硬件进行功能的实现,

   但是在计算机语言里底层硬件只能识别0101...的机器语言,无法识别a,b,c,asc码语言。在这中间就需要一个

   翻译机制进行编译,就是所谓的shell编辑器,shell编辑器可以讲外层输入的asc码翻译成计算机能识别的机器语言,

   所以说内核要通过shell编辑器进行翻译才能对硬件进行管理。

        2.反之,硬件要将输入的请求响应给外层应用,那么我们内核是无法识硬件的机器语言,

  那么这时shell编辑器也会将硬件处理的机器语言翻译成asc语言给内核,内核再进行shell编辑器反馈给外层应用。

  最后就会得到我们想要的结果了!

    三、shell的分类

   1Bourne Shellbshell):从1979年起在unix系统中开始使用

      它的主要文件是:shbashzshpsh

   2C shellcshell):主要是一个升级版本

      它的主要文件是:cshtcsh

注意点:bshellcshell不能兼容,它们之间是独立的

        bashsh是可以相互兼容的。

四、Linux中支持的shell

    [root@com ~]# cat /etc/shells

/bin/sh

/bin/bash

/sbin/nologin

/bin/dash

/bin/tcsh

/bin/csh

五、shell脚本的一个执行方式:

    首先学一个回显命令:echo

[root@com ~]# echo laowang

laowang

 

  1、在root目录下创建一个sh目录专门存放shell脚本语言

     [root@com ~]# mkdir sh

  sh

  

  2、在sh目录下写一个.sh类型的脚本语言,比如hello.sh

     [root@com sh]# vi hello.sh

 #!/bin/bash (他不是注释,它代表一个标识,标称当前写的程序是shell脚本,不能省略)

 #fanjun(weibo.com/beifeng)

 echo "fan jun is the most honest man in beifeng!"

  3、执行写好的脚本

     第一种方式执行:通过bashsh调用执行脚本语言

 a.通过相对路径直接加脚本名执行

 [root@com sh]# bash hello.sh

 fan jun is the most honest man in beifeng!

 

 b.通过绝对路径直接加脚本名执行

 [root@com ~]# sh /root/sh/hello.sh

 fan jun is the most honest man in beifeng!

 

 第二种方式执行:直接通过写路径执行脚本语言

 前提:首先要给我们写好的脚本语言赋予755权限

 [root@com sh]# chmod 755 hello.sh

         -rwxr-xr-x. 1 root root 89 3月  31 11:27 hello.sh

 

 a.通过相对路径执行

 [root@com sh]# ./hello.sh

         fan jun is the most honest man in beifeng!

 

 b.通过绝对路径执行

 [root@com ~]# /root/sh/hello.sh

 fan jun is the most honest man in beifeng!

 

    六、shell变量类型(4种变量)

  1、用户自定义变量(只能在当前的shell中生效)

    1)常用的调用命令:echo $变量名

2)定义一个简单的变量

[root@com ~]# name=java17

[root@com ~]# echo $name

java17

3)变量的一个叠加

[root@com ~]# aa=123

[root@com ~]# aa="$aa"456

[root@com ~]# echo $aa

123456

 

变量叠加的第二种方式

[root@com ~]# abc=123

[root@com ~]# abc=${abc}456

[root@com ~]# echo $abc

123456

4)查看变量:set命令

root@com ~]# set

5)变量删除

[root@com ~]# unset abc

 

  2、环境变量(系统运行时缩用到的变量)

     特点:*它不仅在当前的shell种有效,在子shell中也有效

       *如果把环境变量写道特定的文件中,那么该环境变量在所有的shell中都有效

 举例说明:

 1)申明一个环境变量:export 变量名=变量值

 [root@com ~]# export age=18

 2)查看环境变量

 [root@com ~]# env

 3)删除环境变量

 [root@com ~]# unset age

 4)环境变量的类型

   a.系统环境变量:从U你在/etc/profile

     它是系统全局生效的配置文件,系统下所有的用户都能共享该文件

   b.用户环境变量:存在 ~/.bash_profile 文件中定义的变量

每个用户目录下都会有一个用户变量,用来保存每个用户的环境变量,只针对某一个用户生效,

 其他用户不能共享。

3、位置变量

获取执行脚本文件时所传入的参数,将传入的参数保存在位置变量中,以便在脚本中可以使用这些变量

举例说明:在脚本里面编写位置变量

  [root@com sh]# vi 1.sh

  #!/bin/bash

echo $0

echo $2

echo $3

echo $1

  给位置变量传参

  [root@com sh]# sh 1.sh start stop restart

1.sh$0指示回显脚本名称)

stop

restart

start

注意:a.执行shell脚本传参时,每个参数之间要用空格隔开。

b.如果编写脚本语言时不写位置变量,那么执行脚本传参时就不能有参数显示

 [root@com sh]# vi 2.sh

#!/bin/bash

      echo $0

[root@com sh]# bash 2.sh start stop restart

2.sh

  4、预定义变量

     $0:显示脚本名称

 $!:进程中的PID号,每个进程都有一个PID

 $$:当前进程中的ID

 $#:当前shell的参数个数

 $*:整体显示所有参数的内容

 $@:逐个显示所有参数内容

 $?:判断表示程序退出的代码(返回0代表成功,非0代表失败)

 举例1$?的使用

 正确退出返回0

 [root@com sh]# ls /etc

 [root@com sh]# echo $?

 0

    错误退出返回非0

[root@com sh]# ls /etc/hahaha

[root@com sh]# echo $?

2

举例2:使用S#显示参数的个数

[root@com sh]# vi 3.sh

#!/bin/bash

echo $#

[root@com sh]# bash 3.sh start stop restart

3

举例3$*的使用

[root@com sh]# vi 4.sh

#!/bin/sh

echo $*

 

[root@com sh]# bash 4.sh start stop restart

        start stop restart

 

举例4$@的使用

[root@com sh]# vi 5.sh

#!/bin/bash

echo $@

 

[root@com sh]# bash 5.sh start stop restart

start stop restart

七、逻辑符号

  1、逻辑与:&&,前面的命令执行成功后才会执行后面的命令

     格式:命令1 && 命令2

 

 举例说明:[root@com tmp]# cat /etc/passwd && mkdir /tmp/haha

           [root@com ~]# ll -d /tmp/haha

   drwxr-xr-x. 2 root root 4096 3月  31 15:23 /tmp/haha

   

  2、逻辑或:||,前面一个命令执行失败才会执行后面一个命令

                 但是如果前面一个命令执行成功,后面一个命令不会执行

 举例说明:[root@com ~]# cat /etc/passwdord || mkdir /tmp/hehe

cat: /etc/passwdord: 没有那个文件或目录

               [root@com ~]# cat /etc/passwd || mkdir /tmp/xixi(不会执行后面这个命令

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

  3、无逻辑符号 ; ----->多个命令顺序执行,命令之间没有任何逻辑关系(同时执行多个命令)

               [root@com ~]# ls;date;cd/user1;pwd

abc              Desktop    gebilaowang         Music         sh         text.txt

anaconda-ks.cfg  Documents  install.log         Pictures      Templates  Videos

beifeneg         Downloads  install.log.syslog  program file  test       warning.txt

beifeng          file       java17.txt          Public        test.txt

20170331日 星期五 15:33:24 CST

bash: cd/user1: 没有那个文件或目录/root

 如果有命令错误,则那个命令不执行,并在最后面提示对应的错误

八、shell的算术运算

  补充:命令--->declare :说明变量的类型

  格式:#declare +/- 选项 变量名

  选项  -:给变量设定类型属性

        +:取消变量的类型属性

-i:将变量申明为整数类型

-x:将变量申明为环境变量

-p:显示指定变量被声明的类型

 

    1)数值运算方法1

[root@com ~]# aa=11

[root@com ~]# bb=22

[root@com ~]# declare -i cc=$aa+$bb

[root@com ~]# echo $cc

33

2)数值运算方法2:(不推荐使用)

[root@com ~]# dd=$(expr $aa + $bb)

[root@com ~]# echo $dd

33

3)数值运算方法3

[root@com ~]# ee=$(($aa+$bb))

[root@com ~]# echo $ee

33

4)数值运算方法4

[root@com ~]# ff=$[$aa+$bb]

[root@com ~]# echo $ff

33

九、内置测试判断

 1、定义字符串必须加上双引号

[root@com ~]# a="I am"

[root@com ~]# echo $a

I am

     2、判断字符串之间是否相等,必须加上双引号

[root@com ~]# [ "$a" = "$b" ];echo $?

0

[root@com ~]# c="I love you"

[root@com ~]# [ "$a" = "$c" ];echo $?

1

 

 3、判断用户输入的是否是字母y,满足其中一个条件就可以完成表达式

    [root@com ~]# [ "$Yn"="Y" -o "$Yn"="y" ];echo $?

0

 4-e 文件名,如果文件存在则为真

[root@com ~]# [ -e /etc/passwd ];echo $?

0

 

[root@com ~]# [ -e /etc/ ];echo $?

        0

 

 5-r 文件名 如果文件存在且可读则为真

    注意不再当前位置需要加上绝对路径

[root@com ~]# [ -r /root/passwd ];echo $?

1

    

     6-w 文件名 如果文件存在且可写则为真

    [root@com ~]# [ -w /etc/passwd ];echo $?

0

 7-x 文件名 如果文件存在且可执行则为真

    [root@com ~]# [ -x /etc/passwd ];echo $?

        1

 

第一种测试方式

 1、数值比较:用到一些选项

     -eq:等于

 -ne:不等于

 -gt:大于

 -ge:大于等于

 -lt:小于

 -le:小于等于

注意:在数值比较中不能使用><=

举例1[root@com sh]# vi 6.sh

      #!/bin/bash

a=9

b=15

if [ $a -lt $b ]

then

  echo smaller

 

[root@com sh]# sh 6.sh

                 smaller

 2、字符串的比较:分为5种比较方式

     = :等于

 != :不等于

 -z:长度为0则为true

 -n:长度不为0则为true

 str:字符串不为空则为true

  

 举例2[root@com sh]# vi 7.sh

#!/bin/sh

str1="abc"

str2="abc"

str3=

if [ $str1 = $str2 ]

then

echo equal

fi

 

[root@com sh]# bash 7.sh

equal

 

 3、文件的测试或比较

    -d:如果是目录则为真

-f:如果是文件则为真

-r:如果可读则为真

-w:如果可写则为真

-x:如果可执行则为真

举例3[root@com sh]# vi 8.sh

        #!/bin/sh

if [ -f $1 ]

then

 echo is file

fi

 

[root@com sh]# bash 8.sh

is file

 

第二方式:

    [root@com sh]# vi 9.sh

 

#!/bin/sh

if test 10 -gt 9

then

 echo bigger

fi

 

[root@com sh]# bash 9.sh

bigger

 

    十、shell控制语句

    第一个:if

语法:if 条件判断

       then

     command....

  fi

  

    第一种写法举例:  [root@com sh]# vi 9.sh

 

#!/bin/sh

if test 10 -gt 9

then

 echo bigger

fi

 

[root@com sh]# bash 9.sh

bigger

 

    第二种写法举例: if 条件语句

                 then

   command....

  else

   comand....

 fi

   

                    [root@com sh]# vi 10.sh

#!/bin/sh

if [ -d /home/jerry/tmp ]

then

 ls/home/jerry/tmp

else

mkdir /home/jerry/tmp

 echo 目录创建成功

fi

 

[root@com sh]# bash 10.sh

目录创建成功

 

     第三种写法举例: if 条件语句

                  then

   command...

  elif 条件语句

  then

   command...

  elif 条件语句

  then

    command...

  ........

 else 条件语句

    command...

 

fi

 

 

    #!/bin/sh

#read score and choose level

#read 是一种交互式用法,他会读取设备输入

                        echo 请输入score

read score

if [ $score -ge 90 ]

then

 echo "levelA";

elif  test  $score -ge 80  -a  $score -lt 90

then

 echo "levelB";

elif  [  $score -ge 70  -a $score -lt 80  ]

then

 echo "levelC"

elif [  $score -ge 60 ]&&[ $score -lt 70  ]

then

 echo "levelD"

else

 echo "不及格"

fi

 

[root@com sh]# bash 11.sh

90

levelA

[root@com sh]# bash 11.sh

95

levelA

[root@com sh]# bash 11.sh

85

levelB

[root@com sh]# bash 11.sh

75

levelC

[root@com sh]# bash 11.sh

60

levelD

[root@com sh]# bash 11.sh

45

不及格

 

    第二个循环:for循环

            for [ 循环条件:循环控制]

do

  循环体

  echo command....

  

done

 

[root@com sh]# vi 12.sh

#!/bin/sh

sum=0

for ((i=0;i<10;i++))

do

 echo $i

sum=$((sum+i))

done

 echo $sum

 

[root@com sh]# bash 12.sh

0

1

2

3

4

5

6

7

8

9

45

    [root@com sh]# vi 13.bash

for MONTH in Jan Feb Mar Apr May Jun July Aug Sep Oct Nov Dev

do

 echo $MONTH

done

 [root@com sh]# bash 13.bash

Jan

Feb

Mar

Apr

May

Jun

July

Aug

Sep

Oct

Nov

Dev

while循环

  while [循环条件]

   do

     [循环体]

 [控制语句]

   done

   [root@com sh]# vi 14.bash

   #!/bin/sh

i=1

while [ $i -le 10 ]

do

 SUM=$((SUM+i))

 i=$[ i + 1 ]

done

 echo $SUM

 

 [root@com sh]# bash 14.bash

  55

case的用法

  第一种:

   [root@com sh]# vi 15.bash

   

#!/bin/sh

echo "input from : one two three"

read input

case $input in

one)echo "your input is one"

;;

two)echo "your input is two"

;;

three)echo "your input is three"

;;

*)echo "your input $input"

esac

[root@com sh]# bash 15.bash

input from : one two three

one

your input is one

[root@com sh]#

[root@com sh]# bash 15.bash

input from : one two three

oen

your input oen

[root@com sh]# bash 15.bash

input from : one two three

two

your input is two

[root@com sh]# bash 15.bash

input from : one two three

three

your input is three

[root@com sh]# bash 15.bash

input from : one two three

haha

your input haha

 

第二种写法:

[root@com sh]# vi 16.bash

#!/bin/bash

echo "input from : one two three"

read input

case $input in

 one | two )echo "your input is one or two"

 ;;

 three | four )echo "your input is three or four"

 ;;

 five | six )echo "your input is five or six"

 ;;

 *)echo "your inoujt is $input"

esac

 

[root@com sh]# bash 16.bash

input from : one two three

one

your input is one or two

[root@com sh]# bash 16.bash

input from : one two three

two

your input is one or two

[root@com sh]#

[root@com sh]# bash 16.bash

input from : one two three

three

your input is three or four

[root@com sh]# bash 16.bash

input from : one two three

haha

your inoujt is haha

 

 

系统的管理命令

    1top:查看系统资源

        每隔3秒更新一次,按q退出浏览状态

2free:查看内存信息

      选项 -m:就是以MB格式显示

  [root@com ~]# free -m

             total       used       free     shared    buffers     cached

Mem:          1869       1253        616          0         52        867

-/+ buffers/cache:        333       1536

Swap:         3999          0       3999

3df -l 查看硬盘分区信息

    [root@com ~]# df -l

文件系统                 1K-块      已用      可用 已用% 挂载点

/dev/sda3             47269816   3388120  41480468   8% /

tmpfs                   957344        76    957268   1% /dev/shm

/dev/sda1               297485     37256    244869  14% /boot

/dev/sr0               4251346   4251346         0 100% /media

4ps -ef 查看系统的进程

  [root@com ~]# ps -ef | grep crond

root      2127     1  0 09:36 ?        00:00:01 crond

root      6830  5112  0 17:44 pts/0    00:00:00 grep crond

5kill 杀死正在进行进程

  选项 -9

  kill -9 端口

6ifconfig:查看ip、子网掩码。。

7ping 检测网络质量和网络连接

       ping 主机名

   ping 地址 域名

8netstat:查看网络端口

   选项:-t:监控tcp协议的进程

         -llistnning

 -n:显示端口信息

 -p:显示进程的PID

 

 

卸载系统自带的jdk

   1、查询jdkrpm -qa | grep java

卸载系统自带JDK  

1、查询JDK: rpm -qa | grep java

2、卸载:   rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.50.1.11.5.el6_3.x86_64

  java-1.7.0-openjdk-1.7.0.9-2.3.4.1.el6_3.x86_64

 

一、磁盘管理(添加硬盘、分区、挂载)

    磁盘管理:

  *如何进行磁盘分区

  *如何对磁盘进行格式化

  *如何对磁盘进行挂载

1、查看系统所有设备情况

   [root@com ~]# fdisk -l

   Disk /dev/sda: 53.7 GB, 53687091200 bytes

2、查看系统文件设备目录

   [root@com ~]# ls -l /dev

    brw-rw----. 1 root disk      8,   0 3月  31 09:35 sda

brw-rw----. 1 root disk      8,   1 3月  31 09:35 sda1

brw-rw----. 1 root disk      8,   2 3月  31 09:35 sda2

b:代表是块(block)设备文件

sdaLinux系统中的一块硬盘

sda1sda2:代表第一块硬盘的第一个分区和第二个分区

ddisk 代表硬盘的意思  s:代表接口的意思  SSD:固态硬盘

3、硬盘的接口种类

   *服务端:satasas

   个人:idescis(用的比较多)

磁盘管理  

1、分配主分区(先要关闭虚拟机)

   *添加一个100G的硬盘   

   进入虚拟机编辑设置——》添加一个100G硬盘——》完成

   *进行磁盘的分区 [root@com ~]# fdisk /dev/sbd

   e   extended ——》扩展分区

       p   primary partition (1-4) ——》主分区

   主分区和扩展分区:<=4  3+1(主3,扩2)   2+1(主2,扩1

    2、分配扩展分区(扩展分区不能直接使用,要对它进行逻辑分区才能够使用)

    3、对扩展分区进行逻辑分区

4、格式化逻辑分区[root@com ~]# mkfs.ext4 /dev/sdb5

5、挂载:临时挂载:[root@com ~]# mount /dev/sdb5 /mnt

         永久挂载:[root@com ~]# vi /etc/fstab 在最后行添加

           /dev/sdb5      /mnt         ext4    defaults        0 0

6、查看磁盘分区:

   [root@com ~]# df -h

文件系统              容量  已用  可用 已用%% 挂载点

/dev/sda3              46G  3.3G   40G   8% /

tmpfs                 935M   72K  935M   1% /dev/shm

/dev/sda1             291M   37M  240M  14% /boot

/dev/sdb5              15G  166M   14G   2% /mnt

 

三)Crontab计划任务

-->周期性执行计划任务

 

选项使用:

crontab -l   (list )   #查看目前的计划任务列表

crontab -r   (remove)  #删除计划任务

crontab -e   (eidt)    #编辑周期性计划任务

 

   

    

进程名称是crond

ps -ef | grep crond $查看此进程是否开启

默认进程是开启的,如果没有开启,可以使用命令手动开启

# service crond status

# service crond start

# service crond stop

# service crond restart

 

# Example of job definition:

# .---------------- minute (0 - 59)

# |  .------------- hour (0 - 23)

# |  |  .---------- day of month (1 - 31)

# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...

# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat

# |  |  |  |  |

# *  *  *  *  * user-name command to be executed

 *    *      *            *             *

分钟 小时  天(of月)  月(of年)  星期(of周)

 

每天晚上1800执行一次拷贝/home/uer01/2.log文件到/opt/software的任务

0 18 * * * /bin/cp /home/uer01/2.log /opt/software

15 18 * * * /bin/cp /home/uer01/2.log /opt/software

 

每天晚上6点到第二天早上6点 每15分钟记录一次时间到/home/uer01/2.log文件中

*/15  18-23,0-6 * * * /bin/date  >> /home/user01/2.log

0,15,30,45  18-23,0-6 * * * /bin/date  -R >> /home/user01/2.log

 

注意:如果是离散的值,使用,”进行分割

  如果是连续的值,使用-”进行连接

 

 

0 6-12/2  * * 7 /bin/sh /home/user01/datelog.sh

 

datelog.sh

#!/bin/sh

/bin/echo "当前时间是:" >> /home/user01/2.log

/bin/date -R >> /home/user01/2.log

 

vi编辑器 高级特性

vi快捷方式

显示行号: set nu,进入最后行模式使用

光标快速移动到第一行,小写gg, 命令模式使用

光标快速移动到最后一行,大写G, 命令模式使用

删除一行,小写dd,(带有剪切功能)命令模式使用

粘贴一行,小写p,命令模式使用

删除多行,小写dd,加上数字,比如三行就是3dd,命令模式使用

撤销上一步的操作,小写u,命令行模式使用

 

删除、拷贝命令

在命令模式下

dd   剪切一行

ndd   剪切光标下方n

yy  复制一行

nyy   复制光标下方n

p     粘贴

 

替换内容

在最后行模式下使用

1,$s/nologin/88888/g

->1表示第一行

->$表示最后一行

1$)表示的是一个范围,比如(5,$

->/nologin/88888/表示替换和被替换

-g表示通行

34s/user01/user02

 

搜索命令

在命令模式下,搜索一个字符串string

/string

n   继续搜索下一个

N   搜索上一个出现的位置

linux