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
本文来自博客园,作者:LeeJuly,转载请注明原文链接:https://www.cnblogs.com/peterleee/p/10820617.html

浙公网安备 33010602011771号