Linux常用命令备忘
远程主机使用本地代理
Step 1 : 建立ssh转发隧道
1
| ssh -N -R 7897:localhost:7897 <user>@<server> -p port
|
Step 2:远端设置环境变量
1 2 3
| alias proxy="export http_proxy=http://127.0.0.1:7897 https_proxy=http://127.0.0.1:7897" alias unproxy="unset http_proxy https_proxy"
|
GPU清理No such process
1
| fuser -v /dev/nvidia* | awk '{for(i=1;i<=NF;i++)print "kill -9 " $i;}' | bash
|
若要清理他人的,则需要使用sudo命令,并同时想办法筛掉非no such process,建议写一个python脚本去执行
拷贝
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 8 9
| rsync -avz --append --pregress -e "ssh -p <port>" source/ user@remote_host:/destination
-a: 除了可以递归同步以外,还可以同步元信息(比如修改时间、权限等)。 -v: 参数表示输出细节。 -z: 参数指定同步时压缩数据。 -e: 参数指定使用 SSH 协议传输数据。在端口号不是22时非常重要。 --append: 增量追加同步(即只传输文件新增的部分,而不是整个文件) --progress: 显示传输进度
|
Note: rsync需要注意source后面加了**“ / ”** 的话就是只拷贝source下的所有文件目录,而不拷贝source这个目录
查找文件
Find
1 2 3 4 5 6 7 8 9 10 11 12
| find ./ -iname "*.c"
-i: 忽略大小写
find /home -size +1M
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> &
/dev/null 空设备文件 0 标准输入 1 标准输出 2 标准错误 > file <==> 1> file 2 > &1 表示将标准错误重定向到标准输出
|
例子
1
| nohup python tools/train.py >/dev/null 2>&1 &
|
查看ip端口
ip addr , netstat,lsof
1 2 3
| ip addr sudo netstat -tunp | grep 端口号 lsof -i :port
|
新用户
1 2 3 4 5
| adduser <username> deluser <username> usermod -g sudo <username> usermod -g root <username>
|
1 2 3 4 5 6 7 8 9 10
| –system 添加系统用户或组 –disabled-login 禁止登录到用户账户 –disabled-password 禁止使用密码登录 –gid 将组ID号设置为。如果指定了用户,则还将用户添加到组 –group 运行addgroup命令并添加用户组。如果指定了–system,则添加系统用户和组 –home 将用户的主目录设置为 –shell 使用作为用户的登录shell –ingroup 将用户添加到,而不是配置文件中的默认组 –no-create-home 避免为用户创建主目录
|