Ubuntu 命令常用命令-汇总(更新)[转]

发布时间 2023-12-26 10:21:10作者: 韩梦芫

记录日常使用的命令

 

1、关机、重启

关机

sudo shutdown -h 18:00    18点关机
sudo shutdown -r now      立即重启
sudo shutdown -h now      立即关机

重启

reboot

 

2、pid查看/监控

使用top或者htop进行监控,个人偏向与htop,更加全面

top

或者

htop

 

杀死pid(程序)

kill -9 pid

3、定时启动程序

crontab -e

参考:Linux crontab 命令

 

 

3.1、开机自启动程序

在系统中查看文件"etc/rc.d/rc.local"是否存在,如果不存在,则看"/etc/rc.local"是否存在,本人在Ubuntu20.04中配置"/etc/rc.local"。

创建文件: vim /etc/rc.local

#!/bin/sh -e
nvidia-smi -pm 1    # 写入需要开机自启动的程序;如英伟达显卡的内存常驻模式

# bash start_jupyter.sh    # jupyter服务

# bash start_labelimage_tool.sh    # 图片浏览器服务

exit 0

赋予可执行权限

chmod +x /etc/rc.local

 

启动服务并设置服务开机自启动

systemctl enable rc-local.service
systemctl start rc-local.service
systemctl status rc-local.service

 

重启系统后,再去一一验证所设置服务。

 

 

4、磁盘、存储

查看磁盘的空间等

df -h

查看文件夹大小

du -h --max-depth=1 /usr   

参考: ubuntu查看文件大小_JackieGemini-CSDN博客_ubuntu 查看文件大小

 

Linux 磁盘管理常用三个命令为 df、du 和 fdisk。

  • df(英文全称:disk full):列出文件系统的整体磁盘使用量
  • du(英文全称:disk used):检查磁盘空间使用量
  • fdisk:用于磁盘分区

Linux 磁盘管理 | 菜鸟教程

 

5、安装更新

apt-get update指令是获取最新的软件包。

sudo apt-get update

系统列出了需要更新的软件,需要下载的大小,占用的硬盘空间大小等。

sudo apt-get upgrade

 

更新内核

sudo apt-get dist-upgrade

参考: Ubuntu16.04软件包更新apt-get_四个菜-CSDN博客_ubuntu更新包

 

6、删除

删除文件夹以及文件夹里面的文件

rm -rf /tmp

 

删除文件夹下面的某个后缀文件 (txt关键字)

du -ah |grep 'txt' | xargs rm -r

 

7、ssh远程

参考:ssh-copy-id三步实现SSH无密码登录和ssh常用命令_liu_qingbo的专栏-CSDN博客_ssh-copy-id

ssh-copy-id -i .ssh/id_rsa.pub root@xx.xx.xx.xx



eval "$(ssh-agent -s)"
ssh-add -l

 

 

8、内存测试

带宽

sudo apt install mbw -y
mbw -q -n 10 245760
-q:隐藏日志
-n 10:表示运行10次
124000(MB):表示测试所用内存大小,用剩余内存的一半测试
#结果分析:
#只需关注平均值(AVG),内存分配速率越大,性能越好,三次AVG分别对应内存拷贝,字符串拷贝,内存卡拷贝。
nohup mbw -q -n 1000 124000 >> ./mbw.log 2>&1 & 
top -p mbw[pid]

压力

wget http://pyropus.ca/software/memtester/old-versions/memtester-4.5.0.tar.gz 
tar -zxvf memtester-4.5.0.tar.gz 
cd memtester-4.5.0 
make 
make install
#先运行下面命令查看剩余内存,然后用剩余内存做压力测试
free -h
#测试命令:
#运行10次
memtester 240G 10
#无限次
memtester 240G
#后台无限测试
nohup memtester 240G >> ./memtest.log 2>&1 &

综合测试

wget http://sourceforge.net/projects/lmbench/files/latest/download
tar -zxvf lmbench-3.0-a9.tgz
cd lmbench
make
#编译-测试
make results
#结果查看
make see
#进入results目录,查看summary.out

 

参考: 内存测试(ubuntu)_云淡风轻-CSDN博客

 

9、复制数据

本机数据传输

使用cp命令

语法

cp [OPTION]... [-T] SOURCE DEST

cp [OPTION]... SOURCE... DIRECTORY

cp [OPTION]... -t DIRECTORY SOURCE...

参数说明

-a, --archive            等于-dR --preserve=all
    --backup[=CONTROL        为每个已存在的目标文件创建备份
-b                        类似--backup 但不接受参数
   --copy-contents            在递归处理是复制特殊文件内容
-d                        等于--no-dereference --preserve=links
-f, --force                如果目标文件无法打开则将其移除并重试(当 -n 选项
                            存在时则不需再选此项)
-i, --interactive                覆盖前询问(使前面的 -n 选项失效)
-H                        跟随源文件中的命令行符号链接
-l, --link                    链接文件而不复制
-L, --dereference           总是跟随符号链接
-n, --no-clobber           不要覆盖已存在的文件(使前面的 -i 选项失效)
-P, --no-dereference       不跟随源文件中的符号链接
-p                        等于--preserve=模式,所有权,时间戳
    --preserve        [=属性列表   保持指定的属性(默认:模式,所有权,时间戳),如果
                           可能保持附加属性:环境、链接、xattr 等
-R, -r, --recursive          复制目录及目录内的所有项目
-t --target-directory=DIRECTORY
                         将所有源文件拷贝到目标目录
-T, --no-target-directory
                         目标为文件而不是文件夹

样例

cp -r ./tmp ../tmpc/

 

移动数据

使用mv命令

实际上跟Windows中的剪贴一样。

使用还能修改文件名字

 

参考: Ubuntu cp命令_taolusi的博客-CSDN博客_cp ubuntu

 

 

网络数据传输

使用scp

注意要搞清楚从谁复制数据到谁那里去。

说明

scp命令
···
(1)将本地文件拷贝到远程:scp 文件名 用户名@计算机IP或者计算机名称:远程路径
(2)从远程将文件拷回本地:scp 用户名@计算机IP或者计算机名称:文件名本地路径
(3)将本地目录拷贝到远程:scp -r 目录名 用户名@计算机IP或者计算机名称:远程路径
(4)从远程将目录拷回本地:scp -r 用户名@计算机IP或者计算机名称:目录名本地路径

样例

scp -r /home/hyh/Documents hyh@192.168.1.100:/home/hyh/Documents

 

参考: Ubuntu scp 拷贝电脑文件

 

 

10、后台运行

使用nohup命令

样例1

nohup jupyter notebook >/dev/null 2>&1 &

样例2

nohup /root/runoob.sh > runoob.log 2>&1 &

样例3

nohup  python spider_k.py >>logs/spider_k.log 2>&1 &

2>&1 解释:

将标准错误 2 重定向到标准输出 &1 ,标准输出 &1 再被重定向输入到 runoob.log 文件中。

  • 0 – stdin (standard input,标准输入)
  • 1 – stdout (standard output,标准输出)
  • 2 – stderr (standard error,标准错误输出)

参考: Linux nohup 命令 | 菜鸟教程

 

11、查看文件数

查看文件下的数据多少

# 查看所有的文件
ls -lR|grep "^-"| wc -l


# 查看jpg; 给相对位置,返回的也是文件的相对位置;给绝对位置,返回的也是绝对位置
find ./ -type f -name '*.jpg'

# 查看jpg
du -ah |grep 'jpg'

11.1、查看当前目录下各个文件夹的大小

du -sh ./* --exclude proc

 

12、查看硬盘的使用

查看各个程序(PID)当前运行时硬盘的开销

iotop

 

13、网络流量

查看当前机制所有的上传下载流量使用情况

nethogs eno1

 

14、查看网络端口

查看当前机子的端口占用情况

netstat -tln

# 查看某一端口占用情况
netstat -tln | grep 80

 

查看端口被哪个进程占用

(以9999端口为例说明)

lsof -i :9999

Ubuntu查看和释放80端口_啃饼小白的修炼之路-CSDN博客_ubuntu查看80端口

 

15、功率监测

功率监控

sudo s-tui

 

 

 

16、打开端口

sudo apt-get install iptables

sudo iptables -I INPUT -p tcp --dport 8343 -j ACCEPT

sudo iptables-save


# 根据端口查看进程号
sudo lsof -i:(port)

sudo lsof -i:8343

iptables 开启指定端口_qingwei201314-CSDN博客

 

注意与ufw命令的冲突

关闭ufw(防火墙)时,就直接使用iptables来进行操作

Ubuntu - 查看、开启、关闭和永久关闭防火墙

 

17、目录、文件日常处理

处理目录的常用命令

接下来我们就来看几个常见的处理目录的命令吧:

  • ls(英文全拼:list files): 列出目录及文件名
  • cd(英文全拼:change directory):切换目录
  • pwd(英文全拼:print work directory):显示目前的目录
  • mkdir(英文全拼:make directory):创建一个新的目录
  • rmdir(英文全拼:remove directory):删除一个空的目录
  • cp(英文全拼:copy file): 复制文件或目录
  • rm(英文全拼:remove): 删除文件或目录
  • mv(英文全拼:move file): 移动文件与目录,或修改文件与目录的名称

 

Linux 文件与目录管理 | 菜鸟教程

 

 

18、apt 常用命令

  • 列出所有可更新的软件清单命令:sudo apt update
  • 升级软件包:sudo apt upgrade
    列出可更新的软件包及版本信息:apt list --upgradeable
    升级软件包,升级前先删除需要更新软件包:sudo apt full-upgrade
  • 安装指定的软件命令:sudo apt install <package_name>
    安装多个软件包:sudo apt install <package_1> <package_2> <package_3>
  • 更新指定的软件命令:sudo apt update <package_name>
  • 显示软件包具体信息,例如:版本号,安装大小,依赖关系等等:sudo apt show <package_name>
  • 删除软件包命令:sudo apt remove <package_name>
  • 清理不再使用的依赖和库文件: sudo apt autoremove
  • 移除软件包及配置文件: sudo apt purge <package_name>
  • 查找软件包命令: sudo apt search <keyword>
  • 列出所有已安装的包:apt list --installed
  • 列出所有已安装的包的版本信息:apt list --all-versions

Linux apt 命令 | 菜鸟教程

 

19、ps命令-查看进程的PID

ps 命令的作用是显示进程信息的;| 符号,是个管道符号,表示ps 和 grep 命令同时执行;

grep 命令是查找(Global Regular Expression Print),能使用正则表达式搜索文本,然后把匹配的行显示出来;

 

ps命令有一些参数:

-e : 显示所有进程

-f : 全格式

-h : 不显示标题

-l : 长格式

-w : 宽输出

a :显示终端上的所有进程,包括其他用户的进程。

r :只显示正在运行的进程。

u :以用户为主的格式来显示程序状况。

x :显示所有程序,不以终端机来区分。

 

ps -ef
ps -ef | mysql

 

ps -ef命令含义_JureyLi的博客-CSDN博客_平时-ef

ps -ef | grep 命令详解

 

 

20、ln (链接)

 

ln 命令用来在文件之间建立链接,其的常用方式

# 建立硬链接
ln source target

# 建立软链接
ln -s source target

其中source表示所对应指向的具体位置

target表示 所生成的link(Windows理解的快捷方式类似)

可理解为对 source 建立一个 target 超链接

即:

ln -s /disk004 link_disk004

它们分别用来创建硬链接文件和软链接文件,一般都用软连接。

 

参考: Linux ln 命令 - sparkdev - 博客园

 

21、压缩

tar

压缩

把test文件夹打包压缩成 test.tar.gz 包

tar -zcvf test.tar.gz test

解压

把 test.tar.gz 包解压出来

tar -zxvf test.tar.gz 

 

其他的格式详细见参考链接

参考:

hepingfly:Linux 压缩和解压缩命令(详细总结)

 

 

22、查看文本内容

查看文件

more test.txt

默认显示前10行

head -n test.txt

查看文件最后200行