Linux命令整理

作者: 飞吧sky | 来源:发表于2017-06-11 20:58 被阅读138次

    一、Linux简介

    1、什么是Linux

    1.1、Linux操作系统:指GUN/Linux,采用Linux内核的GUN操作系统。

    1.2、严格说的话,Linux不是一个操作系统,Linux只是一个操作系统的内核。内核建立了计算机软件与硬件之间通讯的平台,内核提供系统服务,比如文件管理、虚拟内存、设备I/O等。

    2、Linux发行版本

    (1)、RedHat,(2)、CentOS,(3)、Ubuntu,(4)、SUSE、(5)、Debain

    3、远程登录

    通过ssh服务实现远程登录Linux系统,默认ssh服务端口号为22。Windows系统上远程登录客户端有:Xshell、SecureCRT等。

    二、Linux基本使用

    1、用户与身份

    1.1 root用户

    root用户的根目录:/root

    1.2普通用户

    普通用户的家目录:/home/zfsky

    1.3切换用户:su用户名

    Øroot到普通用户:su zfsky无需密码。

    Ø普通用户到root:su root需输入密码。

    1.4查看用户用户组

    Øwhoami:查看当前登录的用户名

    Øgroups:查看当前登录用户的组内成员

    Øgroups zfsky:查看zfsky用户所在的组以及组内成员

    Øcat /etc/passwd:查看系统存在的所有用户名

    格式:root:x:0:0:root:/root:/bin/bash

    l第一字段:用户名

    l第二字段:口令,映射到/etc/shadow文件中

    l第三字段:UID

    l第四字段:GID

    l第五字段:用户名全称

    l第六字段:用户的主目录所在位置

    l第七字段:用户所用shell的类型

    Øcat /etc/groups:查看系统存在的所有用户组

    2、系统目录结构

    2.1 /root

    根分区,只有root用户对此目录拥有写权限。

    2.2 /bin

    用户可执行文件,此目录包含二进制可执行文件以及所有用户的常用命令(如:ls , cp等)。

    2.3 /sbin

    系统可执行文件,此目录中的命令主要供系统管理员使用(如:iptables、reboot等)。

    2.4 /etc

    配置文件,包含所有应用程序的配置文件,也包含启动、关闭某个特定程序的脚本。

    2.5 /dev

    设备文件,包含设备文件(在Linux中,一切都被看做文件:终端设备、USB、磁盘等等都被看做文件)。

    2.6 /proc

    进程信息,所有系统进程的信息都包含在/proc目录中。

    2.7 /var

    变量文件,/var是一个可增长的目录,包含变量文件(如,/var/log系统日志、/var/mail邮件)。

    2.8 /usr

    用户程序,为用户应用程序存放可执行文件、源代码和文档。

    2.9 /home

    用户主目录,用于存放用户的私人文件。

    2.10 /boot

    启动加载文件,系统启动时需要加载的文件。

    2.11 /lib

    系统库文件,/bin和/sbin中的可执行文件需要/lib中库文件的支持,库文件通常以"ld"或"ld*.so"的形式命名。

    2.12 /opt

    可选应用,用于安装独立软件商的可选应用。

    2.13 /mnt

    挂载目录,系统管理员可用于临时挂载文件系统。

    2.14 /media

    可移动媒体设备,挂载可移动媒体设备。

    2.15 /src

    src表示服务,用于服务器的所有服务数据存储在此目录中。

    3、目录的基本操作

    Øls命令:列出目录的内容

    l语法:ls [选项] [目录或文件夹]

    l颜色含义:

    ²蓝色:目录

    ²绿色:可执行文件

    ²红色:压缩文件

    ²浅蓝色:链接文件

    ²灰色:其他文件

    Øcd命令:改变工作目录

    l语法:cd [

    directory ]

    Øpwd命令:显示当前工作目录的绝对路径

    l语法:pwd

    Ømkdir命令:创建目录

    语法:mkdir [选项] dirname

    Ørmdir命令:删除空目录

    l语法:rmdir [选项] dirname

    4、文件的基本操作

    Ø文件的移动:mv命令

    l功能:为文件或目录改名或将文件或目录由一个目录移到另一个目录。

    l语法:mv [选项]源文件或目录目标文件或目录

    Ø文件的复制:cp命令

    l功能:将给出的文件或目录拷贝到另一个文件或目录中。

    l语法:cp [选项]源文件或目录目标文件或目录

    Ø文件的删除:rm命令

    l功能:删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下所有文件及子目录均删除。

    l语法:rm [选项]文件...

    5、文件操作权限

    Ø每个文件或目录的操作权限都有三组,每组用三位表示:文件属主的读、写和执行权限;属主同组用户的读、写和执行权限;系统中其他用户的读、写和执行权限。

    Øchmod命令:改变文件或目录的操作权限

    l两种用法:一种是包含字母和操作符表达式的文字设定法,一种是包含数字的数字设定法。

    l具体的权限:【1】可读r:4;【2】可写w:2;【3】可执行x:1。

    6、更改文件或目录的属主/组

    Ø文件与目录的归属是指文件与目录的所有者与所属的组。

    Øchgrp命令:改变文件或目录所属的组。

    l语法:chgrp [选项] group

    filename

    Øchown命令:改变文件或目录属主和属组。

    l语法:chmod [选项]用户或组文件

    三、文件管理

    1、目录操作

    Øcd切换目录

    2、文件操作

    Ø创建文件夹:mkdir

    lmkdir文件夹名:创建当前目录下的文件夹

    lmkdir a b c:同时创建多个并列文件夹

    lmkdir -p /usr/local/zff创建指定路径下的文件夹(如果创建的文件夹的父目录不存在,连同父目录一块创建)

    Ø删除文件夹:rmdir

    lrmdir文件夹名:删除单个文件夹

    lrmdir dirname1 dirname2 :删除多个文件夹

    lrmdir /usr/local/dirname删除目录层级下的文件夹

    lrmdir -p /usr/local/dirname删除带层级的全部目录

    Ø创建文件:vi/touch

    lvi/vim/touch file.txt:创建/编辑文件

    Ø删除文件:rm -rf

    lrm -rf filename

    Ø文件查找:find——根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访问时间,修改时间等。

    lfind / -name "test":查找系统中以test命名的文件或文件夹

    lfind /home -name a*.log -o -name b*:查找home目录下以a或b开头的文件

    lfind /home -user root:查找home目录下属主为root的文件或文件夹

    l按照文件的更改时间来查找文件,-n表示文件更改时间距现在n时间以内,+n表示文件更改时间距现在n时间以前

    Ø查看文件

    lcat:一次性查看文本,适用于文本内容比较少

    ²cat filename:一次性查看文本的全部内容

    ²cat filename1 filename2:一次性查看多个文本的内容

    ²cat -n filename:查看文本,并对输出的所有行编号

    ²cat -b filename:查看文本,并对输出的非空行编号

    lmore:用于分页显示文本,适用于文本内容较多

    ²more -num filename:制定屏幕的行数

    ²more +num filename:从行号num开始显示

    ²more +/pattern filename:从字串(pattern)第一次出现行的前两行开始显示

    ²more -s filename:重复的空行压缩成一个空行

    注:SPACE:显示接下来的k行文本

    Q/q:退出

    lless:用于分页显示文本,适用于文本内容较多

    ²less -N fileneme:显示每行的行号

    ²less -s filename:显示连续空行为一行

    ²less -i filename:忽略搜索时的大小写

    ²less -m filename:显示类似more命令的百分比

    ²less运行时可以输入的命令有:

    u空白键:向下翻动一页

    u[pagedown]:向下翻动一页

    u[pageup]:向上翻动一页

    u/字串:向下搜寻『字串』

    u?字串:向上搜寻『字串』

    un:重复前一个搜寻(与/或?有关)

    uN:反向的重复前一个搜寻(与/或?有关)

    uq:离开less这个程序

    lhead:用于显示文件文字区块

    ²head filename:默认显示文件前10行

    ²head -v filename:显示文件名

    ²head -q filename:隐藏文件名

    ²head -n num filename:显示前num行文字

    ²head -n -num filename:显示除了文件最后num行外的所有内容

    ²head -c num filename:显示文件前num个字节的内容

    ²head -c -num filename:显示除了文件最后num个字节外的所有内容

    ltail:用于显示文件文字区块

    ²tail filename:默认显示文件尾部10行

    ²tail -num filename/tail -n num filename:显示尾部num行

    ²tail -100f filename:动态显示最新100行内容

    注:tail常被用来查看最新的日志信息,我们就可以用tail -f来实时查看日志信息。

    lgrep:根据文件的内容进行查找,会对文件的每一行按照给定的模式(patter)进行匹配查找。

    ²grep 'mysql' my.cnf:在my.cnf中查找含有mysql的字段

    ²grep -n 'mysql' my.cnf:在my.cnf中查找含有mysql的字段,同时显示出行号

    lcut:选取命令,就是:将一段数据经过分析,取出我们想要的内容。一般来说,选取信息通常是针对“行”来进行分析的,并不是整篇信息分析。

    ²cut命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。

    如果不指定File参数,cut命令将读取标准输入。必须指定-b、-c或-f标志之一。

    ²cut命令参数:

    u-b:以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了-n标志。

    u-c:以字符为单位进行分割。

    u-d:自定义分隔符,默认为制表符。

    u-f:与-d一起使用,指定显示哪个区域。

    u-n:取消分割多字节字符,仅和-b标志一起使用。如果字符的最后一个字节落在由-b标志的List参数指示的
    范围之内,该字符将被写出;否则,该字符将被排除。

    ²cut常用命令:

    uhttp://www.cnblogs.com/dong008259/archive/2011/12/09/2282679.html

    l注意:Linux中head、tail、grep、cut、wc、sort等命令

    四、用户和用户组管理

    1、用户管理

    Ø新增用户

    luseradd :添加用户

    lpasswd :设置用户密码

    Ø删除用户

    luserdel :仅删除用户

    luserdel -r :删除用户及用户的目录文件

    Ø查看用户:cat

    /etc/passwd

    2、用户组管理

    Ø添加用户组

    lgroupadd :添加用户组

    lpasswd :设置用户组密码

    Ø删除用户组

    lgroupdel

    Ø设定用户组密码

    lgpasswd

    Ø取消用户组密码

    lgpasswd -r

    Ø添加用户组成员

    lgpasswd -a :添加的要存在

    Ø删除用户组成员

    lgpasswd -d

    Ø查看用户组

    lcat /etc/group

    五、系统管理

    1、进程管理

    Øps命令:Process Status,用来显示当前进程的状态,通过ps命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等。

    llinux上进程有5种状态:

    ²运行(正在运行或在运行队列中等待),状态码:R

    ²中断(休眠中,受阻,在等待某个条件的形成或接受到信号),状态码:S

    ²不可中断(收到信号不唤醒和不可运行,进程必须等待直到有中断发生),状态码:D

    ²僵死(进程已终止,但进程描述符存在,直到父进程调用wait4()系统调用后释放),状态码:Z

    ²停止(进程收到SIGSTOP,

    SIGSTP, SIGTIN, SIGTOU信号后停止运行运行):T

    lps [参数]

    ²a显示所有进程

    ²-A/-e显示所有进程

    ²c显示进程的真实名称

    ²f显示程序间的关系

    ²u指定用户的所有进程

    ²-au显示较详细的资讯

    ²-aux显示所有包含其他使用者的进程

    ²--lines<行数>每页显示的行数

    lps常用命令:

    ²ps -A:显示所有进程信息

    ²ps - ef:显示所有进程信息,连同命令行

    ²ps u root:显示指定用户信息

    ²ps -ef | grep mysql:ps与grep组合用法,查找特定进程

    ²ps aux:列出目前所有的正在内存当中的程序

    uUSER:该process所属的使用者

    uPID:该process的编号

    u%CPU:该process使用掉的CPU资源百分比

    u%MEM:该process所占用的物理内存百分比

    uVSZ:该process使用掉的虚拟内存量(Kbytes)

    uRSS:该process占用的固定的内存量(Kbytes)

    uTTY:该process是在哪个终端机上面运作,若与终端机无关,则显示?,另外,tty1-tty6是本机上面的登入者程序,若为pts/0等,则表示为由网络连接进主机的程序。

    uSTAT:该程序目前的状态

    uSTART:该process被触发启动的时间

    uTIME:该process实际使用CPU运作的时间

    uCOMMAND:该程序的实际指令

    ²根据CPU使用来升序排序:ps aux --sort -pcpu

    ²根据内存使用来升序排序:ps aux --sort -pmem

    ²ps与head、less等组合:ps aux |

    head -n 20、ps aux | less

    ²如果想要查看现在有谁登入了服务器:ps -eo pid,user,args,参数-e显示所有进程信息,-o参数控制输出。Pid,User和Args参数显示PID,运行应用的用户和该应用。

    ²我们可以将ps命令和watch命令结合起来,动态显示系统进程信息。这么种情况:

    watch -n 1 ‘ps -aux --sort -pmem, -pcpu,通过CPU和内存的使用率来筛选进程,并且希望结果能够每秒刷新一次。这样与top相比,使用ps的好处是你能够定义显示的字段,你能够选择你想查看的字段。

    Øtop命令:实时显示系统中各个进程的资源占用状况,包括进程ID、内存占用率、CPU占用率等

    ltop

    [参数]

    ²-d

    <时间>:设置间隔时间

    ²-u <用户名>:指定用户名

    ²-p <进程号>:指定进程

    ²-n <次数>:循环显示的次数

    ltop常用命令:

    ²top

    ²top -d 5 / top -u root /top -p 22 /top -n 10

    ²top交互命令:

    uk终止一个进程

    uq退出程序

    us改变两次刷新之间的延迟时间(单位为s)。如果有小数,就换算成ms。输入0值则系统将不断刷新,默认值是5 s

    uM根据驻留内存大小进行排序

    uP根据CPU使用百分比大小进行排序

    uT根据时间/累计时间进行排序

    Økill命令:结束进程

    lkill pid:结束进程

    lkill -9 pid:强制结束进程

    Ønetstat:用于显示各种网络相关信息

    netstat的输出结果可以分为两个部分:

    一个是Active Internet connections,称为有源TCP连接,其中"Recv-Q"和"Send-Q"指的是接收队列和发送队列。这些数字一般都应该是0。如果不是则表示软件包正在队列中堆积。这种情况只能在非常少的情况见到。

    一个是Active UNIX domain sockets,称为有源Unix域套接口(和网络套接字一样,但是只能用于本机通信,性能可以提高一倍)。Proto显示连接使用的协议,RefCnt表示连接到本套接口上的进程号,Types显示套接口的类型,State显示套接口当前的状态,Path表示连接到套接口的其它进程使用的路径名。

    lnetstat命令常用参数:

    ²-a:显示所有选项,默认不显示LISTEN相关

    ²-t:仅显示tcp相关选项

    ²-u:仅显示udp相关选项

    ²-n:拒绝显示别名,能显示数字的全部转化成数字。

    ²-l:仅列出有在Listen (监听)的服务状态

    ²-p:显示建立相关链接的程序名

    ²-s:按各个协议进行统计

    ²-c:每隔一个固定时间,执行该netstat命令。

    ²提示:LISTEN和LISTENING的状态只有用-a或者-l才能看到

    lnetstat常用命令:

    ²列出所有端口:netstat -a

    ²列出所有tcp/udp端口:netstat -at /netstat -ut

    ²只显示监听端口:netstat -l

    ²netstat输出中显示PID和进程名称:netstat-p

    ²持续输出netstat信息:netstat -c :默认每秒更新1次

    ²找出程序运行的端口:netstat -ap | grep ssh

    ²找出运行在指定端口的进程:netstat -apn |grep 80/netstat -apn | grep ':80'

    l举例场景:服务器上Tomcat 8080端口起不来,老提示端口已经被占用

    ²第一步:ps -aux | grep tomcat

    发现并没有8080端口的Tomcat进程。

    ²第二步:使用命令:netstat –apn

    查看所有的进程和端口使用情况:最后一栏是PID/Program

    name,发现8080端口被PID为9658的Java进程占用。

    ²第三步:使用:ps -aux | grep java或者直接使用:ps -aux | grep pid查看,就可以明确知道8080端口是被哪个程序占用了!最后判断是否使用KILL命令干掉!参见:http://www.cnblogs.com/benio/archive/2010/09/15/1826728.html

    lnetstat参见:http://www.cnblogs.com/ggjucheng/archive/2012/01/08/2316661.html

    Øsync:强制将内存中的文件缓冲内容写到磁盘

    lLinux/Unix系统中,在文件或数据处理过程中一般先放到内存缓冲区中,等到适当的时候再写入磁盘,以提高系统的运行效率。sync命令则可用来强制将内存缓冲区中的数据立即写入磁盘中。用户通常不需执行sync命令,系统会自动执行update或bdflush操作,将缓冲区的数据写入磁盘。只有在update或bdflush无法执行或用户需要非正常关机时,才需手动执行sync命令。

    llinux系统为了提高读写磁盘的效率,会先将数据放在一块buffer中。在写磁盘时并不是立即将数据写到磁盘中,而是先写入这块buffer中了。此时如果重启系统,就可能造成数据丢失。sync命令用来flush文件系统buffer,这样数据才会真正的写到磁盘中,并且buffer才能够释放出来,flush就是用来清空buffer。sync命令会强制将数据写入磁盘中,并释放该数据对应的buffer,所以常常会在写磁盘后输入sync命令来将数据真正的写入磁盘。如果不去手动的输入sync命令来真正的去写磁盘,linux系统也会周期性的去sync数据。

    2、磁盘管理

    Ø磁盘管理:df查看磁盘使用情况,du查看目录/文件大小

    ldf:用来检查linux服务器的文件系统的磁盘空间占用情况。我们可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。

    ²df -a:显示所有文件系统的磁盘使用情况

    ²df -h:以人类易读的格式输出

    ²df -h /dev/sda1:显示特定文件系统已使用的空间

    ²df -T:显示所有文件系统的类型

    ²df -k:按块大小输出文件系统磁盘使用情况

    ²df -h --total:显示所有文件系统的磁盘使用情况汇总

    ²df -t ext4:显示特定文件系统类型的信息

    ²df -x ext4:用来在输出中排出某些文件系统类型

    ²参考:https://linux.cn/article-6466-1.html

    ldu:检查目录或者文件所占空间

    du与df命令不同的不同du命令是查看当前指定文件或目录(会递归显示子目录)占用磁盘空间大小。

    ²du all.log:显示指定文件所占空间

    ²du /zff/installpkg:查看指定目录的所占空间

    ²du -ah log:文件和目录都显示

    ²du log1.tar.gz log2.tar.gz:显示多个文件所占空间

    ²du -c /var/log /usr/local:显示几个文件或目录各自占用磁盘空间的大小,还统计它们的总和

    ²du -s:只显示总和的大小

    ²du | sort -nr | more:按照空间大小排序

    ²du -h  --max-depth=1:输出当前目录下各个子目录所使用的空间

    相关文章

      网友评论

      本文标题:Linux命令整理

      本文链接:https://www.haomeiwen.com/subject/yvckqxtx.html