Linux命令记录
目录
通过进程名查看其占用端口
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
- 以优雅的方式结束进程
kill -l PID
-l选项告诉kill命令用好像启动进程的用户已注销的方式结束进程。当使用该选项时,kill命令也试图杀死所留下的子进程。但这个命令也不是总能成功–或许仍然需要先手工杀死子进程,然后再杀死父进程。
- TERM信号
给父进程发送一个TERM信号,试图杀死它和它的子进程。
kill -TERM PPID
- killall命令
killall命令杀死同一进程组内的所有进程。其允许指定要终止的进程的名称,而非PID。
killall httpd
- 停止和重启进程
有时候只想简单的停止和重启进程。如下:
kill -HUP PID
该命令让Linux和缓的执行进程关闭,然后立即重启。在配置应用程序的时候,这个命令很方便,在对配置文件修改后需要重启进程时就可以执行此命令。
- 强杀
kill -9 PID
- 同样
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
文件操作
- 新建目录:
mkdir 文件夹
- 显示用户当前工作目录:
pwd
- 删除rm [fir] 文件或目录
参数说明:
-f:强制删除
-i:交互模式,在删除前询问用户是否操作
-r:递归删除,常用在目录的删除
- 复制CP
格式: CP [选项] 源文件或目录 目的文件或目录
选项说明:-b 同名,备分原来的文件
-f 强制覆盖同名文件
-r 按递归方式保留原目录结构复制文件
cp -Rf /home/user1/* /root/temp/
将 /home/user1目录下的所有东西拷到/root/temp/下而不拷贝user1目录本身。
即格式为:cp -Rf 原路径/ 目的路径/
- 移动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/
- 重命名
将目录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
启动:
进入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
更多推荐
所有评论(0)