Linux常用命令备忘

拷贝

scp

1
2
3
4
5
6
7
8
9
10
11
scp [-Cpqrv] [-P port] [[user@]host1:]file1 [...] [[user@]host2:]file2
# 简易写法
scp [可选参数] file_source file_target

#参数解释
-C: 允许压缩。
-p:保留原文件的修改时间,访问时间和访问权限。
-q: 不显示传输进度条。
-r: 递归复制整个目录。
-v:详细方式显示输出。用于调试
-P port:注意是大写的P, port是指定数据传输用到的端口号。

rsync

与其他文件传输工具(如 FTP 或SCP)不同,rsync 的最大特点是会检查发送方和接收方已有的文件,仅传输有变动的部分(默认规则是文件大小或修改时间有变动)。

1
2
3
4
5
6
7
rsync -avz -e "ssh -p <port>" source/ user@remote_host:/destination

#参数解释
-a: 除了可以递归同步以外,还可以同步元信息(比如修改时间、权限等)。
-v: 参数表示输出细节。
-z: 参数指定同步时压缩数据。
-e: 参数指定使用 SSH 协议传输数据。在端口号不是22时非常重要。

Note: rsync需要注意source后面加了**“ / ”** 的话就是只拷贝source下的所有文件目录,而不拷贝source这个目录

查找文件

Find

1
2
3
4
5
6
7
8
9
10
11
12
# 文件名
find ./ -iname "*.c" # 所有后缀为.c的文件

-i: 忽略大小写

#文件大小
find /home -size +1M # home目录下大于1M的s

#文件内容
find /home -type f | xargs grep "hello"
OR
grep -r "hello" /home/*.tx

后台运行

nohup

1
2
3
4
5
6
7
8
nohup Command <Arg> &
# Arg
/dev/null 空设备文件
0 标准输入
1 标准输出
2 标准错误
> file <==> 1> file
2 > &1 表示将标准错误重定向到标准输出

例子

1
nohup python tools/train.py >/dev/null 2>&1 &

查看ip端口

ip addr , netstat

1
2
ip addr #查看ip
sudo netstat -tunp | grep 端口号

新用户

1
2
3
4
5
# 注意useradd以及adduser区别,useradd不创建用户目录,adduser为一个perl脚本,包含了创建用户目录,创建用户组等操作,更全面
adduser <username> #添加
deluser <username> #删除
usermod -g sudo <username> #sudo权限 -> g
usermod -g root <username> #root权限 -> 超级管理员