此博客都会不定期迭代更新
文章目录
- 0. Book
- 1. Ubuntu截屏快捷键
- 2. Vim下误操作,导致屏幕没反应
- 3. 外设磁盘断电、弹出
- 4. 更改文件夹及子文件夹权限
- 5. 查看进程
- 6. 远程工具
- 7. scp、ssh
- 8. 查看linux系统版本信息
- 9. Ubuntu 查看Cuda和Cudnn版本
- 10. Linux 统计某文件夹下文件、文件夹的个数:有上限,数据量大的时候可以用python来计数
- 11. mv: cannot move `train2014/' to `coco/': Not a directory
- 12. 合并
- 13. -bash: /bin/rm: Argument list too long
- 14. wget$curl下载
- 15. Ubuntu设置环境变量的几种方法
- 16. Linux终端复用神器-Tmux使用梳理
- 17. 监控软件Htop
- 18. dpkg、apt-get、aptitude 三种方式的区别及命令格式
- 19 VI常用操作快捷键
- 20 rm删除操作
0. Book
634927 Ubuntu Linux操作系统.pdf
1. Ubuntu截屏快捷键
- 截取全屏的快捷键是PrintScreen,截取当前窗口的快捷键是Alt+PrintScreen,截取选定区域的快捷键是Shift+PrintScreen。以上三个快捷键可以截取屏幕并保存为图片,若加上Ctrl,则所截取屏幕会直接复制到剪切板,可以直接进行粘贴。
2. Vim下误操作,导致屏幕没反应
- 按Ctrl+S,屏幕停止显示,按Ctrl+Q恢复
3. 外设磁盘断电、弹出
gnome-disks
4. 更改文件夹及子文件夹权限
可以使用命令chmod来为文件或目录赋予权限。Linux/Unix 的档案存取权限分为三级 : 档案拥有者、群组、其他。利用 chmod 可以藉以控制档案如何被他人所存取。
Ubuntu 更改文件夹及子文件夹权限
5. 查看进程
# 查询8080端口的进程
netstat -apn | grep 8080
# 如果要查询这个进程的详情:
ps -aux | grep xxx (ps -aux | grep ssserver)
ps -aux | grep pid
# Linux
netstat -ap | grep 8086 需要root用户权限
netstat -tunlp | grep 8086
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp 0 0 0.0.0.0:8086 0.0.0.0:* LISTEN 27367/java
[dev_bigdata@vpc-dsj-yingyong-1 DP_Channelanalysis]$ ps 27367
PID TTY STAT TIME COMMAND
27367 pts/1 Sl 1:19 java -jar DP_ChannelRevenueAnalysis.jar
# 不需要ROOT权限
netstat -tunlp | grep 8102
ps 25512
ll /proc/25512
[ubuntu查看端口状态](https://www.cnblogs.com/kingsonfu/p/9779117.html)
# MAC查看端口占用
sudo lsof -i :80
方法二: netstat -anp tcp | grep 80
# 根据进程查目录
pwdx 74009
https://blog.youkuaiyun.com/Zsigner/article/details/100032376
# 若要关闭使用这个端口的程序,使用kill + 对应的pid
kill -9 PID号
shell fuser *
http://www.ha97.com/1030.html
ps aux 查看进程状态
https://blog.youkuaiyun.com/weixin_32820767/article/details/80946695
ubuntu查看占用某端口的程序
ps aux|grep xxx详解
Ubuntu chmod 命令修改文件权限
Ubuntu更改文件夹权限及chmod详细用法
6. 远程工具
ssh:远程连接协议
sftp:远程文件传输协议
teamviewer:图像传输
7. scp、ssh
scp:
http://www.runoob.com/linux/linux-comm-scp.html
# 从本地到远程
scp ./Art\ Movement.tar.gz ustlab@143.89.131.29:/home/ustlab/google_art_data
# 从远程到本地
scp -r xufengchen@hpc2.ust.hk:/home/xufengchen/Code/demo/Keras-GAN/dcgan-copy/saved_model_5k_128.zip /Users/xufeng/Code/Demo/Keras-GAN/dcgan
8. 查看linux系统版本信息
- 8.1 查看Linux内核版本命令(两种方法):
1: cat /proc/version
2: uname -a
- 8.2 查看Linux系统版本的命令(3种方法):
1: lsb_release -a,即可列出所有版本信息:
这个命令适用于所有的Linux发行版,包括RedHat、SUSE、Debian…等发行版。
2: cat /etc/redhat-release,这种方法只适合Redhat系的Linux:
3: cat /etc/issue,此命令也适用于所有的Linux发行版。
9. Ubuntu 查看Cuda和Cudnn版本
cat /usr/local/cuda/version.txt
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
nvcc -V
nvidia-smi
(py27) [xufengchen@hnode-ib-77 chapter_7_coco]$ cat /usr/local/cuda/version.txt
CUDA Version 9.2.88
CUDA Patch Version 9.2.88.1
(py27) [xufengchen@hnode-ib-77 chapter_7_coco]$ cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
#define CUDNN_MAJOR 7
#define CUDNN_MINOR 1
#define CUDNN_PATCHLEVEL 4
--
#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)
#include "driver_types.h"
(py27) [xufengchen@hnode-ib-77 chapter_7_coco]$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2018 NVIDIA Corporation
Built on Wed_Apr_11_23:16:29_CDT_2018
Cuda compilation tools, release 9.2, V9.2.88
(py27) [xufengchen@hnode-ib-77 chapter_7_coco]$ nvidia-smi
Thu Mar 21 11:34:49 2019
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 396.26 Driver Version: 396.26 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 Tesla K80 On | 00000000:0D:00.0 Off | Off |
| N/A 20C P8 27W / 149W | 0MiB / 12206MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
| 1 Tesla K80 On | 00000000:0E:00.0 Off | Off |
| N/A 26C P8 28W / 149W | 0MiB / 12206MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
| 2 Tesla K80 On | 00000000:83:00.0 Off | Off |
| N/A 22C P8 26W / 149W | 0MiB / 12206MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
| 3 Tesla K80 On | 00000000:84:00.0 Off | Off |
| N/A 28C P8 29W / 149W | 0MiB / 12206MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+
10. Linux 统计某文件夹下文件、文件夹的个数:有上限,数据量大的时候可以用python来计数
-
统计当前文件夹下有多少个文件
ls -l|wc -l -
统计某文件夹下文件的个数
ls -l |grep “^-”|wc -l -
统计某文件夹下目录的个数
ls -l |grep “^d”|wc -l -
统计文件夹下文件的个数,包括子文件夹里的
ls -lR|grep “^-”|wc -l -
如统计/home/han目录(包含子目录)下的所有js文件则:
ls -lR /home/han|grep js|wc -l 或 ls -l “/home/han”|grep “js”|wc -l -
统计文件夹下目录的个数,包括子文件夹里的
ls -lR|grep “^d”|wc -l
说明:
ls -lR
长列表输出该目录下文件信息(R代表子目录注意这里的文件,不同于一般的文件,可能是目录、链接、设备文件等)
grep “^-”
这里将长列表输出信息过滤一部分,只保留一般文件,如果只保留目录就是 ^d -
wc -l
统计输出信息的行数,因为已经过滤得只剩一般文件了,所以统计结果就是一般文件信息的行数,又由于一行信息对应一个文件,所以也就是文件的个数。
======================================
- 如果只查看文件夹
ls -d 只能显示一个.
find -type d 可以看到子文件夹
11. mv: cannot move train2014/' to
coco/’: Not a directory
[xufengchen@hnode-ib-77 data]$ mv train2014/ coco/
mv: cannot move `train2014/' to `coco/': Not a directory
[xufengchen@hnode-ib-77 data]$ mv -r train2014/ coco/
mv: invalid option -- 'r'
Try `mv --help' for more information.
[xufengchen@hnode-ib-77 data]$ mv train2014 coco
12. 合并
合并,具体命令如下
cat img_celeba.7z.0** > img_celeba.7z
13. -bash: /bin/rm: Argument list too long
https://blog.youkuaiyun.com/skykingf/article/details/20060105
https://www.landui.com/help/show-3153.html
14. wget$curl下载
- wget下载整个网页到文件,也可下载其他数据资源。下载并重命名、断点续传、后台下载、查看进度、下载多个任务
MacBook-Pro-2:~ xufeng$ wget www.baidu.com
Warning: Failed to set locale category LC_NUMERIC to en_HK.
Warning: Failed to set locale category LC_TIME to en_HK.
Warning: Failed to set locale category LC_COLLATE to en_HK.
Warning: Failed to set locale category LC_MONETARY to en_HK.
Warning: Failed to set locale category LC_MESSAGES to en_HK.
--2020-03-18 10:33:55-- http://www.baidu.com/
Resolving www.baidu.com (www.baidu.com)... 180.101.49.12, 180.101.49.11
Connecting to www.baidu.com (www.baidu.com)|180.101.49.12|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 2381 (2.3K) [text/html]
Saving to: ‘index.html’
index.html 100%[===========================================>] 2.33K --.-KB/s in 0s
2020-03-18 10:33:55 (120 MB/s) - ‘index.html’ saved [2381/2381]
- curl请求url并显示在终端上。curl可以进行get、post请求,也可以上传文件、下载文件、断点下载
MacBook-Pro-2:~ xufeng$ curl www.baidu.com
<!DOCTYPE html>
<!--STATUS OK--><html> <head><meta http-equiv=content-type content=text/html;charset=utf-8><meta http-equiv=X-UA-Compatible content=IE=Edge><meta content=always name=referrer><link rel=stylesheet type=text/css href=http://s1.bdstatic.com/r/www/cache/bdorz/baidu.min.css><title>百度一下,你就知道</title></head>
15. Ubuntu设置环境变量的几种方法
-
1.Linux的变量种类
按变量的生存周期来划分,Linux变量可分为两类:- 1.1 永久的:需要修改配置文件,变量永久生效。
- 1.2 临时的:使用export命令声明即可,变量在关闭shell时失效。
-
2.设置变量的三种方法
- 2.1 在/etc/profile文件中添加变量【对所有用户生效(永久的)】
用VI在文件/etc/profile文件中增加变量,该变量将会对Linux下所有用户有效,并且是“永久的”。 例如:编辑/etc/profile文件,添加CLASSPATH变量 $ vi /etc/profile export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib 注:修改文件后要想马上生效还要运行$ source /etc/profile,不然只能在下次重进此用户时生效。
- 2.2 在个人用户主目录下的~/.bashrc中增加变量【对单一用户生效(永久的)】
用VI在用户目录下的~/.bashrc文件中增加变量,改变量仅会对当前用户有效,并且是“永久的”。 例如:编辑emos用户目录(/home/emos)下的.bashrc $ vi /home/emos/.~/.bashrc 添加如下内容: export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib 注:修改文件后要想马上生效还要运行$ source /home/guok/.bashrc,不然只能在下次重进此用户时生效。
- 2.3 直接运行export命令定义变量【只对当前shell(BASH)有效(临时的)】
在shell的命令行下直接使用[export 变量名=变量值] 定义变量,该变量只在当前的shell(BASH)或其子shell(BASH) 下是有效的,shell关闭了,变量也就失效了,再打开新shell时就没有这个变量,需要使用的话还需要重新定义。
```
- 3.环境变量的查看
3.1 使用echo命令查看单个环境变量。例如:
echo $PATH
3.2 使用env查看所有环境变量。例如:
env
3.3 使用set查看所有本地定义的环境变量。
unset可以删除指定的环境变量。
4.常用的环境变量
PATH 决定了shell将到哪些目录中寻找命令或程序
HOME 当前用户主目录
HISTSIZE 历史记录数
LOGNAME 当前用户的登录名
HOSTNAME 指主机的名称
SHELL 当前用户Shell类型
LANGUGE 语言相关的环境变量,多语言可以修改此环境变量
MAIL 当前用户的邮件存放目录
PS1 基本提示符,对于root用户是#,对于普通用户是$
16. Linux终端复用神器-Tmux使用梳理
Tmux是一个优秀的终端复用软件,类似GNU Screen,但来自于OpenBSD,采用BSD授权。使用它最直观的好处就是,通过一个终端登录远程主机并运行tmux后,在其中可以开启多个控制台而无需再“浪费”多余的终端来连接这台远程主机。是BSD实现的Screen替代品,相对于Screen,它更加先进:支持屏幕切分,而且具备丰富的命令行参数,使其可以灵活、动态的进行各种布局和操作。
https://www.cnblogs.com/kevingrace/p/6496899.html
17. 监控软件Htop
https://www.cnblogs.com/yqsun/p/5396363.html
18. dpkg、apt-get、aptitude 三种方式的区别及命令格式
dpkg绕过apt包管理数据库对软件包进行操作,所以你用dpkg安装过的软件包用apt可以再安装一遍,系统不知道之前安装过了,将会覆盖之前dpkg的安装。
dpkg是用来安装.deb文件,但不会解决模块的依赖关系,且不会关心ubuntu的软件仓库内的软件,可以用于安装本地的deb文件
https://blog.youkuaiyun.com/xiaoyanghuaban/article/details/22946987
19 VI常用操作快捷键
20 rm删除操作
慎用rm -rf 永久删除
- rm test.txt
rm:是否删除 一般文件 “test.txt”? y - rm homework
rm: 无法删除目录"homework": 是一个目录 - rm -r homework
rm:是否删除 目录 “homework”? y
替代rm为mv,先保存到一个目录,定期删除
Linux恢复误删除的文件或者目录: 麻烦
Linux下用rm删除的文件的恢复方法
linux_文件删除的恢复(rm -rf *)
Linux 利用lsof命令恢复删除的文件