通过进程名查看其占用端口

1、先查看进程pid
ps -ef | grep 进程名

2、通过pid查看占用端口
netstat -nap | grep 进程pid

查看进程

ps 参数
-A
-ef
-aux //显示所有状态
查找nginx相关进程:

ps -ef |grep nginx

关闭进程

杀死进程最安全的方法是单纯使用kill命令,不加修饰符,不带标志。
首先使用ps -ef命令确定要杀死进程的PID,然后输入以下命令:

kill -pid

注释:标准的kill命令通常都能达到目的。终止有问题的进程,并把进程的资源释放给系统。然而,如果进程启动了子进程,只杀死父进程,子进程仍在运行,因此仍消耗资源。为了防止这些所谓的“僵尸进程”,应确保在杀死父进程之前,先杀死其所有的子进程。

确定要杀死进程的PID或PPID

ps -ef | grep httpd
  1. 以优雅的方式结束进程
kill -l PID

-l选项告诉kill命令用好像启动进程的用户已注销的方式结束进程。当使用该选项时,kill命令也试图杀死所留下的子进程。但这个命令也不是总能成功–或许仍然需要先手工杀死子进程,然后再杀死父进程。

  1. TERM信号
    给父进程发送一个TERM信号,试图杀死它和它的子进程。
kill -TERM PPID
  1. killall命令
    killall命令杀死同一进程组内的所有进程。其允许指定要终止的进程的名称,而非PID。
killall httpd
  1. 停止和重启进程
    有时候只想简单的停止和重启进程。如下:
kill -HUP PID

该命令让Linux和缓的执行进程关闭,然后立即重启。在配置应用程序的时候,这个命令很方便,在对配置文件修改后需要重启进程时就可以执行此命令。

  1. 强杀
kill -9 PID
  1. 同样
kill -s SIGKILL

这个强大和危险的命令迫使进程在运行时突然终止,进程在结束后不能自我清理。危害是导致系统资源无法正常释放,一般不推荐使用,除非其他办法都无效。

端口

netstat命令参数:
  -t : 指明显示TCP端口
  -u : 指明显示UDP端口
  -l : 仅显示监听套接字(所谓套接字就是使应用程序能够读写与收发通讯协议(protocol)与资料的程序)
  -p : 显示进程标识符和程序名称,每一个套接字/端口都属于一个程序。
  -n : 不进行DNS轮询,显示IP(可以加速操作)

netstat -ntlp   //查看当前所有tcp端口·
netstat -ntulp |grep 80   //查看所有80端口使用情况·
netstat -an | grep 3306   //查看所有3306端口使用情况·

查看进程占用CPU、内存

ps auxw

重启主机

Linux 的五个重启命令
  1、shutdown
  2、poweroff
  3、init
  4、reboot
  5、halt

查看和添加环境变量

Linux下查看和添加环境变量
编辑环境变量的配置文件:

vi /etc/profile

在文件中使用export PATH=/usr/bin:/usr/sbin:/bin:/sbin添加环境变量。
结束后输入命令使得资源生效:

source /etc/profile

解压缩

zip命令
  解压:unzip FileName.zip
  压缩:zip FileName.zip DirName

tar命令
  解包:tar zxvf FileName.tar
  打包:tar czvf FileName.tar DirName

-c: 建立压缩档案
-x:解压
-t:查看内容
-r:向压缩归档文件末尾追加文件
-u:更新原压缩包中的文件

这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。

-z:有gzip属性的
-j:有bz2属性的
-Z:有compress属性的
-v:显示所有过程
-O:将文件解开到标准输出

压缩解压方式:
1.tar

tar -cvf examples.tar files|dir
tar -xvf examples.tar (解压至当前目录下)
tar -xvf examples.tar  -C /path (/path 解压至其它路径)

2.tar.gz tgz

tar -zcvf examples.tgz examples (examples当前执行路径下的目录)

tar -zxvf examples.tar (解压至当前执行目录下)
tar -zxvf examples.tar  -C /path (/path 解压至其它路径)

3 tar.bz

tar -jcvf examples.tar.bz2 examples   (examples为当前执行路径下的目录)

tar -jxvf examples.tar.bz2 (解压至当前执行目录下)
tar -jxvf examples.tar.bz2  -C /path (/path 解压至其它路径)

4 gz

压缩:
gzip -d examples.gz examples

解压:
gunzip examples.gz

5 zip
zip 格式是开放且免费的,所以广泛使用在 Windows、Linux、MacOS 平台,要说 zip 有什么缺点的话,就是它的压缩率并不是很高,不如 rar及 tar.gz 等格式。

压缩:
zip -r examples.zip examples (examples为目录)

解压:
zip examples.zip

6 .rar

压缩:
rar -a examples.rar examples
解压:
rar -x examples.rar
tar -zcvf pack.tar.gz pack/  #打包压缩为一个.gz格式的压缩包
tar -jcvf pack.tar.bz2 pack/ #打包压缩为一个.bz2格式的压缩包
tar -Jcvf pack.tar.xz pack/  #打包压缩为一个.xz格式的压缩包

tar -zxvf pack.tar.gz /pack  #解包解压.gz格式的压缩包到pack文件夹
tar -jxvf pack.tar.bz2 /pack #解包解压.bz2格式的压缩包到pack文件夹
tar -Jxvf pack.tar.xz /pack  #解包解压.xz格式的压缩包到pack文件夹

(tgz即tar.gz)
在压缩比率上: tar.bz2>tgz>tar
占用空间与压缩比率成反比: tar.bz2<tgz<tar
耗费时间(打包,解压)
打包:tar.bz2>tgz>tar
解压: tar.bz2>tar>tgz

文件操作

  1. 新建目录:mkdir 文件夹
  2. 显示用户当前工作目录:pwd
  3. 删除rm [fir] 文件或目录
参数说明:
-f:强制删除
-i:交互模式,在删除前询问用户是否操作
-r:递归删除,常用在目录的删除
  1. 复制CP
格式: CP [选项]  源文件或目录   目的文件或目录
选项说明:-b 同名,备分原来的文件
        -f 强制覆盖同名文件
        -r  按递归方式保留原目录结构复制文件
cp -Rf /home/user1/* /root/temp/
将 /home/user1目录下的所有东西拷到/root/temp/下而不拷贝user1目录本身。
即格式为:cp -Rf 原路径/ 目的路径/
  1. 移动mv
 mv ./WorkReport/web.xml ./WorkReport/WEB-INF/
注:移动/WorkReport/web.xml文件到/WorkReport/WEB-INF/
mv /data/new /data/old/
注:移动/data/new 到/data/old/文件夹下
注意点:移动文件夹的话就不要再加 / 了
如果是移动文件夹下的所有文件的话就可以文件夹后面跟上 /* 
mv /data/new/* /data/old/
  1. 重命名
    将目录A重命名为B
mv A B

Nginx

1.启动:

./nginx -c /usr/local/nginx/conf/nginx.conf

2.重启:
方法一:进入nginx可执行目录sbin下,输入命令./nginx -s reload 即可
方法二:查找当前nginx进程号,然后输入命令:kill -HUP 进程号 实现重启nginx服务

Jenkins 构建通过shell无法启动进程问题

原因:
Jenkins在构建结束后会把额外启动的进程杀死。 到这里知道原因了,那就看怎么解决了。

解决方案:
解决办法其实非常容易,只需要在执行 .sh 文件之前,加上 BUILD_ID=dontKillMe

后台运行jar包

//&代表在后台运行。
java -jar shareniu.jar  --server.port=9003&

//nohup 意思是不挂断运行命令,当账户退出或终端关闭时,程序仍然运行
nohup java -jar shareniu.jar &

//输出内容不打印到屏幕上,而是输出到out.file文件
nohup java -jar shareniu.jar >out.file  &  

JVM参数

-Xms256m  堆内存的最小大小,默认为物理内存的1/64
-Xmx256m  堆内存的最大大小,默认为物理内存的1/4
-Xmn      堆内新生代的大小。通过这个值也可以得到老生代的大小:-Xmx减去-Xmn
-Xss128k 设置每个线程可使用的内存大小,即栈的大小

Zookeeper

//启动服务
bin# ./zkServer.sh start
//配置文件目录
 /home/apache-zookeeper-3.5.5/bin/../conf/zoo.cfg

切换用户

su username

Elasticsearch

创建ES用户和组(创建elasticsearch用户组及es用户)

groupadd elasticsearch
useradd es -g elasticsearch
chown -R es /usr/local/elasticsearch-6.2.3  该命令是更改该文件夹下所属的用户组的权限

创建ES数据文件和日志文件,直接在root用户根目录一下创建就可以了(这个要和下一步配置的里面的路径相同)

mkdir /path
chown -R es /path/
su es 切换用户
mkdir -p to/data
mkdir -p to/logs

启动
首先切换到es用户
su es
进入到bin 目录下执行 ./elasticsearch 命令就可以了
执行 ./elasticesrarch -d 是后台运行
查找ES进程
ps -ef | grep elastic
杀掉ES进程
kill -9 2382(进程号)
重启ES
sh elasticsearch -d

Elastichsearch-head

安装:
elasticsearch-head 安装介绍

启动:
进入elastichsearch-head目录

>nohup grunt server &

终端控制键

Ctrl+C
发送Terminal到当前的程序,强制结束当前的进程
Ctrl+Z
挂起,fg回车后就可以回来,当然可以挂起好多进程到后台,然后fg 加编号就能把挂起的进程返回到前台。配合bg和fg命令进行前后台切换

MongoDB

以配置文件启动:

 ./mongod -f ./ mongodb.conf

mongodb.conf

dbpath=/usr/local/mongodb/data/
logpath=/usr/local/mongodb/logs/mongodb.log
port=27017
auth=true
bind_ip=0.0.0.0,127.0.0.0
logappend=1
#开启mongodb数据库副本集
plogSize=10000
replSet=myDevReplSet

常见命令行操作:
mongodb命令行操作

shell连接:
./mongo ip:port/dbname -u 用户名 -p 密码

启动副本集:
./mongod --replSet myrs --dbpath /usr/local/mongodb/data/27018/ --port 27018 --bind_ip 0.0.0.0 --logpath /usr/local/mongodb/logs/27018/27018.log --fork --keyFile /usr/local/mongodb/bin/keyFile

连接副本集:
任意成员,如 27017 端口:
mongo --port 27019

初始化副本集:
rs.initiate()
查看副本集配置信息:
rs.conf()
配置延迟节点:该节点必须被隐藏,并且不能成为主节点。适用范围:处理一定时间段内的误操作(个人感觉意义不大)
cfg=rs.conf()
cfg.members[1].slaveDelay=60 ##延迟60秒
cfg.members[1].priority=0
cfg.members[1].hidden=true
rs.reconfig(cfg)
rs.conf()

副本集安全认证:
使用keyFile文件
MongoDB复制集安全认证

>use admin
>db.auth("user","pwd")

mongo-connector 连接mongodb与elasticsearch

./mongo-connector -m mongodb://user:pwd@localhost:port  -t localhost:9200 -d elastic_doc_manager

看磁盘内存

查看磁盘Z:
df -k:以KB为单位显示磁盘使用量和占用率
df -m:以Mb为单位显示磁盘使用量和占用率

查看内存:
top
free
cat /proc/meminfo
pmap

free -h

Redis

1.启动服务:

./redis-server /usr/local/redis-3.2.8/conf/redis.conf

2.客户端命令:
连接

 redis-cli -h host -p 6379-a password

清空所有数据库数据

flushall

Tomcat

启动服务:

./startup.sh

进程后台运行

//输出记录到out.file文件
nohup ... >out.file   &

-daemon

nohup命令、setsid命令、Daemon(守护进程)简要梳理

查看是否安装

yum list installed|grep docker

ssh 传文件scp

scp -r D:/dist root@x.x.x.x:/home/

ssh命令行登录

ssh root@xxxx

find

find  /  -name  1.txt : 在根目录下开始寻找1.txt
find  /root  -name  *1.txt : 从root目录下开始寻找带有名称1的txt文件
find  /  -name  1  -type d: 在根目录下开始寻找目录1

chmod

例1:

$ chmod a+x sort

即设定文件sort的属性为:文件属主(u) 增加执行权限与文件属主同组用户(g) 增加执行权限其他用户(o) 增加执行权限

例2:

$ chmod ug+w,o-x text

即设定文件text的属性为:文件属主(u) 增加写权限与文件属主同组用户(g) 增加写权限;其他用户(o) 删除执行权限

例3:

$ chmod u+s a.out

假设执行chmod后a.out的权限为(可以用ls – l a.out命令来看):

–rws--x--x 1 inin users 7192 Nov 4 14:22 a.out

并且这个执行文件要用到一个文本文件shiyan1.c,其文件存取权限为“–rw——-”,即该文件只有其属主具有读写权限。

当其他用户执行a.out这个程序时,他的身份因这个程序暂时变成inin(由于chmod命令中使用了s选项),所以他就能够读取shiyan1.c这个文件(虽然这个文件被设定为其他人不具备任何权限),这就是s的功能。

因此,在整个系统中特别是root本身,最好不要过多的设置这种类型的文件(除非必要)这样可以保障系统的安全,避免因为某些程序的bug而使系统遭到入侵。

例4:

$ chmod a–x mm.txt
$ chmod –x mm.txt
$ chmod ugo–x mm.txt

以上这三个命令都是将文件mm.txt的执行权限删除,它设定的对象为所有使用者。

数字设定法
我们必须首先了解用数字表示的属性的含义:0表示没有权限,1表示可执行权限,2表示可写权限,4表示可读权限,然后将其相加。所以数字属性的格式应为3个从0到7的八进制数,其顺序是(u)(g)(o)。
例如,如果想让某个文件的属主有“读/写”二种权限,需要把4(可读)+2(可写)=6(读/写)。
数字设定法的一般形式为:chmod [mode] 文件名¼

gitlab服务

启动

sudo gitlab-ctl start

停止

sudo gitlab-ctl stop

重启

sudo gitlab-ctl restart

查看状态

sudo gitlab-ctl status
GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐