linux 命令

linux 命令

1. 切换root用户

sudo -i

2. tree命令展示目录结构

基本命令:

tree <path> -<options>

<path>可以省略,省略时表示当前目录。

常用的<options>有:

-d 只列目录
-a 列所有文件(包括隐藏文件)
-h 展示文件或文件夹大小
-C 打开颜色渲染
-L level 目录深度等级,level是一个数字(比如命令:tree -L 2)

3. 查看进程

显示所有进程

ps -ax

显示当前用户的所有进程

ps -u <user_name>

通过端口查找进程

netstat -nlp | grep <port>

查看进程状态

ps afx | grep <pid>

查看进程启动时间

ps -p <pid> -o lstart

4. kill进程

kill <PID>

5. 获得本机内网ip

ifconfig | grep 'inet '

返回结果中第二行就是。

如果要查询本机外网ip,

curl ifconfig.me

6. 压缩解压

#压缩
tar -czvf ***.tar.gz <your_folder>
tar -cjvf ***.tar.bz2 <your_folder>
#解压缩
tar -xzvf ***.tar.gz <des_folder>
tar -xjvf ***.tar.bz2 <des_folder>

7. 远程同步rsync

在执行命令时确保远程机器和本地机器都已安装rsync

rsync -avzP --delete --exclude '<dir_name>' -e 'ssh -p <remote_ssh_port>' <local_dir> <remote_user>@<remote_ip>:<remote_dir>

我们看一个例子:

rsync -avzP --delete --exclude '.*' -e 'ssh -p 27400' /Users/brown/Documents/Note root@172.93.39.11:~
  • -P 选项是--progress--partial选项的组合,表示展示进度若传输中断继续
  • -a 选项表示archive,表示递归同步、保留链接文件、同步设备文件、同步修改时间、同步group owner信息、同步权限等;
  • -z 选项表示传输过程使用压缩,来降低网络负载;
  • --delete 表示删除的文件也被同步删除;
  • --exclude '.*' 表示不同步以.开头的文件或文件夹;如果有多个文件或文件夹需要忽略,请声明多次--exclude选项。
  • -e 'ssh -p 27400' 声明了ssh端口为27400,没有此选项时使用默认的22端口。

8. top命令

top命令能够实时显示系统中各个进程的资源占用状况

首先输入

top

然后进入top界面,上面一部分是total信息,下面一部分就是进程信息。重要字段意义:

字段含义
RES进程使用的物理内存(不包括SWAP内存)(单位是KB)
VIRT进程使用的所有内存(RES+SWAP)
S进程状态,R=运行;S=睡眠;D=不可中断的睡眠状态;T=跟踪/停止;Z=僵尸进程

然后你可以:

  • 输入u,然后输入<user>进行用户进程筛选;
  • 输入M,表示按照内存使用状况对进程排序;
  • 输入P,表示按照CPU使用状况对进程排序;
  • 输入c,显示完整的命令。

9. nohup

启动后台进程

nohup <your_command> &

比如

nohup python fuck.py &

这样你的进程就不会因为ssh掉线或者shell关闭而挂掉了。

10. crontab

输入下面命令,进入编辑模式:

crontab -e

文件格式:

<分> <时> <日> <月> <星期> <命令>
星期
0~590~231~311~120~7(0、7表示星期天)

简单例子:
0 0 * * * python fuck.py 1>> fuck.log 2>> fuck.err

表示每天晚上00:00执行python fuck.py命令,并将标准输出定向到fuck.log;将错误输出定向到fuck.err

注意

  • 当你的脚本单独执行时ok,但是放到crontab下执行异常时,很可能是环境变量的问题:即你执行脚本的用户和crontab的用户不是同一个,用户变量不同。此时可以在crontab文件下首先执行命令source /etc/profile

更多例子:crontab使用例子

11. type

显示你的alias

type <alias_key>

12. date

显示当前日期

date +"%Y-%m-%d %H:%M:%S"

%H:%M:%S格式等价于%T,即

date +"%Y-%m-%d %T"

13. cut

cut命令对字符进行切分、提取。

echo brown_wong | cut -d _ -f 2

此命令会输出wong

  • -d选项声明分隔符
  • -f选项声明第几个字段

你也可以使用awk来操作。

14. sed

sed命令是stream editor工具的缩写,主要进行一些文本操作。

查看文件的5~10行:

sed -n '5,10p' myfile.txt

查看整个文件,除了20~35行:

sed '20,35d' myfile.txt

查看文件的57行,1013行:

sed -n -e '5,7p' -e '10,13p' myfile.txt

替换原文本中子串abc为def(直接复写原文件):

sed -i "s/abc/def/g" myfile.txt

如果是mac,必须前面加个空字符串,即sed -i "" "s/abc/def/g" myfile.txt

它也能做一些文本正则搜索、替换等操作,因为我们在vim里面同样可以做到,故不赘述。

15. 查看操作系统类型

cat /etc/issue

16. 创建软链接

ln -s <src> <link_name>

17. telnet查看ip端口通不通

telnet <ip> <port>

18. xargs

xargs将标准输入作为命令参数。linux的一些工具,比如grep是可以接受标准输入作为命令参数,但是很多工具,比如echormmkdir都不能。此时,xargs就派上用场了。

下面命令

echo "haha" | mkdir

想创建一个目录haha,但是会执行失败,因为mkdir不能直接把管道传过来的标准输入作为命令参数。但下面命令就会成功:

echo "haha" | xargs mkdir

-I指定替换字符串

echo "9100" | xargs -I {port} python server.py 0.0.0.0 {port}

19. 查看文件大小

du -sh <file_or_dir_name>
  • -s--summarize,如果是一个目录,只显示total大小。
  • -h--human-readable,以人可读方式打印。

20. 查看磁盘剩余空间

df -h <dir_name>

21. 查找文件夹或目录

find <dir_name>  -type <d|f>  -name '<name>'

Ref

https://www.cyberciti.biz/faq/linux-show-directory-structure-command-line/
https://www.tecmint.com/linux-sed-command-tips-tricks/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值