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 重启

 

posted @ 2019-02-21 21:54  hmm1995  阅读(525)  评论(0编辑  收藏  举报