Linux 开发常用命令

查看端口占用

netstat -tunlp | grep 端口号

-t (tcp) 仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化为数字
-l 仅列出在Listen(监听)的服务状态
-p 显示建立相关链接的程序名

 

lsof -i:端口号

lsof -i:8080:查看8080端口占用
lsof abc.txt:显示开启文件abc.txt的进程
lsof -c abc:显示abc进程现在打开的文件
lsof -c -p 1234:列出进程号为1234的进程所打开的文件
lsof -g gid:显示归属gid的进程情况
lsof +d /usr/local/:显示目录下被进程开启的文件
lsof +D /usr/local/:同上,但是会搜索目录下的目录,时间较长
lsof -d 4:显示使用fd为4的进程
lsof -i -U:显示所有打开的端口和UNIX domain文件

查看运行进程

ps 显示系统正在运行的进程

-A :所有的进程均显示出来
-a :不与terminal有关的所有进程
-u :有效用户的相关进程
-x :一般与a参数一起使用,可列出较完整的信息
-l :较长,较详细地将PID的信息列出

 

kill -9 pid

kill无效

(1)该进程处于”Zombie”状态(使用ps命令返回defunct的进程,僵尸进程)。 此时进程已经释放所有资源,但还未得到其父进程的确认。Zombie进程要等到下次重启时才会消失,但它的存在不会影响系统性能。

(2)该进程处于”kernel mode”(内核态)且在等待不可获得的资源(类似于挂起)。处于核心态的进程忽略所有信号处理,因此对于这些一直处于核心态的进程只能通过重启系统实现。进程在AIX 中会处于两种状态,即用户态和核心态。只有处于用户态的进程才可以用“kill”命令将其终止。

cpu占用情况

top命令

top命令会默认按照CPU的占用情况,显示占用量较大的进程,可以使用top -u 查看某个用户的CPU使用排名情况

top -bn 1 -i -c 
-c 显示整个命令行
-i 忽略死掉僵死的

gzip unzip压缩解压

tar

tar命令能创建、查看和提取tar压缩文件。tar -cvf 是创建对应压缩文件,tar -tvf 来查看对应压缩文件,tar -xvf 来提取对应压缩文件。 

tar -zcvf 则是对整个文件夹压缩

find

这个命令会在给定位置搜寻与条件匹配的文件。你可以使用find -name 的-name选项来进行区分大小写的搜寻,find -iname 来进行不区分大小写的搜寻。

find dir -name "string*" 搜索文件

find . -name "*.c" 查找当前目录.c的文件列出来

文件相关操作

grep

-a :将 binary 文件以 text 文件的方式搜寻数据
-c :计算找到 '搜寻字符串' 的次数
-i :忽略大小写的不同,所以大小写视为相同
-n :顺便输出行号
-v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行!

grep ‘hello’  findfile*         #在所有前缀为findfile的文件里面查找包含hello字符串的行

grep -r update /etc/acpi   #以递归的方式查找/etc/acpi目录下面包含update字符串的行

grep -v test *test*            #反向查找,不包含test的文件的行

或查询:grep -E 'abc|def' filename

并查询: grep 'cdf' filename | grep 'abc' |

grep -C 10 'key' 文件名    关键字所在行的前后10行

grep -C 10 'key' 文件名  |  tail -n 20 关键字所在行的前后10行的结果的后20行

grep -n 't[ae]st' regular_express.txt 正则查询

 统计某个字符串出现的次数

grep -o targetstr filename | wc -l 统计单个字符串在文件中出现的次数(加-o,一条数据里面出现了多次目标字符串,都会统计,不加-o就只会统计一次)

打开多个文件统计字符串出现的行数(所有前缀为log_的文件都会打开)

cat log_* | grep "object has no attribute" | wc -l

tail log | grep “hello” | wc -l 统计log文件最后一页包含hello字符串的行数

cat:查看文件内容

cat  由第一行开始显示文件内容
tac  从最后一行开始显示,可以看出 tac 是 cat 的倒著写!
nl   显示的时候,顺道输出行号!
more 一页一页的显示文件内容
less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
head 只看头几行
tail 只看尾巴几行,tail 默认在标准输出上显示给定文件的最后10行内容,可以使用tail -n N 指定在标准输出上显示文件的最后N行内容。(显示最后一页)

 

ls显示当前工作目录下的文件和目录

-a显示所有文件,包括隐藏文件

-d仅显示目录

-l长字符串显示包括文件属性权限

cd切换目录

cd /root/filename 按绝对路径切换

cd ./filename 按相对路径切换

cd ~回到根目录

cd ..回到上一级目录

cd ../..返回上两个目录

cp用于复制文件

-a 将文件的所有特性一起复制

cp -a file1 file2 #连同文件的所有特性把文件file1复制成文件file2
cp file1 file2 file3 dir #把文件file1、file2、file3复制到目录dir中

mv命令

-f :force强制的意思,如果目标文件已经存在,不会询问而直接覆盖
-i :若目标文件已经存在,就会询问是否覆盖
-u :若目标文件已经存在,且比目标文件新,才会更新

 

mkdir 创建新目录

rmdir 删除目录

rm 删除文件或者目录

-f 强制删除,不会询问

-i:互动模式

-r递归删除

vim编辑

vim test.txt

i进入编辑模式

:wq退出

 

Chmod修改权限

chmod u+x file 给 file 的属主增加执行权限
chmod 751 file 给 file 的属主分配读、写、执行的
chmod u=rwx,g=rx,o=x file 上例的另一种形式
chmod =r file 为所有用户分配读权限
chmod 444 file 同上例 chmod 777 file 所有用户可读可写可执行

 

硬链接和软连接的区别:

硬链接:指向同一个索引节点,进而指向同一个物理文件。只要有一个硬链接存在,物理文件就不会被清除。硬链接和原文件是“平等”的,只删除一个不能使文件真正被删除。

软链接:指向一个新的索引节点,该节点指向的空间存的是文件的路径,根据路径找到物理文件。如果软链接创建时指定的那个目录被“删除”,则无法访问物理文件。软链接是附属于原文件的,删除、更改原文件路径后软链接将失效

如图,file是原文件,硬链接hard link和它指向了同一个索引节点,进而指向同一数据块。而软链接soft link指向了新的索引节点,数据块存的是file的路径,访问时是先获得路径(file),再访问真正的数据块的。

创建硬文件和软文件的命令 
ln myfile hard
In -s myfile soft

 Linux登录mysql

mysql -uroot -p
enter 密码

Linux导出数据库文件

mysqldump -h ip -u用户名 -p密码 数据库名字 > 数据库文件

 Linux 查看ip地址

ifconfig
ip address

 查看某个可执行文件位置

which kibana

SCP文件传输服务

1、从服务器上下载文件
scp username@servername:/path/filename /home/work/local_dir(本地目录)
scp root@192.168.0.1:/home/work/test.txt

2、上传本地文件到服务器 scp /path/filename username@servername:/path scp /home/work/test.txt root@192.168.0.1:/home/work

3、从服务器下载整个目录 scp -r username@servername:/path/remote_dir/(远程目录) /path/local_dir(本地目录) scp -r root@192.168.0.1: /path/ /path/ 4、上传目录到服务器 scp -r local_dir username@servername:remote_dir scp -r test root@192.168.0.1:/home/work

 

后台运行命令

nohup python3 mm1.py > out.log 2>&1 &

 mongo迁移命令

mongodump -h xxx:3717 --authenticationDatabase admin -u root -d nft -o /home/work/xx

mongorestore
-h xxx:27047 --authenticationDatabase admin -u root -d nft /home/work/xx

 mongo使用sharding模式

db.runCommand({ enablesharding: 'test'})

前提创建这个key的索引
db.runCommand({ shardcollection: 'test.user', key: {name: 1}})
或者
sh.shardCollection('nft.nft_list_events',{"collection_id":1})

查看是否使用了分片
db.nft_list_events.stats().sharded

 

 

posted @ 2019-05-06 16:52  LeeJuly  阅读(157)  评论(0)    收藏  举报