Linux常用命令备忘

持续更新。。。

一、建立软链接

ln -s 源文件(夹)的绝对路径 目标链接位置绝对路径
# 链接文件夹
ln -s /path/to/source_dir/ /path/to/target_name
# 链接文件
ln -s /path/to/source_file /path/to/target_name

注意:

1. 两个位置均需要绝对路径

2. 目标路径不存在。

3. 源文件夹有/,源文件没有/,目标链接位置均没有/。

二、移动空文件夹、文件夹、文件

mv 源路径 目的路径

注意:

1. 都不用加 -r。

2. 不需要保证目的路径事先存在。

三、复制空文件夹、文件夹、文件

# 复制文件夹、空文件夹
cp -r 源目录 目的目录
# 复制文件
cp 源文件 目的文件

注意:

1. 复制文件夹时要加 -r,不管是不是空的。

2. 不需要保证目的路径事先存在。

 四、zip的压缩、解压缩:

# 压缩zip
zip -rq 压缩生成文件名(绝对路径).zip 待压缩文件或文件名(绝对路径)

# 解压缩zip到当前路径
unzip 待压缩文件或文件名(绝对路径).zip

五、终端显示/隐藏光标:

# 显示光标
echo -e "\033[?25h"

# 隐藏光标
echo -e "\033[?25l"

六、修改linux服务器当前登录用户密码(避开Bad: new password is too simple 等提示)

sudo passwd  用户名

注意:一定不能少【用户名】,否则变成修改root密码,而不是当前登录用户的密码。

七、配置服务器ssh一直连接。防止报错packet_write_wait: Connection to xxx.xx.xx.xxx port 22: Broken pipe:

# 服务器执行:
sudo vim /etc/ssh/sshd_config

# 在最后添加一行:
ClientAliveInterval 60 

八、查看包含xxx的进程

ps -ef | grep pycharm

九、kill进程

kill -s 9 进程id1 进程id2

十、修改文件夹用户权限

sudo chown user:user  file_root/ -R

十一、docker commit

通过commit来持久化镜像环境:

1. 退出正在运行的镜像(exit)。

2. 执行commit命令

sudo docker commit -m="update packages" <CONTAINER ID> <要创建的目标镜像名(可同原镜像名)>

 3. 停止原镜像及容器:

./stop_docker.sh

4. 重新进入:

./start_docker.sh

十二、docker保存镜像到本地,并加载本地镜像文件

1、查看已有镜像

docker images

2、将镜像打包成本地文件

        指令:docker save 镜像id > 文件名.tar

docker save IMAGE ID >./filename.tar# filename.tar为打包的文件

3、从本地加载镜像文件

        指令:docker load < 文件名.tar

docker load < filename.tar		  # filename.tar 为文件名称

4、给加载的镜像打标签

        指令:docker tag 镜像id 镜像名:标签

docker tag IMAGE ID REPOSITORY:TAG 

十三、新服务器配置:

1.恢复出厂设置——新建管理员用户后,命令行只有

$

解决方案:

(1)查看/etc/passwd文件后发现,新建的用户未指定shell

命令行输入:

vi /etc/passwd

(2)将其指定为/bin/bash

sudo usermod -s /bin/bash 当前用户名

(3)重启

2. 设置免密登录(公钥方式)

步骤为:本机生成ssh公钥 --> 将本机公钥copy到服务器的 ~/.ssh/authorized_keys 文件中(没有此文件则新建即可)

(1)本机执行ssh-keygen,后面选项直接enter,然后在本机的~/.ssh目录下会生成id_rsa和id_rsa.pub两个文件。id_rsa.pub文件即为本机的公钥。

(2)将id_rsa.pub文件的内容copy到服务器的~/.ssh/authorized_keys文件中,若authorized_keys文件不存在则新建即可。

3. 设置服务器保持连接

(1)修改/etc/ssh/sshd_config配置文件中以下两个参数:
        1)ClientAliveInterval:设置为想要的时间,单位为秒,比如设置为60秒,则服务器每1分钟向客户端发送保持连接的请求。
        2)、ClientAliveCountMax:此参数指服务器根据ClientAliveInterval时间间隔发送保持连接的请求时,如果发现客户端没有响应,则判断为一次超时,这个参数设置允许超时的次数。默认为3,客户端一般不会没响应,设置为默认值3即可。
假如ClientAliveInterval为60,ClientAliveCountMax为3,则实际的超时时间为60*3=3分钟。

(2)执行service sshd reload,使修改生效。

十四、sudo: unable to resolve host 10-0-129-44

(sudo) vim   /etc/hosts:

127.0.0.1       localhost
127.0.0.1       10-0-129-44  # 要保证这个名字与 /etc/hostname中的主机名一致才有效

这样设完后, 使用sudo 就不会再有那个提示信息了。

十五、解决Docker运行命令时提示“Got permission denied while trying to connect to the Docker daemon socket”

docker守护进程启动的时候,会默认赋予名字为docker的用户组读写Unix socket的权限,因此只要创建docker用户组,并将当前用户加入到docker用户组中,那么当前用户就有权限访问Unix socket了,进而也就可以执行docker相关命令。

sudo groupadd docker     #添加docker用户组
sudo gpasswd -a $USER docker     #将登陆用户加入到docker用户组中
newgrp docker     #更新用户组
docker ps    #测试docker命令是否可以使用sudo正常使用

十六、实时显示nvidia-smi,并显示差异

# 每隔1s显示一次
watch -n 1 -d nvidia-smi

十七、查询/统计指定目录下的文件数量(包含子目录)

ls -lR ./data/ | grep "^-" | wc -l

# 统计dir_name下制定后缀的文件数量
find dir_name -name *.jpg | wc -l

十八、开启/关闭Nividia的GIM模式

# 关闭所有卡
nvidia-smi -mig 0
# 关闭单个卡
nvidia-smi -i 0 -mig 0

# 开启所有卡
nvidia-smi -mig 1
# 开启单个卡
nvidia-smi -i 0 -mig 1

十九、安装cuda并配置

vim ~/.bashrc
export PATH="/usr/local/cuda-11.3/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda-11.3/lib64:$LD_LIBRARY_PATH"
source ~/.bashrc

二十、ctrl+z及其恢复

        ctrl+z的是将任务中断, 但是此任务并没有结束,他仍然在进程中,他只是维持挂起的状态,用户可以使用fg/bg操作继续前台或后台的任务,fg命令重新启动前台被中断的任务,bg命令把被中断的任务放在后台执行。

二十一、ctrl+z及其恢复

批量改变文件夹下图片的分辨率。

# 640x320分别为图片宽和高
find -name "*.jpg" -exec convert -resize 640x320 {} {} \;

二十二、解压某个目录及其子目录下的所有zip文件、tar包

1. 解压zip

# 解压zip文件

# 到指定目录
find /path/to/directory -type f -name "*.zip" -exec unzip {} -d /path/to/extract \;

# 到各自所在的原目录
find /path/to/directory -type f -name "*.zip" -exec unzip {} \;

2. 解压tar包

# tar包
# 解压到指定目录
find /path/to/directory -type f -name "*.tar*" -exec tar xf {} -C /path/to/extract \;

# 解压到它们各自所在的原目录
find /path/to/directory -type f -name "*.tar*" -execdir tar xf {} \;

二十三、重定向符 '>'

在 Linux 中,可以使用重定向操作符 '>' 将 Python 代码的输出和终端的输出定向到一个文件中。

1. 将 Python 代码的输出定向到文件:

python your_code.py > log.txt

上述命令将运行名为 your_code.py 的 Python 代码,并将其输出写入到名为 log.txt 的文件中。如果文件不存在,它将被创建;如果文件已存在,它将被覆盖。

2. 将终端输出和 Python 代码的输出都定向到文件:

python your_code.py > log.txt 2>&1

上述命令将运行 Python 代码并将其输出写入到 log.txt 文件中。2>&1 表示将标准错误输出(stderr)与标准输出(stdout)合并,然后将它们一起定向到文件中。

        请注意,> 操作符会覆盖文件中的内容。如果你希望将输出追加到文件末尾而不覆盖原有内容,可以使用 >> 操作符,例如:

python your_code.py >> log.txt 2>&1

二十四、解压 7z 文件

7z x filename.7z

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不喜欢穿格子衬衫的程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值