ubuntu下常用命令

秦时铭
2023-12-01

一、查找命令

1、whereis
whereis命令用来查找命令的位置,包括执行文件、源代码和手册页文件。记住:此处为查找位置,相对用的更多。

2、locate
可以跟-c 统计查找到的文件数量

3、find命令
find pathname -options [-print -exec -ok]
例如:find ./ notepadqq为查找当前目录下文件名为notepadqq的文件。

二、打开相应文件

1、打开pdf文件
(1)无需安装,ubuntu系统自带evince,命令为:
$ evince [name_pdf]
(2)安装FoxitReader软件
官网下载FoxitReader,然后到下载目录使用下列命令:

$ cd  ~/Downloads
$ gzip  -d  FoxitReader_version_Setup.run.tar.gz
$ tar  -xvf  FoxitReader_version_Setup.run.tar
$ ./FoxitReader_version_Setup.run

然后可以安装在制定目录了,打开pdf软件命令为:
(暂时使用时需要右键点击,用FoxitReader打开即可。)

三、查看系统资源占用

1、free
用来显示内存的使用情况,使用权限是所有用户。
参数:
-b -k -m:分别以字节(KB、MB)为单位显示内存使用情况。
-s delay:显示每隔多少秒数来显示一次内存使用情况。
-t:显示内存总和列。
-o:不显示缓冲区调节列。

2、uptime
用来显示任务队列信息。
| 现在的时间 | 系统开机运转到现在经过的时间 | 连线的使用者数量 | 最近一分钟,五分钟和十五分钟的系统负载 |
11:00:16 up 1 day, 2:24, 4 users, load average: 0.21, 0.25, 0.36

3、top
实时地对系统处理器的状态进行监视。
参数说明:
d: 指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用s交互命令来改变之。
p: 通过指定监控进程ID来仅仅监控某个进程的状态。

4、vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
1 0 948544 93988 22672 443688 8 11 51 25 64 87 6 1 91 1

四、Ubantu解压文件

(1)zip
我们可以使用下列的命令压缩一个目录:
# zip -r archive_name.zip directory_to_compress
解压一个zip文档:
# unzip archive_name.zip
参考:https://my.oschina.net/farces/blog/727564

(2)TAR
打包文件/目录:
# tar -cvf archive_name.tar directory_to_compress
解包:
# tar -xvf archive_name.tar.gz
# tar -xvf archive_name.tar -C /tmp/extract_here/
参数详解:
-c 建立压缩档案;
-x 解压;
-v 显示所有过程;
-f 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名;

(3)TAR.GZ
压缩:
# tar -zcvf archive_name.tar.gz directory_to_compress
解压缩:
# tar -zxvf archive_name.tar.gz

(4)TAR.BZ2
使用tar.bz2进行压缩:
# tar -jcvf archive_name.tar.bz2 directory_to_compress
解压缩:
# tar -jxvf archive_name.tar.bz2 -C /tmp/extract_here/

(5)rar
需要先安装rar解压工具,如下
sudo apt-get install rar
sudo apt-get install unrar
压缩:
rar x FileName.rar
解压:
rar a FileName.rar DirName

(6)gzip
使用以下命令直接解压缩成.tar格式,例如:
gzip -d code-stable-code.tar.gz
生成code-stable-code.tar,其中-d--decompress是一样的;

五、虚拟机ubuntu server 14.0 根目录扩容

1、修改虚拟机设置,把硬盘改为200G

正在上传…重新上传取消

2、linux终端执行命令

把新增加的150G(200G - 50G)合并到根目录
(1)查看当前磁盘列表
$ fdisk -l
列表中有以下部分信息:

Disk  /dev/sda:  214.7GB, 21447483644800 bytes

Device Boot        Start                End           Blocks        Id        System
/dev/sda1            2048           499711         248832       83           Linux
/dev/sda2        501758     419430399   209464321         5    Extended
/dev/sda5        501760     419428351   209463296       8e   Linux LVM

可以看出磁盘/dev/sda已经变成200G多了,但是根目录ubuntu14–vg-root才47.9 GB。大致有150G是未分配的。
(2)增加新分区
$ fdisk /dev/sda
根据提示输入相应的信息(此时输入m可查看help)

  • 1、根据提示先输入 n 并回车,表示增加分区

  • 2、再根据提示输入 p 并回车,表示主分区

  • 3、根据提示输入磁盘分区号,我不输入直接回车,默认3

  • 4、输入磁盘分区的起始物理地址,上面sda1、sda2、sda5的最大物理地址是419428351,所以这里我输入419428352,表示新的分区的地址时接在后面的

  • 5、输入磁盘分区的结束物理地址,这里直接回车就好,默认是最末的物理地址,这样能把后面的所有空间全部包含进来

  • 6、输入 w 并回车,开始写分区并退出

(3)再次查看磁盘列表

$ fdisk -l

发现多了一个磁盘/dev/sda3,但是ubuntu14–vg-root还是47.9 GB;

(4)重新读取分区表

partprode /dev/sda

(5)格式化分区

mkfs -t ext3 /dev/sda3

(6)新建物理卷

先执行 pvdisplay 发现物理卷还没有刚才新建的sda3,执行以下命令创建:

pvcreate /dev/sda3

再执行 pvdisplay 就发现已经有sda3了

(7)把sda3添加到卷组

先执行 vgdisplay 查看卷组,有以下信息

VG Name ubuntu14-vg
卷组名称是ubuntu14-vg,执行以下命令
vgextend ubuntu14-vg /dev/sda3
再执行 vgdisplay 查看,有以下信息
Free PE / Size 39218 / 153.20 GiB
(8)开始扩容根目录
lvs
信息列表中,VG 有 ubuntu14-vg ,LV 有 root ,这就是要扩容的根目录。执行以下命令:

vextend -L +150G /dev/ubuntu14-vg/root /dev/sda3 
resize2fs /dev/ubuntu14-vg/root

支持根目录扩容完毕。可以验证一下。
输入 fdisk -l 结果为:
Disk /dev/mapper/ubuntu14--vg-root: 208.9 GB, 208914087936 bytes
输入 df -h 结果为:
/dev/mapper/ubuntu14--vg-root 192G 34G 150G 19% /
验证完毕!

七、ubuntu 关机,重启,注销命令

1 关机命令 shutdown

  好像ubuntu的终端中默认的是当前用户的命令,只是普通用户,因此在终端器中可以使用sudo -sh 转换到管理员root用户下执行命令

  • shutdown –help
      可以查看shutdown命令如何使用,当然也可以使用man shutdown命令。
  • shutdown -h now 现在立即关机
  • shutdown -r now 现在立即重启
  • shutdown -r +3 三分钟后重启
  • shutdown -h +3 “The System will shutdown after 3 minutes” 提示使用者将在三分钟后关机
  • shutdown -r 20:23 在20:23时将重启计算机
  • shutdown -r 20:23 & 可以将在20:23时重启的任务放到后台去,用户可以继续操作终端

2 中断命令

  • 执行完命令后(若没有转到后台),可以使用CTRL+C来中止命令

  • kill 程序编码
    当命令在后台执行时系统会返回一个程序编码,例如:在使用 shutdown -r 20:23 & 系统返回系统编码:4905
    我们可以使用kill 4905来中止重启命令

  • ps aux | grep 程序编号
    我们如果知道程序的编号,我们可以使用ps aux |grep 程序编号来查询该程序编号对应的命令是什么。
    例如上面的程序编号为4905 ,我们可以使用ps aux | grep 4905 就可以查到 shutdown -r 20:23 & 的命令

  • halt—-最简单的关机命令
    其实halt就是调用shutdown -h。halt执行时﹐杀死应用进程﹐执行sync系统调用﹐文件系统写操作完成后就会停止内核。

参数说明:
[-n] 防止sync系统调用﹐它用在用fsck修补根分区之后﹐以阻止内核用老版本的超级块〔superblock〕覆盖修补过的超级块。
[-w] 并不是真正的重启或关机﹐只是写wtmp〔/var/log/wtmp〕纪录。
[-d] 不写wtmp纪录〔已包含在选项[-n]中〕。
[-f] 没有调用shutdown而强制关机或重启。
[-i] 关机〔或重启〕前﹐关掉所有的网络接口。
[-p] 该选项为缺省选项。就是关机时调用poweroff。
  • init----init是所有进程的祖先﹐它的进程号始终为1﹐所以发送TERM信号给init会终止所有的用户进程﹑守护进程等。
    shutdown 就是使用这种机制。init定义了8个运行级别(runlevel),init 0为关机﹐init 1为重启。关于init可以长篇大论﹐这里就不再叙述。另外还有telinit命令可以改变init的运行级别﹐比如﹐telinit -iS可使系统进入单用户模式﹐并且得不到使用shutdown时的信息和等待时间。

  • Logout 注销是登陆的相对操作,登陆系统后,若要离开系统,用户只要直接下达logout命令即可:
[root@localhost root]#logout
Red Hat Linuxrelease 9(Shike)
Kernel 2.4.20.8 on an i686
Login: ← 回到登陆的画面

八、 总结:监听进程的端口号过程

查看端口使用情况,使用netstat命令。
(1)查看已经连接的服务端口(ESTABLISHED)
     `netstat -a`
(2)查看所有的服务端口(LISTEN,ESTABLISHED)
          `netstat -ap`

(3)查看8080端口,则可以结合grep命令:

          `netstat -ap | grep 8080`

(3)如查看8888端口,则在终端中输入:

          `lsof -i:8888`

[root@localhost ~]# lsof -i :80

COMMAND   PID   USER   FD   TYPE   DEVICE SIZE NODE NAME
httpd   13450 apache    4u IPv6 13312087       TCP *:http (LISTEN)
httpd   13451 apache    4u IPv6 13312087       TCP *:http (LISTEN)

若要停止使用这个端口的程序,使用kill +对应的pid即可

九、使用ubuntu分析磁盘使用情况

安装图形工具Baobab,命令如下:
sudo apt-get install baobab
安装完毕后,会分类至应用程序, 系统工具, 磁盘分析器,或者,直接使用下列命令,在终端中运行baobab。
baobab

十、远程拷贝命令scp

scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。可能会稍微影响一下速度。当你服务器硬盘变为只读 read only system时,用scp可以帮你把文件移出来。另外,scp还非常不占资源,不会提高多少系统负荷,在这一点上,rsync就远远不及它了。虽然 rsync比scp会快一点,但当小文件众多的情况下,rsync会导致硬盘I/O非常高,而scp基本不影响系统正常使用。
(1)命令格式:
$ scp [参数] [原路径] [目标路径]
(2)命令功能:
scp是 secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。linux的scp命令可以在linux服务器之间复制文件和目录。
(3)使用实例:
a、从本地服务器复制到远程服务器
$scp local_file remote_username@remote_ip:remote_folder
$scp local_file remote_username@remote_ip:remote_file
$scp local_file remote_ip:remote_folder
$scp local_file remote_ip:remote_file
第1,2个指定了用户名,命令执行后需要输入用户密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名
第3,4个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名

b、从远程服务器复制到本地服务器
从远程复制到本地的scp命令与上面的命令雷同,只要将从本地复制到远程的命令后面2个参数互换顺序就行了。例如:
$scp remote_username@remote_ip:remote_folder local_file
$scp root@192.168.120.204: /opt/soft/nginx-0.5.38.tar.gz /opt/soft

十一、如何启动、关闭和设置ubuntu防火墙

由于LInux原始的防火墙工具iptables过于繁琐,所以ubuntu默认提供了一个基于iptable之上的防火墙工具ufw。

ubuntu 9.10默认的便是UFW防火墙,它已经支持界面操作了。在命令行运行ufw命令就可以看到提示的一系列可进行的操作。

(1)安装

sudo apt-get install ufw

(2)启用:在系统启动时自动开启,关闭外部对本机的访问,但本机王文外部正常。

sudo ufw enable

sudo ufw default deny

(3)开启/禁用

语法:sudo ufw allow | deny [servixe]

打开或者关闭某个端口:

sudo ufw allow smtp允许所有外部IP访问本机的25/tcp(smtp)端口

sudo ufw allow 22/tcp允许所有外部IP访问本机的25/tcp(ssh)端口

sudo ufw allow 53允许外部访问53端口

sudo ufw allow from 192.168.0.1允许此IP访问所有的本机端口

(4)查看防火墙状态

sudo ufw status

十二、linux下使用convert命令修改图片分辨率

Convert的resize子命令应该是在ImageMagick中使用较多的命令,它实现了图片任意大小的缩放,唯一需要掌握的就是如何使用它的一些参数测试设定值:
命令格式:convert -resize widthxheight src.jpg dst.jpg
例如:convert -resize 240x240 34100.jpg 10000.jpg
默认都是使用像素作为单位,也可以使用百分比,参考:linux下使用convert命令修改图片分辨率

十三、ubuntu下安装Google浏览器

(1)下载deb包
针对64位x86架构:
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
(2)安装deb包
sudo dpkg -i google-chrome-stable_current_amd64.deb
(3)要是软件依赖出现问题,则修复依赖
sudo apt-get -f install
----接下来出现什么问题就查询对应答案,一般直接就会安装成功----

十四、linux指令add-apt-repository ppa:xxx/ppa

这句话的意思是获取最新的个人软件包档案源,将其添加至当前apt库中,并自动导入公钥;
例如,安装notepadqq,命令为
sudo add-apt-repository ppa:notepadqq-team/notepadqq

十五、将ubuntu下的.deb包转变为centos下的.rpm包(centos操作系统下处理)

(1)需要安装alien工具:(记住默认为同一个目录,除了cd进入另一个目录)
$ wget http://ftp.de.debian.org/debian/pool/main/a/alien/alien_8.92.tar.gz
$ tar zxvf alien_8.92.tar.gz
$ cd alien
$ sudo yum install perl
$ sudo yum install per-ExtUtils-CBuilder per-ExtUtils-MakeMaker
$ perl Makefile.PL
$ make
$ sudo make install
(2)进行转换deb->rpm
cd到deb包所在目录;
$ sudo yum install rpm-build
可能会出现问题,此时更新以下yum,sudo yum update
$ alien -r ***.deb
rpm -ivh ***.rpm
(3)如果出现缺少动态库.so文件,则进行以下操作:
wget http://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpm
rpm -Uvh epel-release*.rpm
yum install qt5-qtwebkit 安装此QtWebKit,提供Web浏览器引擎;

参考文献:https://www.cnblogs.com/jackluo/p/3416648.html
参考文献:https://blog.csdn.net/kenny_lz/article/details/78884603

(4)如果安装时出现依赖错误
建议使用sudo yum install ***.rpm代替rpm -ivh ***.rpm,这样能够自动解决依赖问题,而不用专门安装特定的软件包;
参考:https://www.cnblogs.com/huidaoli/articles/3733523.html

十六、挂载硬盘

如果硬盘已经分区,操作以下命令:
vim /etc/fstab 永久性挂载配置

# / was on /dev/sda8 during installation
UUID=1ec76666-3c49-4ded-a8f9-19c98c0c655d / ext4 errors=remount-ro 0 1
# /boot/efi was on /dev/sda3 during installation
UUID=C2B8-E262 /boot/efi vfat umask=0077 0 1
# /home was on /dev/sda9 during installation
UUID=dbc3a9e8-6227-46c8-9c8c-4be40623c761 /home ext4 defaults 0 2
# swap was on /dev/sda7 during installation
UUID=31b3801a-a1db-406b-8811-13cb9082a83a none swap sw 0 0
# /storage programer
UUID=286fb0dd-4c95-4942-898d-d1fd10cc8f56 /usr ext4 defaults 0 0

其中
参考:Linux 添加硬盘和挂载
参考:企业宝

十七、内存同步命令sync

在Linux/Unix系统中,在文件或数据处理过程中一般先存放到内存缓冲区中,以提高系统的运行效率。
sync命令可以用来强制将内存缓冲区中的数据立即写入磁盘中。
系统一般会自动执行update或bdflush操作,将缓冲区的数据写入磁盘。只有在这两种命令无法执行时,才需手动执行sync命令。

十八、检测系统命令vrim

vrim能够检测出系统安装了多少非自由软件,能够以百分比的形式显示。

十九、设置屏幕显示(主屏、副屏、扩展屏)

(1)查看屏幕显示器:xrandr

Screen 0: minimum 320 x 200, current 2806 x 900, maximum 8192 x 8192
eDP-1 connected 1366x768+1440+0 (normal left inverted right x axis y axis) 344mm x 194mm
   1366x768 60.00*+
   1360x768 59.80 59.96  
VGA-1 connected primary 1440x900+0+0 (normal left inverted right x axis y axis) 410mm x 257mm
   1440x900 59.61*+
   1280x1024 75.02 60.02  
HDMI-1 disconnected (normal left inverted right x axis y axis)

如图,有三种屏幕接口,名称为:eDP-1, VGA-1, HDMI-1(本机主屏为ieDP-1,副屏为VGA-1)
(2)设置主屏
xrandr --output eDP-1 --auto --primary
其中auto表示自动分辨率,primary是主屏,eDP-1是笔记本显示屏的名字
(3)设置副屏为右扩展屏
xrandr --output eDP-1 --right-of VGA-1 --auto
(4)克隆显示双屏
xrandr --output VGA-1 --same-as eDP-1 --auto
(5)关闭显示屏
xrandr --output VGA-1 --off

二十、ubuntu增加swap交换空间

参考:https://www.linuxidc.com/Linux/2010-09/28915.htm(linux公社)
(1)查看系统swap分区
free -m
(2)创建swap文件
mkdir /swap
cd /swap
sudo dd if=/dev/zero of=swap bs=1024 count=20000000
(3)把生成的文件转换成Swap文件
sudo mkswap -f swap
(4)激活Swap文件
sudo swapon swap
free -m
(5)卸载swap 文件
sudo swapoff /swap/swap
(6)永久保持swap
可以把这个文件写入/etc/fstab,格式为:
/swap/swap none swap defaults 0 0

二十一、pdf操作软件pdftk

pdftk是一个命令行程序,使用计算机终端进行操作.
(1)将223页的pdf拆分
pdftk 123.pdf cat 1-45 output out1_45.pdf
pdftk 123.pdf cat 46-90 output out46_90.pdf
等等
pdftk A=in.pdf cat A2-20 output out.pdf
(2)将多个pdf合并
pdftk A=in1.pdf B=in2.pdf cat A1 B2-20even output out.pdf
(3)移除pdf中的某一页
pdftk in.pdf cat A1-12 A14-end output out1.pdf

二十二、进程查找ps

ps -ef | grep libreoffice查找libreoffice的所有进程,包括父进程和子进程。

二十三、查看系统版本

(1)cat /proc/version
(2)uname -a
(3)cat /etc/issue
(4)lsb_release -a

二十四、查看Linux硬盘是ssd还是hdd

(1)cat /sys/block/*/queue/rotational
判断cat /sys/block//queue/rotational的返回值(其中为你的硬盘设备名称,例如sda等等),如果返回1则表示磁盘可旋转,那么就是HDD了;反之,如果返回0,则表示磁盘不可以旋转,那么就有可能是SSD了。
(2)lsblk
使用lsblk命令进行判断,参数-d表示显示设备名称,参数-o表示仅显示特定的列。

二十五、Linux下查看nvidia的GPU使用情况和内存使用情况

(1)显示GPU使用情况
nvidia-smi
(2)周期性输出GPU使用情况
watch -n 10 nvidia-smi 每隔10秒显示一次显存情况
(3)显示cpu使用情况
top
参考:https://blog.csdn.net/jasonzzj/article/details/52649174
https://blog.csdn.net/daiyudong2020/article/details/52760993

二十六、Linux查看物理CPU个数、核数、逻辑CPU个数

总核数 = 物理CPU个数 X 每颗物理CPU的核数
总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数
(1)查看物理CPU个数
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
(2)查看每个物理CPU中core的个数(即核数)
cat /proc/cpuinfo| grep "cpu cores"| uniq
(3)查看逻辑CPU的个数
cat /proc/cpuinfo| grep "processor"| wc -l

 类似资料: