Linux命令输出头(标题)、输出结果排序技巧

1、 Linux命令输出头(标题)
在使用Linux命令时,如果命令中有管道“|”,则输出的信息中,头(标题)信息丢失,要想看每一列代表什么意思很不方便。

这里有一个简单的办法,通过2条命令叠加,获取头和内容。例如ps auxw:

$ ps axuw
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.2  37888  5952 ?        Ss   01:21   0:02 /sbin/init noprompt
root         2  0.0  0.0      0     0 ?        S    01:21   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    01:21   0:00 [ksoftirqd/0]
root         5  0.0  0.0      0     0 ?        S<   01:21   0:00 [kworker/0:0H]

再加上管道符后

$ ps axuw | grep java
faster    8502  0.0  0.0  12948   972 pts/1    S+   02:15   0:00 grep java

可以看到头(标题)已经丢失。

怎么显示标题呢,这有一个简单的办法:

$ ps axuw | head -1;ps axuw | grep java
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
faster    8510  0.0  0.0  12948   940 pts/1    S+   02:17   0:00 grep java

也就是先用命令本身加“| head -1”取到头(标题),然后再使用该命令输出内容,两者叠加输出即得到所要结果。

2、输出结果排序
按列排序,数字大的在前:

root@ubuntu:/home/faster/Fastdfs/FastDFS# ps auxw | sort -rn -k6
root       851  0.2  1.6 408816 33224 ?        Ssl  01:21   0:10 /usr/bin/docker daemon -H fd://
root       868  0.0  0.6 213068 13320 ?        Ssl  01:21   0:02 containerd -l /var/run/docker/libcontainerd/docker-containerd.sock --runtime runc --start-timeout 2m
root      8452  0.0  0.3  95584  7212 ?        Ss   01:47   0:00 sshd: tiger [priv]
root       980  0.0  0.3  95464  7088 ?        Ss   01:21   0:00 sshd: tiger [priv]
root      1044  0.0  0.3  95464  7048 ?        Ss   01:23   0:00 sshd: tiger [priv]
root       854  0.0  0.3  65612  6616 ?        Ss   01:21   0:00 /usr/sbin/sshd -D
root       592  0.0  0.3 274592  6240 ?        Ssl  01:21   0:00 /usr/lib/accountsservice/accou

该例子,将第6列进行排序,最大的数排前面。

若只想看前10条的内容:

ps auxw | sort -rn -k6 | head -10

3、综合例子
将实际内存消耗最大的10个进程显示出来的命令:

ps auxw|head -1;ps auxw|sort -rn -k6|head -10

$ ps auxw|head -1;ps auxw|sort -rn -k6|head -10
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root       851  0.2  1.6 408816 33224 ?        Ssl  01:21   0:11 /usr/bin/docker daemon -H fd://
root       868  0.0  0.6 213068 13320 ?        Ssl  01:21   0:03 containerd -l /var/run/docker/libcontainerd/docker-containerd.sock --runtime runc --start-timeout 2m
root      8452  0.0  0.3  95584  7212 ?        Ss   01:47   0:00 sshd: tiger [priv]
root       980  0.0  0.3  95464  7088 ?        Ss   01:21   0:00 sshd: tiger [priv]
root      1044  0.0  0.3  95464  7048 ?        Ss   01:23   0:00 sshd: tiger [priv]
root       854  0.0  0.3  65612  6616 ?        Ss   01:21   0:00 /usr/sbin/sshd -D
root       592  0.0  0.3 274592  6240 ?        Ssl  01:21   0:00 /usr/lib/accountsservice/accounts-daemon
root         1  0.0  0.2  37888  5952 ?        Ss   01:21   0:02 /sbin/init noprompt
syslog     576  0.0  0.2 256396  5372 ?        Ssl  01:21   0:00 /usr/sbin/rsyslogd -n
faster    1137  0.0  0.2  21224  5272 pts/0    S    01:37   0:00 -su

该命令亦可使用ps auxw --sort=-rss|head -10命令替代。

git 关联远程仓库

当使用Git进行代码push提交时,出现报错信息“fatal: 'origin' does not appear to be a git repository...”,

$ git push -u origin master
fatal: 'origin' does not appear to be a git repository
fatal: Could not read from remote repository.

是因为远程不存在origin这个仓库名称,可以使用如下操作方法,查看远程仓库名称以及路径相关信息,可以删除错误的远程仓库名称,重新添加新的远程仓库;

git remote -v: 查看远程仓库详细信息,可以看到仓库名称

git remote remove orign: 删除orign仓库(如果把origin拼写成orign,删除错误名称仓库)

git remote add origin 仓库地址: 重新添加远程仓库地址

gti push -u origin master: 提交到远程仓库的master主干

挂载磁盘

将磁盘挂载到data目录下
前提是需要给数据盘分好区先,然后在执行下面命令

//分区
fdisk -l   # 查找所有磁盘
fdisk /dev/sdb  # 选择要分区的磁盘 根据命令提示创建好分区
mkfs.extd /dev/sdb1  # 格式化磁盘  sdb1 是上面命令根据提示创建的分区
mkfs.xfs -f /dev/sdb1 # 强制格式化分区


mount /dev/sdb1  /data   # 挂载 到/data目录 ,/data 目录需要提前创建好

Shell基本语法

#定义一个变量
LNMP_Ver='1.6'

#输出一个变量
echo $LNMP_Ver
#在字符中嵌入变量一并输出
echo "这是一个${LNMP_Ver}变量"


#include 一个文件 注意 include 前面有个. 并且符合后面包含一个空格
. lnmp.conf
. include/main.sh
. include/init.sh
. include/mysql.sh
. include/mariadb.sh
. include/php.sh
. include/nginx.sh
. include/apache.sh
. include/end.sh
. include/only.sh
. include/multiplephp.sh



Get_Dist_Name(){
    echo "这是一个函数"
}

#调用一个函数(无参数)
Get_Dist_Name

Linux中配置apache+php-fpm模式

先查找php-fpm.conf ,发现PHP的安装目录下没有该文件
在PHP安装目录下创建php-fpm配置文件,并输入以下内容(存在跳过此步骤)

[global]
pid = /www/server/php/70/var/run/php-fpm.pid
error_log = /www/logs/php/70/php-fpm.log
log_level = notice

[www]
listen = /tmp/php-cgi-70.sock
listen.backlog = -1
listen.allowed_clients = 127.0.0.1
listen.owner = www
listen.group = www
listen.mode = 0666
user = www
group = www
pm = dynamic
pm.status_path = /phpfpm_70_status
pm.max_children = 300
pm.start_servers = 20
pm.min_spare_servers = 20
pm.max_spare_servers = 50
request_terminate_timeout = 100
request_slowlog_timeout = 30
slowlog = /www/logs/php/70/slow.log

找到apache的配置文件,找到 php_module 项(代表你的PHP版本号)注释该项
再找到 mod_proxy.so 和 mod_proxy_fcgi.so 以及 mod_rewrite.so项,解除注释,启用模块

在apache配置文件中加载其它配置(比如网站域名配置)

IncludeOptional /www/server/apache/vhost/*.conf

php-fpm模式5.png

创建测试文件
在web站点根目录下创建index.php

创建文件夹

mkdir /www/wwwroot/build

创建文件

vim /www/wwwroot/build/index.php

在文件中输入以下内容

phpinfo();

保存退出#

创建apache的虚拟主机站点配置文件
在IncludeOptional 项指定的目录下创建一个任意文件名.conf的配置,我这里是index.conf

vim /www/server/apache/vhost/index.conf

输入以下内容 (注意内容中的路径是可以自定义的)#

<VirtualHost *:80>
    ServerAdmin webmaster@example.com
    DocumentRoot "/www/wwwroot/build" #这里指定web的根目录
    ServerName 192.168.1.3                #这里是web网站访问的域名
    ServerAlias 192.168.1.3            #这里也是web网站访问的域名
    errorDocument 404 /404.html     
    ErrorLog "/www/logs/www/1.error_log"  #这里是web网站访问的日志
    CustomLog "/www/logs/www/1.access_log" combined  #这里是web网站访问的错误日志

    #DENY FILES
     <Files ~ (\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)$>
       Order allow,deny
       Deny from all
    </Files>

    #PHP
    <FilesMatch \.php$>
            SetHandler "proxy:unix:/tmp/php-cgi-70.sock|fcgi://localhost"
    </FilesMatch>

    #PATH
    <Directory "/www/wwwroot/build"> #这里指定web的根目录
        SetOutputFilter DEFLATE
        Options FollowSymLinks
        AllowOverride All
        Require all granted
        DirectoryIndex index.php index.html index.htm default.php default.html default.htm
    </Directory>
</VirtualHost>

修改所有新创建的文件所属权

重启apache
启动php-fpm

/www/server/php/56/sbin/php-fpm
/www/server/php/70/sbin/php-fpm

浏览器输入地址
访问成功