• linux 简介


     linux 介绍

    (1)Linux根据市场需求不同,基本分为两个方向:

    1)图形化界面版:注重用户体验,类似window操作系统,但目前成熟度不够

    2)服务器版:没有好看的界面,是以在控制台窗口中输入命令操作系统的,类似 DOS,是我们假设服务器的最佳选择

    (2)Linux根据原生程度,又分为两种:

    1)内核版本:在Linus领导下的内核小组开发维护的系统内核的版本号

    2)发行版本:一些组织或公司在内核版基础上进行二次开发而重新发行的版本

    服务器版的Linux安装完毕了,但没有图形化界面,我们只能通过控制台去操作系统,我们就要使用类似DOS命令的Linux命令去操作系统,那么下面我们就进行Linux的命令的学习。window中通过图形化界面和鼠标可以任意切换需要进入的目录,但Linux必须通过cd命令切换目录。

     

    shell 介绍

           shell翻译成壳的意思,它是包裹在linux内核外层的,一个可通过一系列的linux命令对操作系统发出相关指令的人机界面。

    shell可以通过其条件语句和循环语句等,把一系列linux命令结合在一起,形成一个相当于面向过程的程序,shell script,来实现一些较为复杂的功能。

    shell相当于经过装饰的命令行,和命令行一样,都能操作linux。但是shell是面向过程的,相当于有了一定的逻辑和过程,而命令行只是单一的操作的程序文件.

    Linux中有好多中不同的shell,但是通常我们使用bash (bourne again shell) 进行shell编程,因为bash是免费的并且很容易使用。所以在本文中笔者所提供的脚本都是使用bash

    如同其他语言一样,编写一个shell程序需要一个文本编辑器,比如neditkeditemacsvi等来编写我们的shell程序。 

          简介:
          Shell是一种脚本语言,又是一种命令语言。可以通俗一点来讲,Shell脚本就是一系列命令的集合,可以在Unix/linux上面直接使用,并且直接调用大量 系统内部的功能来解释执行程序把一些重复性工作交给shell做,来实现自动化运维。Shell 虽然没有C/C++、Java、Python等强大,但也支持了基本的编程元素。例如:if、for、while等循环,还有变量、数组、字符串、注释、加减乘除 逻辑运算等

        应用场景:

        Shell 主要用来开发一些实用的、自动化的小工具,而不是用来开发具有复杂业务逻辑的中大型软件

    第一方面:监控linux系统环境的使用情况
    第二方面:数据的处理。eg:日志的切割、分析、统计等
    第三方面:与数据库的交互,对数据库进行增,删,改,查等操作
    第四方面:监控进程,自动化启停服务进程
    第五方面:完成一些重复性的工作。eg:创建100个新用户;到服务器集群配置某个文件等

     

    linux的基本操作命令

    1. 目录切换命令

    命令: cd

    功能说明:切换目录。
    举 例:却换到根目录 :cd /

     

    cd usr      切换到该目录下usr目录

    cd ../ 切换到上一层目录 

    cd / 切换到系统根目录

    cd ~ 切换到用户主目录 

    cd - 切换到上一个所在目录   

    刚进入服务器时为~ 表示root  root也在下面同bin、boot的一列   /表示根

    在~下 cd../可以切换到根目录(切换到上一层目录)

    在/下 cd usr 可以切换到该目录下usr目录

    在usr下  cd/ 切换到系统根目录 再cd etc 可以进入另一个目录  或直接cd/etc 

    2. 目录的操作命令(增删改查)

    (1)增加目录操作(增)

    命令:mkdir 目录名称

    示例:在根目录 / 下 mkdir test,就会在根目录 / 下产生一个test问目录

    (2)查看目录(查)

    命令: ls
    功能说明:列出目录内容。ls [-al] 父目录

    示例:

    在根目录 / 下使用ls,可以看到该目录下的所有的目录和文件 (行的形式 )

    在根目录 / 下使用ls -a,可以看到该目录下的所有文件和目录,包括隐藏的

    在根目录 / 下使用ls -l,可以看到该目录下的所有目录和文件的详细信息(列的形式)

    列出/var目录的文件和目录的信息 :ls –l /var 

    注意:ls -l 可以缩写成ll        最常用方式 ls –lrt 以修改时间作为顺序排列 最新文件在下面显示

    命令:du

    功能说明:查看文件大小(目录大小)
          -h:按单位显示
         -d:指文件的层级:例如1就是当前目录,

    (3)寻找目录(查)

    命令:find 目录 参数 (根据文件或者正则表达式进行匹配)

    功能说明:查询文件

    示例:

    查找/root下的与test相关的目录(文件)  find /root -name test*

    在/home目录下查找以.txt结尾的文件名  find /home -name "*.txt"

    查询根目录下面的test.txt:           find ./ -name test.txt

    查询当前目录下面的test.txt:           find . -name test.txt

    .为当前目录  /为根目录

    注意:

    find是根据文件名进行查找,grep是对文件的内容进行搜索

    grep是搜索包含xx字符串的文件 find -name是搜索文件名包含xx

    (4)修改目录的名称(改)    

    命令:mv 目录名称 新目录名称

    示例:test目录下有一个oldTest目录,使用mv  oldTest  newTest 命令修改

    注意:mv的语法不仅可以对目录进行重命名而且也可以对各种文件,压缩包等进行 重命名的操作

    (5)移动目录的位置---剪切(改)  

    命令:mv 目录名称 目录的新位置

    示例:在test下将newTest目录剪切到 /usr下面,使用mv newTest /usr

    注意:mv语法不仅可以对目录进行剪切操作,对文件和压缩包等都可执行剪切操作

    举例:移动 test.sh到/bin目录下:mv test.sh /bin/

    (6)拷贝目录(改)

    命令:cp -r 目录名称 目录拷贝的目标位置 -----r代表递归拷贝

    示例:将/usr下的newTest拷贝到根目录下的test中,使用cp -r  /usr/newTest  /test

    注意:cp命令不仅可以拷贝目录还可以拷贝文件,压缩包等,拷贝文件和压缩包时不 用写-r递归

    举 例:拷贝文件test.sh 为 test.sh_bak:cp  test.sh  test.sh_bak

    (7)删除目录(删)  命令:rm [-rf] 目录

    示例:删除/usr下的newTest,进入/usr下使用rm -r newTest

    示例:删除/test下的newTest而不需要询问强制删除,在/test下使用rm -rf newTest

    -d:直接把欲删除的目录的硬连接数据删除成0,删除该目录; 

    -f:强制删除文件或目录; 

    -i:删除已有文件或目录之前先询问用户; 

    -r或-R:递归处理,将指定目录下的所有文件与子目录一并处理; 

    注意:rm不仅可以删除目录,也可以删除其他文件或压缩包,为了增强大家的记忆,无论删除任何目录或文件,都直接使用rm -rf 目录/文件/压缩包

    3. 文件的操作命令(增删改查)

    (1)文件的创建(增)

    命令:touch 文件名称  ----- 空文件

    示例:在test目录下创建一个空文件 touch aaa.txt

    (2) 文件的查看(查)

    命令:cat 
    功能说明:查看小文件内容。
    例:查看test.txt 文件内容 :cat test.txt

    命令:cat/more/less/tail 文件

     

    如果记不住文件名字 可以使用键盘table  按一下出来开头相同文件  按两下出来全部文件名

    Cat -n 1.txt显示行数   

     

    示例:

    使用cat查看/etc/sudo.conf文件,只能显示最后一屏内容

    使用more查看/etc/sudo.conf文件,可以显示百分比,回车可以向下一行,空格可以向下一页,q可以退出查看

    使用less查看/etc/sudo.conf文件,可以使用键盘上的PgUp和PgDn向上 和向下翻页,q结束查看

    使用tail -10 查看/etc/sudo.conf文件的后10行,Ctrl+C结束

    注意:

    命令 tail -f 文件 可以对某个文件进行动态监控,例如tomcat的日志文件,会随着程序的运行,日志会变化,可以使用tail -f catalina-2016-11-11.log 监控文件的变化

    (3)修改文件的内容(改)

    命令:vim 文件 或者   vi 文件

    vi 是Linux中最基本的文本编辑器.vim编辑器是Linux中的强大组件,是vi编辑器的加强版

    vim三种模式:命令模式、插入模式、编辑模式。使用ESC或i或:来切换模式。

    关于vim使用过程:

    在实际开发中,使用vim编辑器主要作用就是修改配置文件

    vim 文件------>进入文件----->命令模式------>按i进入编辑模式----->编辑文件 ------->按Esc进入底行模式----->输入:wq/q!

    示例:

    编辑/test下的aaa.txt文件,使用vim aaa.txt

    1.但此时并不能编辑,因为此时处于命令模式,点击键盘i/a/o进入编辑模式,可以编辑文件.

    2.编辑完成后,按下Esc,退回命令模式

    3.此时文件虽然已经编辑完成,但是没有保存,需输入冒号:进入底行模式,在底行模式下输入wq代表写入内容并退出,即保存;输入q!代表强制退出不保存,输入q 退出。

    (4)删除文件(删)

    同目录删除:熟记 rm -rf 文件 即可

    4. Linux的权限命令

    权限是Linux中的重要概念,每个文件/目录等都具有权限,通过ls -l命令我们可以查看某个目录下的文件或目录的权限

    示例:

    在随意某个目录下ls -l第一列的内容的信息解释如下:

    文件的类型:
    d
    :代表目录        -:代表文件          l:代表链接(可以认为是window中的快捷方式)

    后面的9位分为3组,每3位置一组,分别代表属主的权限,与当前用户同组的用户的权限,其他用户的权限

    r:代表权限是可读,r也可以用数字4表示

    w:代表权限是可写,w也可以用数字2表示

    x:代表权限是可执行,x也可以用数字1表示

    u-g-o分别表示用户-用户组-其他用户,用a表示所有的用户 

    属主(user)   属组(group)   其他用户

    r w x                 r w x                  r w x

    4 2 1                4 2 1                  4 2 1

    (1)chmod命令

    功能说明:修改文件或目录权限。

    举    例:修改test.sh 为自己可执行:chmod u+x test.sh

    (2)chown命令

    功能说明:变更文件或目录的拥有者或所属群组。

    举    例:修改test.txt 属主为mysql chown mysql:mysql test.txt

    1. 修改/test下的aaa.txt的权限为属主有全部权限,属主所在的组有读写权限,其他用户只有读的权限    chmod u=rwx,g=rw,o=r aaa.txt

    上述示例还可以使用数字表示:chmod 764 aaa.txt

    2.文件exer1的访问权限为rw-r--r--,现要增加所有用户的执行权限和同组用户的写权限     chmod a+x g+w exer1;//chmod 775 exer1

    3. 设umask为002, 则新建立的文件的权限是什么?--rwxrwxr-x

     对于新创建的目录:对于新创建的目录来说,其默认的权限就是umask的取反操作就可以了。文件默认权限666     目录默认权限777 。 实际权限则减去umask666-002=664= -rw-rw-r--

     

     

    5. 其他命令

    (1)diff命令

    功能说明:对比文件差异。

    举    例:对比文件test.sh test.sh_bak 是否有差异diff  test.sh test.sh_bak

    如果不显示 说明一模一样  否则列出不同部分

     (2)which命令

    功能说明:在环境变量$PATH设置的目录里查找符合条件的文件。

    举    例:查询find命令在那个目录下面:which find

     

    (3)ssh命令

    功能说明:远程安全登录方式。

    举    例:登录到远程主机:ssh ${IP}

     

    (4)grep命令 (搜索命令)

    命令:grep 要搜索的字符串 要搜索的文件  

    功能说明:查找文件里符合条件的字符串。

    举    例:

    从test.txt文件中查询test的内容:grep test test.txt

    搜索/usr/sudu.conf文件中包含字符串to的行 grep to sudu.conf

    搜索/usr/sudu.conf文件中包含字符串to的行 to要高亮显示grep to sudu.conf --color

    (5)wc命令

    功能说明:统计行。

    举    例:统计test.txt文件有多少行:wc -l test.txt

    (6)date命令

    功能说明:查询主机当前时间。

    举    例:查询主机当前时间:date

    (7)exit命令

    功能说明:退出命令。   

    举    例:退出主机登录:exit

      

    (8)id命令

    功能说明:查看用户。

    举    例:查看当前用户:id ;查询主机是否有test用户:id test

    (9)、sleep命令

    功能说明:休眠时间。

    举    例:休眠60秒 :sleep 60

    (10)uname命令

    功能说明:查询主机信息。

    举    例:查询主机信息:uname -a

    (11)passwd命令

    功能说明:修改用户密码。

    举    例:使用root修改test用户的密码:passwd test

    (12)ping命令

    功能说明:查看网络是否通。

    举    例:查询本主机到远程IP的网络是否通:ping ${IP}

    (13)df命令

    功能说明:查看磁盘空间使用情况。

    举    例:查看主机的空间使用情况 :df -h

    (14)echo命令

    功能说明:标准输出命令。

    举    例:对变量test进行输出:echo $test

     

    相当于print

    (15)pwd命令

    功能说明:查询所在目录。

    举    例:查询当前所在目录:pwd

    (16)head命令

    功能说明:查看文件的前面N行。

    举    例:查看test.txt的前10行:head -10 test.txt

    (17)tail命令

    功能说明:查看文件的后面N行。

    举    例:查看test.txt的后10行:tail -10 test.txt

    (18)管道命令

    命令:|   

    功能说明:将前一个命令的输出作为本次目录的输入.一个命令的标准输出作为另一个命令的标准输入。也就是把几个命令组合起来使用,后一个命令除以前一个命令的结果。

    示例:在home目录下所有文件中查找,包括close的文件,并分页输出。grep -r "close" /home/* | more

    (19)ps命令

    命令:ps -ef

    功能说明:查询进程情况。

    示例:查看当前系统中运行的进程

        -a:显示其他用户启动的进程

        -x:查看系统中属于自己的进程

        -u:显示启动这个进程的用户和它启动的时间

    与grep用管道连接,找到特定的进程:ps -a|grep '28952'

    统计进程个数: ps -a|wc

    查询test.sh进程:ps -ef | grep test.sh

    (20)显示进程

    pstree    以树状图显示进程,只显示进程的名字,且相同进程合并显示

                -p:还显示PID

               -a:相同进程部合并,且显示命令行参数

    top      显示当前消耗资源最多的进程信息

              -i 查看多少进程处于running状态,可能系统存在内存或I/O瓶颈

    (21)杀死进程(是通过发送信号来终止一个进程)

    命令:kill -9 进程的pid

    功能说明:杀进程。

               -9:发出的信号是:SIGKILL:相当于exit,不能被捕捉或忽略,所以会立即杀死进程。

              -15:SIGTERM 当程序接受到这个信号后,大部分会释放自己的资源,然后再停止。但是有一部分,接收到信号以后,可以不立即停止,例如如果正在等待IO,则不会立即作出响应。所以SIGTERM信号会被阻塞、忽略

     

    6. 系统管理命令

    stat 显示文件的详细信息,比ls更详尽

    who 显示在线登录用户

    whoami 显示当前操作用户

    hostname 显示主机名

    uname 显示系统信息

    du 查看目录大小(同样可以查看指定文件)

        -h:带有大小单位

    df 查看磁盘使用情况

    -h:带有大小单位 

    7. 性能检测工具

    top 显示所有实时运行的进程,并且定时更新

    vmstat 虚拟内存统计(安装一个sysstat包)

    iostat 用于监控CPU和系统设备的IO负载情况

    free 内存使用率

    map 进程内存占用率

    strace 追踪程序运行状态

    8. 关机/重启

    shutdown 关机

        -r:关机重启

        -h:关机不重启

        now 立即关机

    halt 关机

    reboot 重启

  • 相关阅读:
    ThinkPHP第八天(U函数放置在外部JS不会被解析,错误界面定制,错误信息变量)
    ThinkPHP第七天(F函数使用,项目分组配置,项目分组模板文件放置规则配置)
    thinkphp第二天
    ThinkPHP第五天(提交类型判定常量IS_POST等,错误页面种类,Model实例化方式,模板中使用函数,foreach循环,模板中.语法配置)
    高阶函数、函数嵌套和闭包
    递 归
    函数式编程
    命名空间
    函数的参数
    循环语句
  • 原文地址:https://www.cnblogs.com/hmm1995/p/10415599.html
Copyright © 2020-2023  润新知