Ubuntu Common Operation Command

本文提供了Ubuntu Linux操作系统的实用技巧,包括快捷键、文件权限管理、远程工具使用、系统信息查看、环境变量设置、文件统计、错误处理、下载工具、Tmux和Htop的使用介绍。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

此博客都会不定期迭代更新

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系统版本信息

Ref

  • 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版本

Ref

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/' tococo/’: 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]

wget下载文件

  • 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> 

Linux命令发送Http GET/POST请求

15. Ubuntu设置环境变量的几种方法

Ref

  • 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常用操作快捷键

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命令恢复删除的文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值