Linux101
Linux Bash
参考资料
文件系统
cp
和rm
处理文件夹的时候要加-r
文件结构
根目录/
用户目录/home/username
- /etc: 配置文件
- /bin: 实际上是指向/usr/bin的软链接
- /etc 配置文件
- /opt 大型的商业软件(有自己的安装程序)
- /usr 大部分软件安装的地方
- /usr/local 用户自行安装软件(不通过apt)
文件权限
ls -l
文件类型(一位)、文件所属用户的权限(三位)、文件所属用户组的权限(三位)、其他人的权限(三位)。对于每个权限,第一位 r
代表读取 (Read),第二位 w
代表写入 (Write),第三位 x
代表执行 (Execute),-
代表没有对应的权限
目录权限: 可以把目录视为一个「文件」来看待,这个文件包含了目录中下一层的文件列表——「读取」对应读取文件列表的权限,「写入」对应修改文件列表(添加、删除、重命名文件)的权限,「执行」对应实际去访问列表中文件、以及使用 cd
切换当前目录到此目录的权限。
查看目录
ls -a
查看隐藏文件:以“.”开头的文件或目录默认被视为隐藏文件或目录,通常是一些系统配置文件。ls -l
查看文件和目录的详细信息,包括文件权限,文件数量,文件所有者,文件大小(以字节为单位),和最近修改的时间。如果想以更易读的方式查看文件大小(例如KB,MB等),可以使用ls -lh
du -sh dir
查看目录总大小(ls只能看文件)。du -sh dir/*
查看目录下所有子目录大小
解压文件
# .tar.gz 和 .tgz
tar -zxvf FileName.tar.gz # 解压
tar -zcvf FileName.tar.gz DirName # 将DirName和其下所有文件(夹)压缩
tar -C DesDirName -zxvf FileName.tar.gz # 解压到目标路径
#.zip
unzip file.zip
unzip file.zip -d /path/to/destination/directory/
-P password
# 参考https://blog.csdn.net/songbinxu/article/details/80435665
环境变量
查看cpu状态
例子: 设置GPU.
CUDA_VISIBLE_DEVICES=0 python your_file.py # 指定GPU集群中第一块GPU使用,其他的屏蔽掉
CUDA_VISIBLE_DEVICES=1 #Only device 1 will be seen
CUDA_VISIBLE_DEVICES=0,1 #Devices 0 and 1 will be visible
软链接
创建:
这样在当前目录下cd data
就可以到达/mnt/d/data
用ls -l 目录名
来查看目录下是否有软链接。如果有,可以看到形如:
进程管理
终端中Ctrl+Z暂停命令, Ctrl+C停止
后台运行
nohup后台运行command
终端中运行的命令放到后台
如果已经启动了一个前台命令,可以按 Ctrl + Z 暂停它,然后将它移到后台并继续运行:
后台指令放到终端
首先使用 jobs
命令查看 当前终端 所有的后台任务,例如:
输出类似这样:
然后使用 fg
命令将你需要的任务调至前台,例如将第二个任务调至前台:
htop
ps
查找名为abcd的进程
kill
常用的选项有:
- SIGSTOP(19) 暂停进程
- SIGCONT(18) 继续执行被暂停的进程
- SIGKILL(9) 强制终止进程,不能被捕捉、阻塞、忽略
查看端口占用
用户管理
-
添加名为
newuser
的用户sudo adduser newuser
,然后填写信息 -
给用户添加sudo 权限
sudo usermod -aG sudo newuser
ssh
配置ssh
在远程服务器上:
在本地,编写~/.ssh/config
文件,添加如下内容:
Host myname #自定义名称,也可以是ip地址
HostName hostname #远程服务器的ip地址
User username #远程服务器的用户名
IdentityFile ~/.ssh/id_rsa #本地私钥文件,默认为~/.ssh/id_rsa,如果有多个私钥文件,可以指定
Port xxxx #远程服务器的端口号,默认22
sudo chown -R ypy:ypy /home/ypy/.ssh && sudo chown -R ypy:ypy /home/ypy/.ssh/authorized_keys
sudo chmod 700 /home/ypy/.ssh && sudo chmod 600 /home/ypy/.ssh/authorized_keys
登录
scp
sftp
上传文件: 把本地服务器的/www/wwwroot目录下面的study.log文件上传到远程服务器的/www/server目录下。
sftp> lcd /www/wwwroot
sftp> put study.log /www/server
上传文件夹:把本地服务器的/www/wwwroot目录下面的test文件夹上传到远程服务器的/www/server目录下。
sftp> put -r test /www/server
查看远程服务器/www/server目录下面的文件和文件夹
sftp> ls /www/server
网络下载
wget
-
wget网址里面含有&,+等特殊字符,把网址用""括起来
-
-O
选项(大写字母!!! )用于指定下载内容的输出文件。 示例:
- -o 选项(小写)则用于将 wget 的日志消息输出到指定的文件中。它不会影响下载的文件内容,只会指定日志的存放位置。
rsync
git
远程仓库
- 添加远程仓库:
这里的
origin
是远程仓库的默认短名称,<repository-url>
是你想要连接的远程仓库的URL。
如果有多个远程仓库,可以自定义名称
-
列出所有远程仓库:
-v
参数表示显示远程仓库的详细信息,包括它们的URL。 -
拉取远程仓库的更新并自动合并:
branch-name
分支拉取内容并尝试自动合并到当前分支。
-
推送本地更改到远程仓库:
将分支branch-name
的内容推送到远程仓库。 -
推送当前分支的所有本地更改到远程仓库:
如果当前分支与远程分支有跟踪关系,这个命令会默认推送当前分支。 -
从远程仓库拉取内容/手动合并:
将远程仓库的branch-name
分支合并到当前分支。
shell
短学期 教材