Linux指令
一. 基本指令
指令 | 作用 |
---|---|
sudo {指令} | 为指令增加暂时的超级权限 |
cd {path} | 进入某个目录 |
ls {path} | 显示某个目录的内容 |
mkdir {filename} | 创建目录 |
cp {file} {path} | 将file文件拷贝到 path目录下 ,文件夹 -r |
rm {file} | 移除 file文件,文件夹 -rf |
mv {file1} {file2} /{path} | 如果是文件到文件,则是改名,文件到路径,则是移动, 文件夹 -r |
chmod ‘u+x’ -R filename | 修改文件的权限,递归修改文件夹内所有文件(-R) |
1.1 chmod
用户说明
用户 | 用户类型 | 说明 |
---|---|---|
u | uer | 文件拥有者 |
g | group | 文件所有者所在组 |
a | others | 所有其他用户 |
权限说明
权限 | 说明 |
---|---|
r | 读 |
w | 写 |
x | 执行 |
二. 进程指令
指令 | 作用 |
---|---|
nvidia-smi -i | 查看显卡情况,几号显卡 |
watch -n 0.5 nvidia-smi -i | 按照0.5的频率查看显卡情况,几号显卡 |
CUDA_VISIBLE_DEVICES=0 {command} | 指定显卡运行程序 |
top -c -u username | 查看进程情况,以及具体运行指令, -u指定用户 |
kill -9 ID | 根据进程ID kill 进程 |
nohup {command} & (>dev/null 2 >log &) | 后台运行程序,(输出错误日志) |
nohup {command} &(>dev/null 2 >&1 &) | 后台运行程序,不输出任何日志 |
2.1 重定向
输出描述符
类型 | 文件描述符 | 默认情况 | 对应文件句柄位置 |
---|---|---|---|
标准输入 | 0 | 从键盘获得输入 | /proc/self/fd/0 |
标准输出 | 1 | 输出到屏幕 | /proc/self/fd/1 |
标准输入 | 2 | 输出到屏幕 | /proc/self/fd/2 |
输出重定向
类型 | 文件描述符 |
---|---|
command >filename | 标准输出重定向到新的文件中 |
command 1>filename | 同上 |
command >>filename | 把标准输出追加到新文件中 |
command 1>>filename | 同上 |
command 2>filename | 把标准错误重定向到新文件中 |
command 2>>filename | 把标准错误追加到新文件中 |
三. 压缩指令
3.1 tar
tar zxvf filename.tar (filename.tar.gz) # 解压文件
tar -czvf filename.tar dirname (filename.tar.gz) #压缩文件可以压缩成两种格式
tar jxvf filename.tar.bz2 #解压文件
tar -jcvf filename.tar.bz2 dirname #压缩成 .tar.bz2
3.2 unzip
下载sudo apt-get install unzip
unzip filename.zip -d /path/to/directory #解压文件到指定目录
zip filename.zip dirname #压缩文件夹为.zip文件
四. 查找指令
3.1 find
可以用来查找任意文件
find . #查找当前目录
find /home #把home目录下的文件路径都显示出来
find /home -name "yezm.txt" -maxdepth 1 #查看/home下的文件,返回yezm.txt的路径, -maxdepth 限制深度 1层
find /path -type d (f) #代表搜索的是d: 目录, f:文件
find -user #代表搜索某个用户下的文件
find /path -maxdepth 1 -type f -exec ls{}
"""根据时间戳查找文件,下列以天为单位"""
-atime(文件最后访问时间)
-mtime(文件最后修改时间)
-ctime(文件最后改变时间)
单位:
-amin
-mmin
-cmin
"""
#:[#, #-1) :最后访问时间在#天前(大于等于#天前,小于#-1天前)
等价于最后访问时间与当前的时间差 大于 (#-1)*24小时,小于等于 #*24小时
-#:(#, 0] :最后访问时间在#天以内,不包括24小时前的那一刻。
等价于最后访问时间与当前的时间差小于 #*24小时
+#:(oo, #-1] :最后访问时间在#-1天以前的。包括#-1天前
等价于最后访问时间与当前的时间差大于等于 #*24小时
"""
3.2 which
不同于find指令,which 指令是在 PATH 变量指定的路径中,搜索系统命令
的位置,通过which可以锁定当前使用的软件的位置,重点是在系统(用户)的PATH变量内搜索的,具体下列:
which pip
result:/opt/anaconda/anaconda3/bin/pip
which python
result: /opt/anaconda/anaconda3/bin/python
3.3 whereis
whereis命令用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)、源代码文件(参数-s).
和find相比,whereis查找的速度非常快,因为Linux系统会将系统内的所有文件都记录在一个数据库文件中,当使用whereis和locate时,会从数据库中查找数据,而不是像find那样通过遍历硬盘来查找,效率自然会很高.
但是数据库文件并不是实时更新的,因此在用whereis和locate查找文件时,有时会找到已经被删除的数据,或者刚建立的文件无法被查找到,原因就使因为数据库文件没有被更新。
3.4 locate
locate让使用者可以很快速的搜索档案系统内是否有指定的档案。其方法就是先建立一个包括系统内所有档案名称及路径的资料库,之后当寻找时只需要查询这个资料库,而不必深入系统文件中查找了。
参数格式:
-u:从根目录开始建立资料库。
-U:从指定位置开始建立资料库
-e:将某些路径排除在寻找的范围外。
-n:指定最多显示查找到的文件的个数
四. 存储指令
4.1 free
free -g --查看系统的内存大小,以g为单位
totol:总的内存大小
userd:已经使用的内存大小
free: 除了buff/cache,还剩下多少内存未使用
share:共享内存
buff/cache: 缓冲区的内存占用情况,page cache.在内存不够用的时候,会自动使用这部分缓存。
available: 真实可用的内存数。
buff/cache可以通过手动清除进行缓存的释放:
sudo sh -c "echo 1 > /proc/sys/vm/drop_caches" //1释放page cache ;2 释放dentries和inodes;3全放
4.2 du -sh
查看文件大小
du -sh #查看当前目录的总大小
du -sh /path/ * #查看目录下各个文件的大小
du -h /path/ * -d 2 表示查看目录下的文件大小, -d指最大深度 --max-depth=2
df -h #列出磁盘总容量,可用容量,使用百分比。
五. 用户命令
sudo adduer --home /home/Username Username #添加用户,并且生成用户目录
sudo passwd Username #修改用户的用户密码
sudu userdel -r Username # 删除所有与用户有关(需要先把该用户的所有进程关闭)
adduser和useradd指令不同, useradd默认只创建用户,而没有指定任何的shell以及home目录, adduser则会,