• Linux命令大全(一)


    目录

     

    一、文件浏览命令

      格式: 命令 [option] file

    • cat  由第一行开始显示文件内容  
    • tac  从最后一行开始显示,tac 是 cat 的倒写
    • nl   显示行号                                           -b a :空行也列出行号(类似 cat -n); -b t :非空行才列出行号(默认值); 
    • more 一页一页的显示文件内容           [空格键]下一页,[Backspace]上一页。    +n 从笫n行开始显示    -n 定义屏幕大小为n行  -c 清屏显示
    • less 与 more 类似,但他可以往前翻页    [空格键] 滚动一行, [回车键] 滚动一页,[pagedown]: 下一页,[pageup]:上一页
    • head 看头几行,                                    -n 设定行数
    • tail   看尾部几行                                     -f 循环读取    tail -100f catalina.out
    • od   以二进制的方式读取文件内容 

     

    二、文件目录操作命令

    1. mkdir    -m:mode 设定权限  -p:parents 创建父级目录             mkdir -m 777 -p dir1/dir2  

    2. rm    -r 递归   -f force 强行删除,忽略不存在的文件,系统不再提示    rm -rf dir  

    3. mv   -b :覆盖前先备份   -f :force 强制覆盖   -i :询问是否覆盖       mv 1.txt 2.txt  可用于重命名

    4. ls命令   列出目录中所有子目录和文件

    -a, –all 列出目录下的所有文件,包括以.开头的隐含文件
    -l 列出目录或文件的详细信息,包括文件的权限、所有者、文件大小等
    -R, –recursive 递归查询   -r, –reverse 依相反次序排列     -t 以文件修改时间排序
    -F 显示文件类型(File type),在列出的文件名后添加符号:/ 表明是一个目录;@ 表明是到其它文件的符号链接;* 表明是一个可执行文件。 

    ls -l s* 列出当前目录中所有以“s”开头的目录的详细内容
    ls -F /opt/soft |grep /$ 只列出文件下的子目录
    ls -ltr s* 列出目录下以s 开头的档案,愈新的排愈后面
    ls | sed "s:^:`pwd`/:"   列出文件的绝对路径

    5. tar   为linux的文件和目录创建档案

      tar [主选项+辅选项] 文件或目录

      主选项:【每条命令只能有一个主选项】

    -c: --create  新建一个压缩文档,即打包     -x: --extract,--get  解压文件
    -t: --list  查看压缩文档里的所有内容    -r:--append   向压缩文档里追加文件    -u:--update   更新原压缩包中的文件

      辅助选项:

    -z 支持gzip解压文件  -j 支持bzip2解压文件  -Z 支持compress解压文件
    -v 显示操作过程        -f 指定压缩文件  -t 显示压缩文件的内容
    -d 记录文件的差别    -W 确认压缩文件的正确性  -l 文件系统边界设置
    -k 保留原有文件不覆盖  -m 保留文件不被覆盖

          

    tar -cvf log.tar 1.log 2.log   仅打包,不压缩!
    tar -tf log.tar   不解压的情况下查看

    6. gzip

    -a 使用ASCII文字模式 -d 解压文件 -l 列出压缩文件的详细信息  -r 递归处理   -v 显示指令执行过程
    -num 用指定的数字num调整压缩的速度,-1或--fast表示最快压缩方法(低压缩比),-9或--best表示最慢压缩方法(高压缩比)。系统缺省值为6。

    gzip *  / gzip -dv *   压缩和解压缩文件或目录,若当前目录下有10个文件则生成10个.gz的压缩包,gzip没有打包功能!

    三、文件查找命令

    1. find命令 在目录结构中搜索文件

    格式:find pathname -options [-print -exec -ok ...]

    命令选项:
    -name 按照文件名查找文件   -perm 按照文件权限来查找文件
    -user 按照文件属主来查找文件  -group 按照文件所属的组来查找文件
    -mtime (modify time)指文件内容被修改的时间 +n:大于n, -n:小于n
    -atime (access time)文件被读取或者执行的时间 -ctime (change time)文件状态改变时间,如通过chmod修改文件属性
    -type 查找某一类型的文件,f:普通文件,d:目录,p:管道文件,l:符号链接文件,c:字符设备文件,b:块设备文件 
    -size n:[c] 查找文件长度为n块的文件,带有c时表示文件长度以字节计 -depth:在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找

    find -atime -2 查找2天内修改过的文件 
    find . -type f -name "*.log"  根据关键字和类型查找 
    find /opt/soft/ -perm 777  按照目录或文件的权限来查找文件
    find . -size +1000c -print 查找当前目录大于1K的文件

    2. which命令   查看可执行文件的位置

      which指令会在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。   which pwd

    3. whereis命令  定位文件在文件系统中的位置

    -b 查找二进制文件 -m 帮助文件   -s 源代码文件    whereis -b svn

    4. locate命令   配合数据库查看文件位置

      locate和find功能类似,但locate是透过updatedb程序将硬盘中的所有档案和目录资料先建立一个索引数据库,在执行loacte时直接找该索引,查询速度会较快

    locate pwd  查找和pwd相关的所有文件
    locate /etc/sh  搜索etc目录下所有以sh开头的文件

    四、文件权限设置命令

    1. chmod命令

      权限分为只读r、只写w 和 可执行x,用户分为 文件所有者u、同组用户g、其他用户o 和 所有的用户及群组a

    1)文字设定法: chmod [who] [+ | - | =] [mode] 文件名

    2)数字设定法: chmod [mode] 文件名

    • 数字属性的mode为3个数字,按顺序表示(u)(g)(o)对应的权限。r=4,w=2,x=1 ,- 为0 表示删除权限
    • rwx属性为4+2+1=7 ; rw-属性则4+2=6;r-x属性则4+1=5。
    • chmod ug+w,o-x test.log ;   chmod -R 777 dir

    2. chgrp命令  (change group)    改变文件或目录所属的用户组

    -c 当发生改变时输出调试信息 -f 不显示错误信息 -R 递归处理 -v 运行时显示详细的处理信息
    --dereference 作用于符号链接的指向,而不是符号链接本身 --no-dereference 作用于符号链接本身
    用户组的所有信息都存放在/etc/group文件中 cat /etc/group

    chgrp -v group1 1.log
    chgrp --reference=1.log 2.log 改变文件2.log的群组属性,使得文件2.log的群组属性和参考文件1.log的群组属性相同

    3. chown命令(change owner)  改变文件或目录的所有者和所属的用户组

      chown -R root /usr/tony  

    五、系统性能监控命令

    1. top命令   能够实时显示系统中各个进程的资源占用状况,常用于服务端性能分析。

      -u  指定用户名; -p  指定进程;  -n  循环显示的次数

       

      显示结果中的S 表示进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程

    2. free命令   显示系统使用和空闲的内存情况

      -k  以KB为单位显示内存使用情况;  -m  以MB为单位;-g   以GB为单位; -s<间隔秒数>  持续观察内存使用状况。

      free -m -s 10

      

    3. vmstat命令 显示关于内核线程、虚拟内存、磁盘、陷阱和 CPU 活动的统计信息。

    -a:显示活跃和非活跃内存
    -f:显示从系统启动至今的fork数量 。
    -m:显示slabinfo
    -n:只在开始时显示一次各字段名称。
    -s:显示内存相关统计信息及多种系统活动数量。
    -d:显示磁盘相关统计信息。

    Procs(进程)       r: 运行队列中进程数量  b: 等待IO的进程数量
    Memory(内存)  swpd: 使用虚拟内存大小  free: 可用内存大小  buff: 用作缓冲的内存大小  cache: 用作缓存的内存大小
    Swap                    si: 每秒从交换区写到内存的大小  so: 每秒写入交换区的内存大小
    IO                         bi: 每秒读取的块数  bo: 每秒写入的块数
    系统                      in: 每秒中断数,包括时钟中断  cs: 每秒上下文切换数。
    CPU                      us: 用户进程执行时间(user time)  sy: 系统进程执行时间  id: 中央处理器的空闲时间(包括IO等待时间)  wa: 等待IO时间   (以百分比表示)

    4. iostat命令   统计系统的磁盘操作活动

       查看CPU、网卡、tty设备、磁盘、CD-ROM 等等设备的活动情况, 负载信息。但不能指定进程。

      格式:iostat[参数][时间][次数]

    -C 显示CPU使用情况 -d 显示磁盘使用情况
    -k 以 KB 为单位显示 -m 以 M 为单位显示
    -N 显示磁盘阵列(LVM) 信息 -n 显示NFS 使用情况
    -p[磁盘] 显示磁盘和分区的情况 -t 显示终端和CPU的信息
    -x 显示详细信息 -V 显示版本信息

      (1) iostat -2 -3   每隔2秒刷新显示,且显示3次

    %user:CPU处在用户模式下的时间百分比  %nice:CPU处在带NICE值的用户模式下的时间百分比   %system:系统模式
    %iowait:CPU等待输入输出完成时间的百分比   %steal:管理程序维护另一个虚拟处理器时,虚拟CPU的无意识等待时间百分比   %idle:CPU空闲时间百分比
    备注:如果%iowait的值过高,表示硬盘存在I/O瓶颈,%idle值高,表示CPU较空闲,如果%idle值高但系统响应慢时,有可能是CPU等待分配内存,此时应加大内存容量。%idle值如果持续低于10,那么系统的CPU处理能力相对较低,表明系统中最需要解决的资源是CPU。

          

      (2) iostat -d -x -k 1 1  查看设备使用率(%util)、响应时间(await)

      每秒用于 I/O 操作的时间比,如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈。

      

    5. lsof命令   列出当前系统打开的文件

    -c <进程名> 列出指定进程所打开的文件;   -p <进程号> 列出指定进程号所打开的文件
    -u username 显示所属user进程打开的文件; -g gid 显示归属gid的进程情况
    +d <目录> 显示目录下被进程打开的文件    +D<目录> 同上,但是会搜索目录下的所有目录,时间相对较长
    -a 表示两个参数都必须满足时才显示结果   -i 用以显示符合条件的进程情况

    lsof -d <FD> 0表示标准输入,1表示标准输出,2表示标准错误,所以大多数应用程序所打开的文件的 FD 都是从 3 开始
    lsof -c mysql -c apache 列出一个或多个程序进程所打开的文件信息
    lsof -i 列出所有的网络连接 lsof -i tcp/udp/:3306/udp:55/tcp:80
    lsof -i @peida.linux:20,21,22,25,53,80 -r 3 每隔3秒打印peida.linux上端口为:20,21,22,25,53,80相关的所有文件信息

    6. ps  (Process Status) 列出系统当前运行的进程。       

    -a 显示同一终端下的所有程序 -aux 显示所有包含其他使用者的行程 -f 显示程序间的关系 -u 指定用户

    ps -ef|grep tomcat    ps 与grep常用组合用法,查找特定进程
    ps -aux --sort -pcpu | less      根据 CPU 使用率按降序排序
    ps -aux --sort -pmem | less    根据内存使用率按降序排序

    六、网络查看命令

    1. ifconfig命令   获取或修改网络接口配置信息

    格式:ifconfig [网络设备] [参数]

    ifconfig  显示网络设备信息
    ifconfig eth0 up/down   启动/关闭指定网卡
    ifconfig eth0 add/del 33ffe:3240:800:1005::2/64   为网卡eth0配置/删除IPv6地址
    ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE   修改MAC地址
    ifconfig eth0 192.168.120.56 netmask 255.255.255.0 broadcast 192.168.120.255   配置IP地址,添加子掩码和广播地址
    ifconfig eth0 mtu 1500   设置最大传输单元
    ifconfig eth0 arp/-arp     启用/关闭ARP协议

    2. ip命令   ip命令用来显示或操纵Linux主机的路由、网络设备、策略路由和隧道。[替换ifconfig]

    3. netstat命令   显示网络连接状态及其相关信息

    -a 显示所有socket,包括正在监听的。 -c 每隔1秒就重新显示一遍,直到用户中断它。
    -i 显示所有网络接口的信息 -n 以网络IP地址代替名称,显示出网络连接情形。
    -t 显示TCP协议的连接情况 -u 显示UDP协议的连接情况。
    -p 显示建立相关连接的程序名和PID。 -b 显示在创建每个连接或侦听端口时涉及的可执行程序。 -o显示与每个连接相关的所属进程 ID。
    -e 显示以太网统计。此选项可以与 -s 选项结合使用。 -s 显示每个协议的统计。
    -f 显示外部地址的完全限定域名(FQDN)。 -r显示核心路由表,格式同“route -e”

    netstat -l   显示监听的套接口
    netstat -a | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'    统计机器中网络连接各个状态个数
    netstat -ap | grep ssh     找出程序运行的端口
    netstat -anpt | grep ':8080'    找出运行在指定端口的进程

    4. ss命令    (Socket Statistics) 用来获取socket统计信息  [替换netstat]

      ss可以显示和netstat类似的内容。但它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。ss比netstat快的主要原因是,netstat是遍历/proc下面每个PID目录,ss直接读/proc/net下面的统计信息。可以使用 time ss 和 time netstat -at 对比两个命令的效率。

      ss常用参数和netstat类似,如-anp

    5. ping命令   用来测试与目标主机的连通性

    ping -c 10 -i 0.5 192.168.120.206       -c 指定次数 -i 间隔的秒数
    ping -b 192.168.120.1      ping网关,可用route查看网关地址

    6. telnet命令  远程登录  

      telnet因为采用明文传送报文,安全性不好,很多Linux服务器都不开放telnet服务,而改用更安全的ssh方式了

      telnet <ip/hostname>

    7. ssh命令  远程登录

    8. rcp命令  (remote file copy) 远程文件拷贝

      rcp [参数] [源文件] [目标文件]         -r 递归 -x 为传送的所有数据打开DES加密 -p 试图保留源文件的修改时间和模式

      rcp -r  /home/root/dir  hostname:/home/root/

    9. scp命令  (secure copy) 远程文件拷贝

      scp [参数] [原路径] [目标路径]

      scp root@192.168.120.204:/home/root/test.tar.gz /home/root/    从远处复制文件到本地目录, scp传输是加密的

    10. route命令   显示和操作IP路由表

    route -n 显示当前路由
    route add/del default gw 192.168.120.240 添加/删除默认网关
    route add/del -net 224.0.0.0 netmask 240.0.0.0 dev eth0 添加/删除网关/设置网关
    route add/del -net 224.0.0.0 netmask 240.0.0.0 reject 添加/删除一条屏蔽的路由,目的地址为 224.x.x.x 将被拒绝

    11. traceroute命令   检测发出数据包的主机到目标主机之间所经过的网关

      -q: 设置向每个网关发送的探测包个数(缺省为3)  -m 设置跳数

        以下返回结果每个纪录就是一跳 ,每跳表示一个网关,我们看到每行有三个时间,其实就是3个数据包对映的网关响应时间。
    复制代码
     [root@localhost ~]# traceroute www.baidu.com
     traceroute to www.baidu.com (61.135.169.125), 30 hops max, 40 byte packets
     1  192.168.74.2 (192.168.74.2)  2.606 ms  2.771 ms  2.950 ms
     2  211.151.56.57 (211.151.56.57)  0.596 ms  0.598 ms  0.591 ms
     3  211.151.227.206 (211.151.227.206)  0.546 ms  0.544 ms  0.538 ms
     4  210.77.139.145 (210.77.139.145)  0.710 ms  0.748 ms  0.801 ms
     5  202.106.42.101 (202.106.42.101)  6.759 ms  6.945 ms  7.107 ms
     6  61.148.154.97 (61.148.154.97)  718.908 ms * bt-228-025.bta.net.cn (202.106.228.25)  5.177 ms
     7  124.65.58.213 (124.65.58.213)  4.343 ms  4.336 ms  4.367 ms
     8  202.106.35.190 (202.106.35.190)  1.795 ms 61.148.156.138 (61.148.156.138)  1.899 ms  1.951 ms
     9  * * *
    10  * * *
    复制代码

    七、linux 其他命令

    1. grep 文本搜索

    ps -ef|grep -c svn  查找指定进程个数
    cat test.txt | grep -nf key.txt    从文件中读取关键词对test.txt进行搜索, 且显示行号
    grep 'linux' test1.txt test2.txt   从多个文件中查找关键词
    cat test.txt |grep ^[^u]   输出非u开头的行内容
    cat test.txt |grep hat$     输出以hat结尾的行内容

    2. wc 统计指定文件中的字节数、字数、行数

    -c 统计字节数。  -m 统计字符数。这个标志不能与 -c 标志一起使用。
    -l 统计行数。    -w word统计单词数。计算由空白、跳格或换行字符分隔的字符串数量。

    wc test.txt 显示:行数 单词数 字节数 文件名
    ls -l | wc -l 统计当前目录下的文件数

    3. watch  周期性执行命令/定时执行命令

    -n或--interval 指定间隔的时间(缺省2秒)   -d或--differences  会高亮显示变化的区域

    watch -n 5 -d 'cat /proc/loadavg'    每10秒输出系统的平均负载

    4. ln 文件链接

      为某一个文件在另外一个位置建立一个同步的链接,可以将其视为档案的别名,而链接又可分为两种 : 硬链接(hard link)与软链接(symbolic link)。硬链接会在你选定的位置上生成一个和源文件大小相同的文件,无论是软链接还是硬链接,文件都保持同步变化。

    软链接:
    1.软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式
    2.软链接可以 跨文件系统 ,硬链接不可以
    3.软链接可以对一个不存在的文件名进行链接
    4.软链接可以对目录进行链接

    硬链接:
    1.硬链接,以文件副本的形式存在。但不占用实际空间。
    2.不允许给目录创建硬链接
    3.硬链接只有在同一个文件系统中才能创建

     ln [参数][源文件或目录][目标文件或目录]

    -b 删除,覆盖以前建立的链接 -i 交互模式,文件存在则提示用户是否覆盖
    -d 允许超级用户制作目录的硬链接 -f 强制执行
    -s 软链接(符号链接) -n 把符号链接视为一般目录 -v 显示详细的处理过程

    ln -s test.log link1 给文件创建软链接
    ln test.log ln1 给文件创建硬链接
    ln test.log /opt/soft 创建test.log的硬连接/opt/soft/test.log
    1)源文件被删除后,并没有影响硬链接文件;软链接文件在centos系统下不断的闪烁,提示源文件已经不存在
    2)重建源文件后,软链接不在闪烁提示,说明已经链接成功,找到了链接文件系统;重建后,硬链接文件并没有受到源文件影响,硬链接文件的内容还是保留了删除前源文件的内容,说明硬链接已经失效

    5. make 编译命令

      make是一个解释makefile中指令的命令工具,make可自动完成编译工作,而不用gcc命令单独编译每个源文件,并且可以只对程序员在上次编译后修改过的部分进行编译,提高了开发效率。Makefile文件描述了整个工程的编译、连接等规则。

      Linux应用软件的安装包通常有三种:
    a. tar包,如software.tar.gz。它是使用UNIX系统的打包工具tar打包的。

      1)“tar –xvf 解压后的tar包”进行解包;
      2) 阅读附带的INSTALL文件、README文件;
      3) 执行“./configure”命令为编译做好准备;
      4) 执行“make”命令进行软件编译;
      5) 执行“make install”完成安装;
      6) 执行“make clean”删除安装时产生的临时文件。

    b. rpm包,如software.rpm。它是Redhat Linux提供的一种包封装格式。

    rpm参数 : -i    安装软件     -t     测试安装,不是真的安装    -p   显示安装进度    
               -U   升级安装    -v    检测套件是否正确安装        -f    忽略任何错误

           安装:rpm –ivh software.rpm  卸载: rpm –e software //软件名

    c. dpkg包,如software.deb。它是Debain Linux提供的一种包封装格式。

       安装:dpkg –i software-1.2.3-1.deb  卸载: dpkg –e software

    RedHat 系列 
      1) 常见的安装包格式 rpm包,安装rpm包的命令是“rpm -参数” 
      2)包管理工具 yum 
      3) 支持tar包

    Debian系列 
      1) 常见的安装包格式 deb包,安装deb包的命令是“dpkg -参数” 
      2) 包管理工具 apt-get 
      3) 支持tar包

    复制代码
    apt-get update 更新软件包,在修改/etc/apt/sources.list或者/etc/apt/preferences之后运行该命令
    apt-get upgrade 更新已安装的软件包
    apt-get dist-upgrade 升级系统
    apt-get install packagename 安装软件包
    apt-get remove packagename 卸载软件包(保留配置文件)
    apt-get –purge remove packagename 卸载软件包(删除配置文件)
    apt-get clean 删除包缓存中的所有deb //APT的底层包是dpkg, 而dpkg安装软件包时, 会将*.deb放在缓存中/var/cache/apt/archives/
    apt-get autoclean  删除包缓存中的已经过期的deb
    复制代码

    6. awk 命令

  • 相关阅读:
    Mac电脑kernel_task占用内存过高
    Mac上的聚焦搜索无法查找到应用
    Mac电脑变卡的原因:
    IE浏览器整页截屏程序
    拓扑排序算法的一个应用
    简单演示mySQL后端数据库关系信息逆向加入到PowerDesigner的物理数据模型和概念数据模型中
    解密存储过程或函数
    C#画图
    .NET设计模式开篇
    非重复随机序列生成算法
  • 原文地址:https://www.cnblogs.com/ling-yu-amen/p/10795731.html
Copyright © 2020-2023  润新知