rsyn
文章目录
- [-1. 查看系统版本](#-1. 查看系统版本)
- 1.Linux的文件权限与目录配置
-
- [1.1 使用者与群组](#1.1 使用者与群组)
- [1.2 Linux文件权限概念](#1.2 Linux文件权限概念)
- [1.3 Linux目录配置](#1.3 Linux目录配置)
- 2.Linux文件与目录管理
-
- [2.1 目录与路径](#2.1 目录与路径)
- [2.2 文件与目录管理](#2.2 文件与目录管理)
- [2.3 文件内容查询](#2.3 文件内容查询)
- [2.4 文件与目录的默认权限与隐藏权限](#2.4 文件与目录的默认权限与隐藏权限)
- [2.5 指令与文件的搜寻](#2.5 指令与文件的搜寻)
- 3.Linux磁盘与文件系统管理
-
- [3.1 Linux文件系统](#3.1 Linux文件系统)
- [3.2 文件系统的简单操作](#3.2 文件系统的简单操作)
-
- [3.2.1 磁盘与目录的容量 df,du](#3.2.1 磁盘与目录的容量 df,du)
- [3.2.2 实体链接与符号链接 ln](#3.2.2 实体链接与符号链接 ln)
- [3.3 磁盘的分区、格式化、检验与挂载](#3.3 磁盘的分区、格式化、检验与挂载)
- [3.4 设置开机挂载](#3.4 设置开机挂载)
- [3.5 内存交换空间(swap)之创建](#3.5 内存交换空间(swap)之创建)
- [3.6 文件系统的特殊观察与操作](#3.6 文件系统的特殊观察与操作)
- 4.文件与文件系统的压缩、打包与备份
-
- [4.1 压缩文件的用途与技术](#4.1 压缩文件的用途与技术)
- [4.2 Linux系统常见的压缩指令](#4.2 Linux系统常见的压缩指令)
- [4.3 打包指令:tar](#4.3 打包指令:tar)
- [4.4 XFS 文件系统的备份与还原](#4.4 XFS 文件系统的备份与还原)
- [4.5 光盘写入工具](#4.5 光盘写入工具)
- [4.6 其他常见的压缩与备份工具](#4.6 其他常见的压缩与备份工具)
- [5. vim程序编辑器](#5. vim程序编辑器)
- 6.认识与学习Bash
- 7.正则表达式与文件格式化处理
- [8.学习Shell scripts](#8.学习Shell scripts)
- 9.Linux使用者管理
- 10.Linux账号管理与ACL权限设置
-
- [10.1 linux 的账号与群组](#10.1 linux 的账号与群组)
-
- [10.1.1 使用者识别码](#10.1.1 使用者识别码)
- [10.1.2 使用者账号](#10.1.2 使用者账号)
- [10.1.3 关于群组:有效与初始群组、groups、newgrp](#10.1.3 关于群组:有效与初始群组、groups、newgrp)
- [10.2 账号管理](#10.2 账号管理)
- 11.磁盘配额(Quota)与进阶文件系统管理
- 12.例行工作调度(crontab)
- 13.程序管理与SELinux初探
-
- [13.1 什么是程序(process)](#13.1 什么是程序(process))
- [13.2 工作管理(job control)](#13.2 工作管理(job control))
- [13.3 程序管理](#13.3 程序管理)
- [13.4 特殊文件与程序](#13.4 特殊文件与程序)
- [13.5 SELinux 初探](#13.5 SELinux 初探)
- 14.认识系统服务(daemons)
- 15.认识与分析登录文件
- 16.开机流程、模块管理与Loader
- 17.基础系统设置与备份策略
-
- [17.1 系统基本设置](#17.1 系统基本设置)
- [17.2 服务器硬件数据的收集](#17.2 服务器硬件数据的收集)
- [17.3 备份要点](#17.3 备份要点)
- [17.4 备份的种类、频率与工具的选择](#17.4 备份的种类、频率与工具的选择)
- [17.5 备份策略](#17.5 备份策略)
- 18.软件安装RPM、SRPM与YUM
- [19.X Window设置介绍](#19.X Window设置介绍)
- 20.Linux核心编译与管理
-
- 用户权限
- 文件管理
- 程序运行
- 软连接
- 命令行关机重启
- 文件夹的创建、复制、剪切、重命名、清空和删除
- Linux下自动挂载群晖Nas(通过CIFS)
- 删除
- 执行文件
- vim
- 安装
- ta.xz
- 卸载
- 查看安装软件
- 查看文件夹下文件的数量
- [ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.](#ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.)
- 杀死进程
- ssh连接linux服务器中断后,如何让命令继续在服务器运行
- 硬件管理
-
- io查看
- swap管理
- 创建
-
- 1.创建swap文件
- 2.创建swap文件系统
- 3.开启swap
- [3.1 修改Priority](#3.1 修改Priority)
- 4.关闭和删除原来的swapfile
- 6.设置开机启动
- nvidia显卡操作
- cpu设置
-
- [[ubuntu 18.04系统下CPU实时频率查看工具 cpupower](https://www.cnblogs.com/devilmaycry812839668/p/13982891.html)](#ubuntu 18.04系统下CPU实时频率查看工具 cpupower)
- [cpu 查看](#cpu 查看)
- 内核信息查看
- 内核锁定
- linux安全登录
- [linux 代理连接](#linux 代理连接)
- 报错
- [[OSError: libcudnn.so.7.0: cannot open shared object file: No such file or directory错误](https://www.cnblogs.com/liuwenhua/p/13590364.html)](#OSError: libcudnn.so.7.0: cannot open shared object file: No such file or directory错误)
- ubuntu查看实时网速
- [ubuntu 关闭和打开图形界面](#ubuntu 关闭和打开图形界面)
- [使用xvfb虚拟帧缓存区环境执行X window程序](#使用xvfb虚拟帧缓存区环境执行X window程序)
- reference
-1. 查看系统版本
使用命令:cat /proc/version 查看
使用命令:uname -a 查看
lsb_release -a
1.Linux的文件权限与目录配置
1.1 使用者与群组
1.2 Linux文件权限概念
1.3 Linux目录配置
2.Linux文件与目录管理
2.1 目录与路径
2.2 文件与目录管理
2.3 文件内容查询
2.4 文件与目录的默认权限与隐藏权限
2.5 指令与文件的搜寻
3.Linux磁盘与文件系统管理
3.1 Linux文件系统
3.2 文件系统的简单操作
3.2.1 磁盘与目录的容量 df,du
df:列出文件系统的整体磁盘使用量
du:评估文件系统的磁盘使用量(常用在推估目录所占容量)
shell
df [-ahikHTm] [目录或文件名]
-a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;
-k :以 KBytes 的容量显示各文件系统;
-m :以 MBytes 的容量显示各文件系统;
-h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
-H :以 M=1000K 取代 M=1024K 的进位方式;
-T :连同该 partition 的 filesystem 名称 (例如 xfs) 也列出;
-i :不用磁盘容量,而以 inode 的数量来显示
3.2.2 实体链接与符号链接 ln
3.3 磁盘的分区、格式化、检验与挂载
3.4 设置开机挂载
3.5 内存交换空间(swap)之创建
3.6 文件系统的特殊观察与操作
4.文件与文件系统的压缩、打包与备份
4.1 压缩文件的用途与技术
4.2 Linux系统常见的压缩指令
4.3 打包指令:tar
4.4 XFS 文件系统的备份与还原
4.5 光盘写入工具
4.6 其他常见的压缩与备份工具
5. vim程序编辑器
6.认识与学习Bash
7.正则表达式与文件格式化处理
8.学习Shell scripts
9.Linux使用者管理
10.Linux账号管理与ACL权限设置
10.1 linux 的账号与群组
10.1.1 使用者识别码
10.1.2 使用者账号
那么你输入帐号密码后,系统帮你处理了什么呢?
- 先找寻
/etc/passwd
里面是否有你输入的帐号?如果没有则跳出,如果有的话则将该帐号对应的UID
与GID
(在 /etc/group 中) 读出来,另外,该帐号的主文件夹与 shell 设置也一并读出 - 再来则是核对密码表啦!这时 Linux 会进入
/etc/shadow
里面找出对应的帐号与UID
,然后核对一下你刚刚输入的密码与里头的密码是否相符? - 如果一切都 OK 的话,就进入 Shell 控管的阶段啰!
10.1.3 关于群组:有效与初始群组、groups、newgrp
10.2 账号管理
10.2.1 新增与移除使用者:useradd,相关配置文件,passwd,usermod,userdel
10.2.2 使用者功能
一般身份使用者常用的账号数据变更与查询指令(id, finger, chfn, chsh)
id
finger
chfn
chsh
这是change shell的简写。
shell
chsh -l #列出系统可用的shell
shell
chsh -s #设置修改自己的shell
chsh -s []
1.临时切换到Bash
在当前shell中运行以下命令临时切换到Bash
/bin/bash
2.改变默认 Shell : 如果你想永久改变你的默认 shell,可以使用 chsh
(change shell)命令。运行以下命令并按照提示操作:
chsh -s /bin/bash
完成后,你可能需要注销并重新登录以使更改生效。
3.检查用户账户设置
有时候,用户账户的默认 shell 被设置为了 sh
或其他 shell。你可以检查 /etc/passwd
文件来确认你的账户使用的是哪个 shell。使用以下命令查找你的用户条目:
shell
grep "^$(whoami):" /etc/passwd
输出的最后部分会显示你的默认 shell。如果它不是 /bin/bash
,你可以使用 chsh
命令来更改它。
不论是 chfn
与 chsh
,都是能够让一般使用者修改 /etc/passwd
这个系统文件的!
10.2.3 新增与移除群组
10.2.4 账号管理实例
10.2.5 使用外部身份认证系统
11.磁盘配额(Quota)与进阶文件系统管理
12.例行工作调度(crontab)
13.程序管理与SELinux初探
13.1 什么是程序(process)
13.2 工作管理(job control)
13.2.1 什么是工作管理
13.2.2 job control的管理
13.2.3 离线管理问题
在工作管理当中提到的"背景"指的是在终端机模式下可以避免 [crtl]-c 中断的一个情境, 你可以说那个是 bash 的背景,并不是放到系统的背景去喔!所以,工作管理的背景依旧与终端机有关。如果你是以远端连线方式连接到你的 Linux 主机,并且将工作以 & 的方式放到背景去, 请问,在工作尚未结束的情况下你离线了,该工作会中断。
可以使用两个指令 nohup 和 screen 实现离线管理。
nohup
nohup [指令与参数] &<==在终端机背景中工作
- nohup 后台运行程序
nohup命令输入指定文件中
bash
nohup ./start.sh >output 2>&1 & //指定输出到output文件
-
jobs
jobs命令可以查看当前有多少在后台运行。
textjobs -l
此命令可显示所有任务的PID,jobs的状态可以是running, stopped, Terminated。但是如果任务被终止了(kill),shell 从当前的shell环境已知的列表中删除任务的进程标识。
将目前的工作丢到背景中"暂停" [ctrl] + z
让工作在背景下的状态变为运行中: bg
screen
安装
apt install screen
列出所有窗口
screen -ls
创建窗口
screen -S name
退出当前窗口
shell
ctrl + a d
恢复窗口
screen -r [pid]
远程连接进入screen窗口后突然掉线,重连遇到进不去窗口时可以通过以下命令踢掉上一个进入窗口的进程,然后进入窗口
screen -D -r name
13.3 程序管理
13.4 特殊文件与程序
13.5 SELinux 初探
14.认识系统服务(daemons)
15.认识与分析登录文件
16.开机流程、模块管理与Loader
17.基础系统设置与备份策略
17.1 系统基本设置
17.2 服务器硬件数据的收集
17.3 备份要点
17.4 备份的种类、频率与工具的选择
17.4.1 完整备份之累积备份
17.4.2 完整备份之差异备份
rsync
rsync 用法教程 - 阮一峰的网络日志 (ruanyifeng.com)
Linux篇之利用rsync指令实现文件信息同步并做定时处理_rsync 定时运行_听说唐僧不吃肉的博客-CSDN博客
Linux下rsync(本地、远程)文件同步_罗德斯的博客-CSDN博客
它可以在本地计算机与远程计算机之间,或者两个本地目录之间同步文件(但不支持两台远程计算机之间的同步)。它也可以当作文件复制工具,替代cp
和mv
命令。与其他文件传输工具(如 FTP 或 scp)不同,rsync 的最大特点是会检查发送方和接收方已有的文件,仅传输有变动的部分(默认规则是文件大小或修改时间有变动)。
安装
bash
# Debian
$ sudo apt-get install rsync
# Red Hat
$ sudo yum install rsync
# Arch Linux
$ sudo pacman -S rsync
注意,传输的双方都必须安装 rsync。
基本用法
-r
参数
本机使用 rsync 命令时,可以作为cp
和mv
命令的替代方法,将源目录同步到目标目录。
bash
$ rsync -r source destination
上面命令中,-r
表示递归,即包含子目录。注意,-r
是必须的,否则 rsync 运行不会成功。source
目录表示源目录,destination
表示目标目录。
如果有多个文件或目录需要同步,可以写成下面这样。
bash
$ rsync -r source1 source2 destination
上面命令中,source1
、source2
都会被同步到destination
目录。
-a
参数
-a
参数可以替代-r
,除了可以递归同步以外,还可以同步元信息(比如修改时间、权限等)。由于 rsync 默认使用文件大小和修改时间决定文件是否需要更新,所以-a
比-r
更有用。下面的用法才是常见的写法。
bash
$ rsync -a source destination
目标目录destination
如果不存在,rsync 会自动创建。执行上面的命令后,源目录source
被完整地复制到了目标目录destination
下面,即形成了destination/source
的目录结构。
如果只想同步源目录source
里面的内容到目标目录destination
,则需要在源目录后面加上斜杠。
bash
$ rsync -a source/ destination
上面命令执行后,source
目录里面的内容,就都被复制到了destination
目录里面,并不会在destination
下面创建一个source
子目录。
-n
参数
如果不确定 rsync 执行后会产生什么结果,可以先用-n
或--dry-run
参数模拟执行的结果。
$ rsync -anv source/ destination
上面命令中,-n
参数模拟命令执行的结果,并不真的执行命令。-v
参数则是将结果输出到终端,这样就可以看到哪些内容会被同步。
--delete
参数
默认情况下,rsync 只确保源目录的所有内容(明确排除的文件除外)都复制到目标目录。它不会使两个目录保持相同,并且不会删除文件。如果要使得目标目录成为源目录的镜像副本,则必须使用--delete
参数,这将删除只存在于目标目录、不存在于源目录的文件。
bash
$ rsync -av --delete source/ destination
上面命令中,--delete
参数会使得destination
成为source
的一个镜像。
rsync -avz --progress --ignore-existing -e 'ssh -p 35878 -o "ProxyCommand=nc -x localhost:1080 %h %p"' /media/jackma/OS/dexycb/ usr@10.115.115.162://home/data/mjj/docker/
```shell
rsync -avz --progress -e 'ssh -p 22339' --timeout 60 root@10.80.29.7:/remote-home/2210974/study/gSDF/outputs/pose_kpt/2023_0828_17-13_dexycbs0_132k_resnet18_rot0_6d_d1_pld1_h1_o0_norm0_e100_b64_vw1.0_ocrw0.0_how1.0_sow0.0/model_dump/snapshot_99.pth.tar outputs/pose_kpt
17.5 备份策略
18.软件安装RPM、SRPM与YUM
19.X Window设置介绍
20.Linux核心编译与管理
用户权限
方法一、修改passwd文件
1、编辑passwd文件
sudo vim /etc/passwd
2、找到你想提权的用户(比如test),将用户名后面的数字改成0
找到用户test
test:x:1000:1000::/home/test
修改权限
test:x:0:0::/home/test
3、重启电脑,登录test账户。
文件管理
文件目录的查看ls
文件路径当前
- 终端 pwd
- 可视化界面 ctrl + L
文件权限管理
作为新手,如何更改文件夹的拥有者,或者修改文件夹的权限。 ubuntu有两个修改命令可以使用,[change mode] & [change owner]
即chmod和chown,其中可以用递归参数-R来实现更改所有子文件和子目录的权限。
1. 利用chmod修改权限
shell
chmod -R 700 Document/
常用方法如下:
shell
sudo chmod 600 xx # (read and write only by owner)
sudo chmod 644 xx # (read and write by owner, only read by group user)
sudo chmod 700 xx # (read, write and run by owner)
sudo chmod 600 xx # (read and write by every user)
sudo chmod 777 xx # (read, write and run by every user)
2. 利用chown改变所有者
shell
chown -R username:users xx/ # do the same owner change for all files and subdirs in xx, and the owner is the user named username of the group named users.s
压缩
安装
apt-get install zip
shell
zip -r zipname.zip filename
解压缩
安装
apt-get install unzip
python
!tar zxvf flower_photos.tgz #解压数据集
!unrar e /content/1.rar#忽略文件夹
!unrar x /content/1.rar#获得文件夹
!unzip filename.zip -d[指定解压的文件夹]
find -maxdepth 1 -name "*.gz"|xargs -i tar zxvf {} # 1代表在当前文件夹所有,2表示下层文件夹,依次类推
文件移动复制
cp
假设复制源目录 为 dir1 ,目标目录为dir2。怎样才能将dir1下所有文件复制到dir2下了
如果dir2目录不存在,则可以直接使用
cp -r dir1 dir2
即可。
如果dir2目录已存在,则需要使用
cp -r dir1/. dir2
scp
一、从本地服务器复制到远程服务器:
(1) 复制文件:
[root@localhost ~]``# scp local_file remote_username@remote_ip:remote_folder``[root@localhost ~]``# scp local_file remote_username@remote_ip:remote_file` `[root@localhost ~]``# scp local_file remote_ip:remote_folder``[root@localhost ~]``# scp local_file remote_ip:remote_file
第1,2个已指定了用户名,命令执行后需要输入用户密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名。
第3,4个没有指定用户名,命令执行后需要输入用户名和用户密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名。
(2) 复制目录:
[root@localhost ~]``# scp -r local_folder remote_username@remote_ip:remote_folder` `[root@localhost ~]``# scp -r local_folder remote_ip:remote_folder
二、从远程服务器复制到本地服务器:
*(1)* 从远处复制文件到本地目录
[root@localhost ~]``# scp root@192.168.1.68:/opt/soft/nginx-0.5.38.tar.gz /opt/soft/
从192.168.1.68机器上的/opt/soft/的目录中下载nginx-0.5.38.tar.gz 文件到本地/opt/soft/目录中
(2) 从远处复制目录到本地目录
[root@localhost ~]``# scp -r root@192.168.1.68:/opt/soft/mongodb /opt/soft/
从192.168.1.68机器上的/opt/soft/的目录中下载mongodb 目录到本地的/opt/soft/目录来。
文件下载
设置回收站
1.创建回收站路径
shell
cd ~ && mkdir .trash #/root/.trash
2.重新定义rm
命令
shell
vim ~/.bashrc
更改为以下内容
shell
# rm transform
function rm() {
# 定期清理回收站,时间可调整
now=$(date +%s)
for s in $(ls --indicator-style=none $HOME/.trash/) ;do
dir_name=${s//_/-}
dir_time=$(date +%s -d $dir_name)
# if big than one month then delete
if [[ 0 -eq dir_time || $(($now - $dir_time)) -gt 2592000 ]] ;then
echo "Trash " $dir_name " has Gone "
/bin/rm $s -rf
fi
done
# 重写rm命令,将文件mv到回收站下
prefix=$(date +%Y_%m_%d)
hour=$(date +%H)
mkdir -p $HOME/.trash/$prefix/$hour
if [[ -z $1 ]] ;then
echo 'Missing Args'
return
fi
echo "Hi" ${!#} "已被移到"$HOME/.trash/$prefix/$hour"~"
mv ${!#} $HOME/.trash/$prefix/$hour
}
3.生效
shell
source ~/.bashrc
修改密码
shell
sudo passwd user
程序运行
后台执行任务
定时执行任务
-
at 延时执行任务
时间格式
1.now
2.指定时间04:00
3.具体时间 04:00 2009-03-01
4.now+count time-untis
软连接
- ln 软连接,快捷方式 在快捷方式目录下执行
bash
mkdir -p data/coco
mkdir -p path_to_coco_dataset/annotations
ln -s ${源文件的绝对地址} ${快捷方式}
命令行关机重启
关机
halt 立刻关机(一般加-p 关闭电源)
shutdown [option] [time] [message]
例如,要立即关闭计算机,您将使用:
shutdown -h now
如果你想包含一条信息,这条信息将会显示给所有已登录的用户:
linuxidc@linuxidc:~/linuxidc.com$ shutdown -h +9 "服务器正在关闭,请保存您的工作并注销。"
重启
由于shutdown命令具有重启选项,因此了解reboot命令有关闭选项也就不足为奇了。
shutdown -r now 立刻重启
shutdown -r 10 过10分钟自动重启
标准的重启命令是:
reboot
这将提示您的计算机自动关闭,然后再重新打开。然而,如果你想关掉设备,那么-p开关将工作:
reboot -p
文件夹的创建、复制、剪切、重命名、清空和删除
文件夹挂在内存中
sudo mount -t tmpfs -o size=3100M tmpfs ./split_data/
- du -sh
查看当前文件夹大小
linux下文件夹的创建、复制、剪切、重命名、清空和删除命令
挂载NAS
Linux下自动挂载群晖Nas(通过CIFS)
Windows下群晖Nas自带的smb发现可以很方便地在计算机中管理,但是linux中无法直接体验到这种好处。个人因为某些原因并未开启NAS的NFS功能,想通过CIFS来挂载NAS文件,岁有了这篇文章。
一、安装前置所需软件
nfs-common
,cifs-utils
是必须的前置软件(在Ubuntu发行版下)
shell
sudo apt install -y nfs-common cifs-utils
二、编辑自动挂载文件并挂载
编辑/etc/fstab
文件
shell
sudo vim /etc/fstab
linux运维--修改已经挂载目录的名称
需求:
部署某个产品软件的时候,假设必须要/work目录下有200g磁盘大小,如果就单纯的在/目录下创建/work目录,这个磁盘大小会占用/目录的磁盘大小,所以需要创建/work目录后,并且把这个目录挂载到某个磁盘中去,这样/work目录占用的才是挂载磁盘的大小。这里可以通过df -Th命令,查看某个已经挂载好了的目录,假设是/data 它有200g,我们只需要把这个200g的/data变成/work即可,如下是操作步骤:
1.如何把一个挂载好的200g目录,假设是/data 变成/work
(1)df -Th (查看/data挂载目录的磁盘大小有200g满足需求)
得到 /dev/mapper/centos-swap 200.0G 33M 2.000G 2% /data
(2)umount /data (把/data和挂载磁盘卸载)
(3)mv /data /work (对/data文件改名为目标目录/work)
(4)vim /etc/fstab (编辑fstab,实现永久挂载)
/dev/sdb6 /data02 ext4 defaults 0 0
修改:把其中的/data 变成 /work
(5)mount -a
添加如下内容:
//your_nas_ip/dir /mnt/mountdir cifs rw,dir_mode=0777,file_mode=0777,vers=2.0,username=yourusername,password=yourpassword 0 0
shell
#NAS auto mount
//your_nas_ip/dir /mnt/NAS/dir cifs rw,dir_mode=0777,file_mode=0777,vers=2.0,username=yourusername,password=yourpassword 0 0
Shell
复制
其中,your_nas_ip
代表你的NAS的访问地址, dir
代表NAS下的分享挂载点,/mnt/mountdir
代表本设备要挂载到的路径,yourusername
为访问的用户名,yourpassword
为访问用户的密码,如果设置是匿名访问则不需要username与password两项设置并改为guest
编辑并保存完毕后,执行
shell
sudo mount -a
Shell
复制
如果没有任何报错与提示信息,则成功挂载~
实例
我的NAS地址为192.168.123.254,NAS的分享目录为/download
,我想将其挂载到/mnt/nas/download
,用户名为user1,密码为psw123456
创建挂载到的文件夹
shell
sudo mkdir /mnt/nas/download && sudo chmod -R 777 /mnt/nas/download
Shell
复制
在/etc/fstab
文件中添加自动挂载内容
shell
//192.168.123.254/download /mnt/nas/download cifs rw,dir_mode=0777,file_mode=0777,vers=2.0,username=user1,password=psw123456 0 0
Shell
复制
最后执行挂载指令
shell
sudo mount -a
创建文件夹
mkdir
删除
rm [选项] 文件
-f, --force 强力删除,不要求确认
-i 每删除一个文件或进入一个子目录都要求确认
-I 在删除超过三个文件或者递归删除前要求确认
-r, -R 递归删除子目录
-d, --dir 删除空目录
-v, --verbose 显示删除结果
============================================================================
常用如下几个:
rm -d 目录名 #删除一个空目录
rmdir 目录名 #删除一个空目录
rm -r 目录名 #删除一个非空目录
rm 文件名 #删除文件
在终端进到那个文件夹,然后执行:
sudo rm -rf 文件夹名
如果还是不行,就用
sudo chmod 777 文件夹名
sudo rm -rf 文件夹名
执行文件
sh
sh 文件路径
或
kill暂停线程
kill -STOP 12330
kill 恢复线程执行
kill -CONT 12330
应用文件的执行
\1. chmod +x filename
\2. ./filename 就可以执行了!!!
注:把filename替换为你要安装的文件名。
vim
G 跳转到文件尾部:
gg 跳转到文件开始
按ESC键 跳到命令模式,然后输入:
shell
:q -不保存文件,退出
shell
:q! -不保存文件,强制退出
shell
:w - 保存文件,不退出
:w newfilename - 另存为不退出
shell
:w! -强制保存,不退出
shell
:wq -保存文件,退出
shell
:wq! -强制保存文件,退出
shell
:r!date #插入时间戳
安装
deb文件
shell
sudo dpkg -i deb文件 # 安装
sudo apt-get install -f # 修复安装
sudo apt --fix-broken install # 修复安装
sudo dpkg -r 软件名 # 卸载
sudo dpkg -r --purge 软件名 # 连同配置文件卸载
ta.xz
shell
tar -xf cudnn-linux-x86_64-8.7.0.84_cuda11-archive.tar.xz
1、压缩命令:
命令格式:
bash
tar -zcvf 压缩文件名.tar.gz 被压缩文件名
tar.gz文件
Linux tar.gz、tar、bz2、zip 等解压缩、压缩命令详解 | 菜鸟教程
bash
tar zxvf FileName.tar.gz
cd FileName
./configure
make
sudo make install
卸载
apt-get purge / apt-get --purge remove
删除已安装包(不保留配置文件)。
如软件包a,依赖软件包b,则执行该命令会删除a,而且不保留配置文件
apt-get autoremove
删除为了满足依赖而安装的,但现在不再需要的软件包(包括已安装包),保留配置文件。
apt-get remove
删除已安装的软件包(保留配置文件),不会删除依赖软件包,且保留配置文件。
apt-get autoclean
APT的底层包是dpkg, 而dpkg 安装Package时, 会将 *.deb 放在 /var/cache/apt/archives/中,apt-get autoclean 只会删除 /var/cache/apt/archives/ 已经过期的deb。
apt-get clean
使用 apt-get clean 会将 /var/cache/apt/archives/ 的 所有 deb 删掉,可以理解为 rm /var/cache/apt/archives/*.deb。
查看安装软件
1.查看安装的所有软件
dpkg -l
例如:dpkg -l | grep ftp
2.查看软件安装的路径
dpkg -L | grep ftp
也可以用 whereis ftp
3.查看软件版本
aptitude show
例如:aptitude show ftp
查看显卡
nvidia-smi
| NVIDIA-SMI 440.82 Driver Version: 418.67 CUDA Version: 10.1 |
命令版本 显卡驱动版本 CUDA版本
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
显卡名 持久模式 总线ID 显示初始化 ECC纠错
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
风扇转速 温度 性能模式 功率 显存使用量 显卡核心使用率 计算模式
sudo nvidia-smi -pm 1#设置显卡为持久模式
中断linux施法
- 发一个中断信号,具体来说就是Ctrl+C;
查看文件夹下文件的数量
ls -l |grep "^-" | wc -l
查看指定格式文件数量
bash
ls ./ | grep .png | wc -l
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
使用pip安装cairoffi时爆出错误
更新了pip之后仍然有错误
需要更新setuptools才能生效
sudo pip install --upgrade setuptools
sudo cpulimit --pid 17918 --limit 50
杀死进程
Linux用ps命令查找进程PID再用kill命令终止进程的方法
kill -9 324
强行中止(经常使用杀掉)一个进程标识号为324的进程:
ssh连接linux服务器中断后,如何让命令继续在服务器运行
硬件管理
io查看
Linux(Ubuntu)之iotop命令_WZ18810463869的博客-CSDN博客
swap管理
创建
1.创建swap文件
shell
sudo dd if=/dev/zero of=[swap文件名] bs=1M count=[块数量]
sudo dd if=/dev/zero of=swap bs=1M count=1024
填充一个文件用作swap (耗时)
[swap的文件名]` 是用作swap文件的文件名,自行设定
需要设置的swap大小 = 1M * `[块数量]`
设置1GB就是 1M * 1024,即 `[块数量]` 为 `1024
2.创建swap文件系统
shell
sudo mkswap -f [swap文件名]
3.开启swap
shell
sudo swapon [swap文件名]
3.1 修改Priority
修改Priority为1:
text
$ sudo swapon -p 1 /dev/nvme0n1p6
4.关闭和删除原来的swapfile
shell
sudo swapoff [swap文件名]
sudo rm [swap文件名]
6.设置开机启动
# 编辑 /etc/fstab
sudo vim /etc/fstab
[swap文件的绝对路径] swap swap defaults 0 0
关闭
shell
swapoff -a # 临时关闭
shell
vim /etc/fstab #永久关闭
nvidia显卡操作
1.限制显卡功耗
shell
sudo nvidia-smi -pm 1 # 允许调节
sudo nvidia-smi -pl 200 # 调节显卡功耗, 注意不能太低, 否则会执行高负载任务可能会失败重启
sudo nvidia-smi -cc 1 # 使用p0性能模式计算, 默认是p2, 玄学, 效果不明显
cpu设置
ubuntu 18.04系统下CPU实时频率查看工具 cpupower
cpu型号查询
cat /proc/cpuinfo
cpu 查看
lscpu
内核信息查看
uname -a
内核锁定
查看可用内核
dpkg --list | grep linux-image
dpkg --list | grep linux-headers
dpkg --list | grep linux-modules
修改内核配置文件
vim /etc/default/grub
apt-mark hold linux-image
apt-mark hold linux-headers
apt-mark hold linux-modules
apt-mark hold linux-modules-extra
更新内核配置并重启
update-grub
reboot
某线程资源查看
top -p -H 12330
linux安全登录
- 修改端口号
vi /etc/ssh/sshd_config
Port 22
Port 60000
保存并退出
[root@localhost /]#service ssh restart
2.配置各自用户的 ssh 公钥认证,强制关闭密码登录,关闭 root 账号登录
安装并启用 ssh fail2ban 这样防止暴力破解密码的服务
linux 代理连接
远程连接
vscode 通过代理连接远程服务器(win10) - 知乎
安装vscode和remote ssh插件后,配置config文件(c:\Users\user_name.ssh\config)
正常的远程连接
text
Host 39.99.155.229
#目标机ip
HostName 39.99.155.229
#登入的用户名,可以不是root
User root
Port 22
通过代理远程连接
text
Host zju162kaiwu
HostName 10.115.115.162
User xx
Port 35878
ProxyCommand "D:\Program Files\Nmap\ncat.exe" --proxy-type socks5 --proxy 192.168.0.116:1080 %h %p
与普通连接不同的是:新增ProxyCommand 命令,其中"xx.xx.x.xxx:xxxx"是代理服务器的ip和端口。win10自带的openssh貌似和ProxyCommand不适配 ,因此采用ncat。
--proxy-type <type> Specify proxy type ("http", "socks4", "socks5")
报错
OSError: libcudnn.so.7.0: cannot open shared object file: No such file or directory错误
因为cuda的路径可能设置错了
shell
sudo ldconfig /usr/local/cuda/lib64
ubuntu查看实时网速
安装
bash
apt install ifstat
使用,直接打命令就行
bash
ifstat
ubuntu 关闭和打开图形界面
systemctl set-default multi-user.target
systemctl set-default graphical.target
使用xvfb虚拟帧缓存区环境执行X window程序
在 Ubuntu 或 Debian Linux 中,可以使用 apt
安裝 xvfb
套件
sudo apt install xvfb
在沒有 X Window 的環境之下,可以改用 Xvfb
環境來執行
xvfb-run --auto-servernum xx
打开多个运行窗口
xvfb-run -a python ***.py
Linux 使用 Xvfb 虛擬幀緩衝區環境執行 X Window 視窗程式
reference
[电子书](./24_0121_02-鸟哥的Linux私房菜 基础学习篇 第四版.mobi)