linux常用命令总结

1Linux如何通过命令查看日志文件的某几行(中间几行或最后几行)

nux 如何显示一个文件的某几行(中间几行)

【一】从第3000行开始,显示1000行。即显示3000~3999行

cat filename | tail -n +3000 | head -n 1000

【二】显示1000行到3000行

cat filename| head -n 3000 | tail -n +1000

*注意两种方法的顺序

分解:

    tail -n 1000:显示最后1000行

    tail -n +1000:从1000行开始显示,显示1000行以后的

    head -n 1000:显示前面1000行

【三】用sed命令

 sed -n '5,10p' filename 这样你就可以只查看文件的第5行到第10行。

Linux统计文件行数

语法:wc [选项] 文件…

说明:该命令统计给定文件中的字节数、字数、行数。如果没有给出文件名,则从标准输入读取。wc同时也给出所有指定文件的总统计数。字是由空格字符区分开的最大字符串。

该命令各选项含义如下:

  - c 统计字节数。

  - l 统计行数。

  - w 统计字数。

这些选项可以组合使用。

输出列的顺序和数目不受选项的顺序和数目的影响。

总是按下述顺序显示并且每项最多一列。

行数、字数、字节数、文件名

如果命令行中没有文件名,则输出中不出现文件名。

例如:

$ wc - lcw file1 file2

4 33 file1

7 52 file2

11 11 85 total

举例分析:

1.统计demo目录下,js文件数量:

find demo/ -name "*.js" |wc -l

2.统计demo目录下所有js文件代码行数:

find demo/ -name "*.js" |xargs cat|wc -l 或 wc -l `find ./ -name "*.js"`|tail -n1

3.统计demo目录下所有js文件代码行数,过滤了空行:

find /demo -name "*.js" |xargs cat|grep -v ^$|wc -l

2linux命令df中df -h和df -i的区别

执行df -h命令

[root@master01 ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   17G   17G   68K 100% /
devtmpfs                 3.9G     0  3.9G   0% /dev
tmpfs                    3.9G     0  3.9G   0% /dev/shm
tmpfs                    3.9G  8.6M  3.9G   1% /run
tmpfs                    3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/sda1               1014M  143M  872M  15% /boot
tmpfs                    781M     0  781M   0% /run/user/0
[root@master01 ~]# 
[root@master01 ~]# df -i
Filesystem              Inodes IUsed  IFree IUse% Mounted on
/dev/mapper/centos-root  97224 95149   2075   98% /
devtmpfs                996493   391 996102    1% /dev
tmpfs                   999256     1 999255    1% /dev/shm
tmpfs                   999256   493 998763    1% /run
tmpfs                   999256    16 999240    1% /sys/fs/cgroup
/dev/sda1               524288   328 523960    1% /boot
tmpfs                   999256     1 999255    1% /run/user/0
[root@master01 ~]# 

df -h 和df -i的区别是什么?同样是显示磁盘使用情况,为什么显示占用百分比相差甚远?

df -h的比较好解释,就是查看磁盘容量的使用情况。

至于df -i,先需要去理解一下inode
以博客主的个人理解,最简单的说法,inode包含的信息:文件的字节数,拥有者id,组id,权限,改动时间,链接数,数据block的位置。相反是不表示文件大小。这就是为什么df -h和df -i 显示的结果是不一样的原因。

ps:在df -h 和df -i 显示使用率100%,基本解决方法都是删除文件。

df -h 是去删除比较大无用的文件-----------大文件占用大量的磁盘容量。

df -i 则去删除数量过多的小文件-----------过多的文件占用了大量的inode号。

3top命令

在这里插入图片描述
PID:进程ID,进程的唯一标识符

USER:进程所有者的实际用户名。

PR:进程的调度优先级。这个字段的一些值是’rt’。这意味这这些进程运行在实时态。

NI:进程的nice值(优先级)。越小的值意味着越高的优先级。负值表示高优先级,正值表示低优先级

VIRT:进程使用的虚拟内存。进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES

RES:驻留内存大小。驻留内存是任务使用的非交换物理内存大小。进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA

SHR:SHR是进程使用的共享内存。共享内存大小,单位kb

S:这个是进程的状态。它有以下不同的值:

D - 不可中断的睡眠态。
R – 运行态
S – 睡眠态
T – 被跟踪或已停止
Z – 僵尸态
%CPU:自从上一次更新时到现在任务所使用的CPU时间百分比。

%MEM:进程使用的可用物理内存百分比。

TIME+:任务启动后到现在所使用的全部CPU时间,精确到百分之一秒。

COMMAND:运行进程所使用的命令。进程名称(命令名/命令行)

还有许多在默认情况下不会显示的输出,它们可以显示进程的页错误、有效组和组ID和其他更多的信息。

4linux下的find文件查找命令与grep文件内容查找命令

在使用linux时,经常需要进行文件查找。其中查找的命令主要有find和grep。两个命令是有区的。

区别:
  (1)find命令是根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访问时间,修改时间等。
(2)grep是根据文件的内容进行查找,会对文件的每一行按照给定的模式(patter)进行匹配查找。

一.find命令

基本格式:find path expression

1.按照文件名查找

(1)find / -name httpd.conf  #在根目录下查找文件httpd.conf,表示在整个硬盘查找
    (2)find /etc -name httpd.conf  #在/etc目录下文件httpd.conf
    (3)find /etc -name ‘srm’  #使用通配符*(0或者任意多个)。表示在/etc目录下查找文件名中含有字符串‘srm’的文件
    (4)find . -name ‘srm*’   #表示当前目录下查找文件名开头是字符串‘srm’的文件
grep命令

基本格式:find expression

1.主要参数

[options]主要参数:
    -c:只输出匹配行的计数。
    -i:不区分大小写
    -h:查询多文件时不显示文件名。
    -l:查询多文件时只输出包含匹配字符的文件名。
    -n:显示匹配行及行号。
    -s:不显示不存在或无匹配文本的错误信息。
    -v:显示不包含匹配文本的所有行。

5linux lsof/netstat查看进程和端口号相关命令:

  1. netstat命令根据进程pid查端口:
 netstat -nap | grep pid

在这里插入图片描述
其中,10150为TOMCAT_HTTP_PORT端口号,
10153为TOMCAT_HTTPS_PORT端口号,
10152为TOMCAT_SHUTDOWN_PORT端口号,
10154为TOMCAT_AJP_PORT端口号,
2.根据端口port查进程

 netstat -nap | grep port

在这里插入图片描述
其中22636为进程号。
6.使用telnet命令
执行telnet指令开启终端机阶段作业,并登入远端主机。

查看远方服务器ssh端口是否开放:
telnet 192.168.25.133 22

在这里插入图片描述

测试orcale端口是否开放
telnet 192.168.25.133  1521
测试mysql端口是否开放
telnet 192.168.25.133  3306

scp命令

1.命令格式:

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

2.命令功能:

scp是 secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。linux的scp命令可以在linux服务器之间复制文件和目录。
4.使用实例:

scp命令的实际应用概述:

从本地服务器复制到远程服务器:

(1) 复制文件:

命令格式:

scp local_file remote_username@remote_ip:remote_folder 

或者

scp local_file remote_username@remote_ip:remote_file 

第1,2个指定了用户名,命令执行后需要输入用户密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名

(2) 复制目录:
命令格式:

scp -r local_folder remote_username@remote_ip:remote_folder 

或者

scp -r local_folder remote_ip:remote_folder 

第1个指定了用户名,命令执行后需要输入用户密码;
第2个没有指定用户名,命令执行后需要输入用户名和密码;
从远程服务器复制到本地服务器:
从远程复制到本地的scp命令与上面的命令雷同,只要将从本地复制到远程的命令后面2个参数互换顺序就行了。

chown和chmod授权详解

chown:用来更改某个目录或文件的用户名和用户组

chmod:用来更改某个目录或文件的访问权限

首先通过ll命令查看目录下文

-rw-------. 1 root root 1289 6月   1 2017 anaconda-ks.cfg
-rw-r--r--. 1 root root  786 6月   8 2017 app_account.sql
drwxr-xr-x. 8 root root 4096 2月  10 2018 homestead_server
-rw-r--r--. 1 root root 7995 6月   1 2017 install.log
-rw-r--r--. 1 root root 3384 6月   1 2017 install.log.syslog
-rw-r--r--. 1 root root    0 8月  20 12:37 mysqlaccess.log
-rw-r--r--. 1 root root   55 8月  24 17:25 test.txt

主要看最前面一列,我把"drwxr-xr-x"拿出来说,

d:目录
rwx: 可读、可写、可执行   2-4位
r-x: 可读、可执行        5-7位
r-x: 可读、可执行        8-10位

可见一共有十位。-[rw-][r–][r–].其中第一个[-]代表的是类型,其中第一位为d代表目录,每三位代表一个权限位

2-4 位代表所有者拥有的权限

5-7 位代表群组拥有的权限

8-10位代表其他人拥有的权限

第三和第四列两个root ,分别代表用户名和用户组;

useradd yu_test //添加用户yu_test
chown yu_test test.txt //改变文件用户名权限
-rw-r–r--. 1 yu_test root 55 8月 24 17:25 test.txt
十进制表示

r : 4 
w : 2
x : 1
- :  0 

将rwx看成是二进制的数,有用1表示,没有用0表示,那么 [rwx] [r-x] [r–]就可以表示成:111 101 100,将其转换成为一个十进制数就是:754。

权限操作

+ 表示添加权限
- 表示删除权限
= 重置权限

修改文件权限

u:代表文件所有者(user)
g: 代表所有者所在的群组(group)
o:代表其他人,但不是u和g(other)
a:a和一起指定ugo效果一样
chmod o+w test.txt :表示给其他人授予写test.txt这个文件的权限
chmod go-rw test.txt : 表示群组和其他人删除对test.txt文件的读写权限
chmod ugo+r test.txt:所有人皆可读取
chmod a+r text.txt:所有人皆可读取
chmod ug+w,o-w text.txt:设为该档案拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入
chmod u+x test.txt: 创建者拥有执行权限 
chmod -R a+r ./www/ :将www下的所有档案与子目录皆设为任何人可读取
chmod a-x test.txt :收回所有用户的对test.txt的执行权限
chmod 777 test.txt: 所有人可读,写,执行

修改目录权限

chmod 700   /opt/elasticsearch  #修改目录权限
chmod -R 744 /opt/elasticsearch  #修改目目录以下所有的权限   
-R             # 以递归方式更改所有的文件及子目录

chown 修改用户组 修改 test.txt 目录所属用户为 root,用户组为 root

chown -R root:root test.txt   
-rw-r--r--. 1 root root   55 8月  24 17:25 test.txt

常见权限

-rw------- (600) 只有所有者才有读和写的权限。
-rw-r--r-- (644) 只有所有者才有读和写的权限,群组和其他人只有读的权限。
-rw-rw-rw- (666) 每个人都有读写的权限
-rwx------ (700) 只有所有者才有读,写和执行的权限。
-rwx--x--x (711) 只有所有者才有读,写和执行的权限,群组和其他人只有执行的权限。
-rwxr-xr-x (755) 只有所有者才有读,写,执行的权限,群组和其他人只有读和执行的权限。
-rwxrwxrwx (777) 每个人都有读,写和执行的权限

实践 在用Elasticsearch的时候是少不了给添加用户授权

chmod 400 test.txt        #修改text.txt为可读文件
vi text.txt               #执行该命令后,该文件就无法进行写入操作 提示下面信息
-- INSERT -- W10: Warning: Changing a readonly file
chmod 777 text.txt 
-rwxrwxrwx. 1 root root   55 8月  24 17:25 test.txt
chmod rwxr--r-- test.txt   #异常,不能使用该命令来修改权限

netstat命令

netstat命令各个参数说明如下:

  • -t : 指明显示TCP端口

    -u : 指明显示UDP端口

    -l : 仅显示监听套接字(所谓套接字就是使应用程序能够读写与收发通讯协议(protocol)与资料的程序)

    -p : 显示进程标识符和程序名称,每一个套接字/端口都属于一个程序。

    -n : 不进行DNS轮询,显示IP(可以加速操作)

即可显示当前服务器上所有端口及进程服务,于grep结合可查看某个具体端口及服务情况··

netstat -ntlp //查看当前所有tcp端口·

netstat -ntulp |grep 80 //查看所有80端口使用情况·

netstat -an | grep 3306 //查看所有3306端口使用情况·

查看一台服务器上面哪些服务及端口

netstat -lanp

查看一个服务有几个端口。比如要查看mysqld

ps -ef |grep mysqld

查看某一端口的连接数量,比如3306端口

netstat -pnt |grep :3306 |wc

查看某一端口的连接客户端IP 比如3306端口

netstat -anp |grep 3306

netstat -an 查看网络端口

lsof -i :port,使用lsof -i :port就能看见所指定端口运行的程序,同时还有当前连接。

nmap 端口扫描
netstat -nupl (UDP类型的端口)
netstat -ntpl (TCP类型的端口)
netstat -anp 显示系统端口使用情况

free 可以显示Linux系统中空闲的、已用的物理内存及swap内存,及被内核使用的buffer

1.命令格式:
free [参数]
2.命令功能:
free 命令显示系统使用和空闲的内存情况,包括物理内存、交互区内存(swap)和内核缓冲区内存。共享内存将被忽略
3.命令参数:
-b  以Byte为单位显示内存使用情况。
-k  以KB为单位显示内存使用情况。
-m  以MB为单位显示内存使用情况。
-g 以GB为单位显示内存使用情况。
-o  不显示缓冲区调节列。
-s<间隔秒数>  持续观察内存使用状况。
-t  显示内存总和列。
-V  显示版本信息。

[root@erzhen ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:           3774         194        1497         980        2082        2352
Swap:          2047           0        2047
[root@erzhen ~]# 
[root@erzhen ~]# free -g
              total        used        free      shared  buff/cache   available
Mem:              3           0           1           0           2           2
Swap:             1           0           1
[root@erzhen ~]# 

du : 显示每个文件和目录的磁盘使用空间~~~文件的大小。

[root@erzhen /]# du -h /root/
489M	/root/
[root@erzhen /]# 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值