Linux常用命令详解
目录
一、目录操作命令
1.1目录切换 cd
1.2.目录查看 ls
1.3.目录操作(增,删,改,查)
1.3.1目录新增 mkdir
1.3.2目录或者文件删除 rm
1.3.2.1删除文件
1.3.2.2删除目录
1.3.2.3全部删除
1.3.3修改目录 mv或者cp
1.3.3.1重命名目录
1.3.3.2剪切目录
1.3.3.3拷贝目录(-r递归)
1.3.4搜索目录 find
二、文件操作命令
2.1文件操作(增、删、改、查)
2.1.1文件新增 touch
2.1.2文件删除 rm
2.1.3修改文件 vi或者vim
2.1.3.1打开文件
2.1.3.2三种模式
2.1.4查看文件 cat tail more less
三、linux下启动和关闭nginx的操作
四、进程命令
4.1查看命令
五、运行jar文件
六.linux查看磁盘命令
七.linux查看磁盘iostat
八.linux命令进行安装包的压缩和解压缩,挂载等
8.1压缩,解压缩,打包tar命令
8.2挂载
8.2.1基本命令:mount [-l][-t ][-o ]
8.2.2常见选项
8.2.3常用命令
九.查看内存
十.查看防火墙
十一.dd命令
11.1dd介绍
11.2 dd的相关解释
11.3拷贝内存到硬盘上
11.4常用命令
11.4.1 创建指定大小的文件
11.4.2给磁盘分区做备份
11.4.2.1磁盘分区备份
11.4.2.2磁盘分区还原
11.4.3清空磁盘
11.4.4给磁盘做备份
11.4.4.1备份磁盘
11.4.4.2还原磁盘
11.4.5备份分区表
11.4.5.1备份分区表
11.4.5.2还原分区表
11.4.6给虚拟机创建一个空磁盘文件
11.4.6.1制作空文件
11.4.7linux下制造启动盘
十二.权限命令chmod
12.1 文件和目录权限概述
12.2使用chmod命令更改文件或者目录权限
12.2.1 使用数字形式修改权限
12.2.2 使用符号形式修改权限
12.2.3 使用符号形式和逻辑运算符修改权限
12.3 修改文件和目录权限示例
12.3.1 修改文件权限
12.3.2 修改目录权限
12.4. 总结
一、目录操作命令
1.1目录切换 cd
cd / | 切换到根路径 |
cd /usr | 切换到根目录下的usr文件夹 |
cd ../ | 切换到上一级目录 |
cd ~ | 切换到home目录下 |
cd - | 切换到上次访问的路径下 |
1.2.目录查看 ls
ls | 查看当前目录下所有的目录和文件 |
ls -a | 查看当前目录下所有的目录和文件(包括隐藏的文件) |
ls -l 或者ll | 列表查看当前目录下的所有的目录和文件 |
ls /dir | 查看指定目录下的文件或者文件夹 |
1.3.目录操作(增,删,改,查)
1.3.1目录新增 mkdir
mkdir aaa | 在当前目录下创建一个名为aaa 的目录 |
mkdir /usr/aaa | 在指定目录下创建一个名为aaa的目录 |
1.3.2目录或者文件删除 rm
1.3.2.1删除文件
rm 文件名 | 删除当前目录下的文件 |
rm -f 文件名 | 删除当前目录下的文件(不询问) |
1.3.2.2删除目录
rm -r 目录aaa | 递归删除当前目录下的aaa目录 |
rm -rf 目录aaa | 递归删除当前目录下的aaa目录(不询问) |
1.3.2.3全部删除
rm -rf * | 将当前目录下的所有的目录和文件全部删除 |
rm -rf /* | 将根目录下的所有目录和文件全部删除(自杀操作,不可用) |
1.3.3修改目录 mv或者cp
1.3.3.1重命名目录
mv 当前目录 新目录 | mv aaa bbb 将目录aaa改为bbb 也可以用于文件或者压缩包 |
1.3.3.2剪切目录
mv 目录名称 目录的新位置 | 将/usr/tmp目录下的aaa目录剪切到 /usr目录下面 mv /usr/tmp/aaa /usr |
1.3.3.3拷贝目录(-r递归)
cp -r 目录名称 目录拷贝的目标位置 | 将/usr/tmp目录下的aaa目录复制到 /usr目录下面 cp -r /usr/tmp/aaa /usr |
cp 文件名称 文件拷贝的目标位置 | 将/usr/tmp目录下的aaa文件复制到 /usr目录下面 cp /usr/tmp/aaa /usr |
scp -r 目录名称 目录拷贝的目标位置 | scp -r /data/dmbak/BACKUP_FILE dmdba@192.168.50.121:/data/dmbak |
scp -P port 目录名称 目录拷贝的目标位置 | scp -P 5237 /data/dmbak/BACKUP_FILE dmdba@192.168.50.121:/data/dmbak |
1.3.4搜索目录 find
find 目录 参数 文件名称 | find /usr/tmp -name 'a*' 查找/usr/tmp目录下的所有以a开头的目录或文件 |
二、文件操作命令
2.1文件操作(增、删、改、查)
2.1.1文件新增 touch
touch 文件名 | 在当前目录创建一个名为aa.txt的文件 touch aa.txt |
2.1.2文件删除 rm
rm -f 文件名 |
2.1.3修改文件 vi或者vim
2.1.3.1打开文件
vi 文件名或者vim 文件名 |
2.1.3.2三种模式
命令行模式 | 控制光标的移动 | ↑,↓,j |
查找 | /字符 | |
进入编辑模式 | i a o | |
粘贴复制一行 | 所需粘贴行开头yy 复制位置p | |
进入底行模式 | : | |
删除当前行 | dd | |
跳转到最后一行 | shift+g | |
跳转到某一行的最后 | shift+$ | |
跳转到某一行的开头 | shift+^ | |
编辑模式 | esc | 推出编辑模式到命令行模式 |
底行模式 | 退出编辑 | :q |
强制退出编辑 | :q! | |
保存并退出 | :wq |
2.1.4查看文件 cat tail more less
cat / etc/sudo.conf | 显示最后一屏内容 |
more / etc/sudo.conf | 可以显示百分比,回车可以向下一行,空格可以向下一页,q可以退出查看 |
less / etc/sudo.conf | 翻页查看,q结束 |
tail -10 / etc/sudo.conf | 指定行数或者动态查看,ctrl+c结束 |
三、linux下启动和关闭nginx的操作
1.找到nginx安装目录 | whereis nginx ---- /usr/local/nginx |
2.进入到安装目录中 | cd /usr/local/nginx/sbin |
3.启动nginx | ./nginx |
4.查看nginx状态 | ps -ef | grep nginx 出现master则启动成功 |
5.关闭nginx命令 | kill -9 8925(上边的进程号) |
6.停止nginx命令 | ./nginx -s stop |
7.重启nginx命令 | ./nginx -s reload |
四、进程命令
4.1查看命令
ps -ef | grep java | 查看java中所有的进程 |
kill -9 java | 杀死java进程 |
五、运行jar文件
java -jar xxxxx.jar | 当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出 |
java -jar xxxxx.jar & | //当前ssh窗口不被锁定,但是当窗口关闭时,程序中止运行。 |
nohup java -jar xxx.jar & | 不挂断运行命令,当账户退出或终端关闭时,程序仍然运行 |
nohup java -jar xxx.jar >aa.log | 指定输出日志文件,意思是不挂断运行命令,当账户退出或终端关闭时,程序仍然运行 |
六.linux查看磁盘命令
df -h | linux命令查看文件系统内的磁盘空间使用情况。可以显示每个挂载点的磁盘使用量,可用空间,已用空间以及文件系统的类型。使用df命令,可以加上不同的参数来显示不同的信息。使用df -h 命令可以以人类可读的方式显示磁盘使用情况。 |
du -h /path/to/directory | 用于估算文件或者目录的磁盘使用量。它可以递归的计算出目录下所有文件的大小,并显示出总大小,使用du命令时,可以加上不同的参数来显示不同的信息。使用du -h 可以以人类可读的方式显示磁盘使用量。 |
sudo fdisk -l | fdisk命令用于查看和管理磁盘分区,它可以显示磁盘的分区表信息,包括分区类型,起始扇区,结束扇区等。使用fdisk命令时,需要以root的 身份运行。 |
lsblk | 用于列出块设备的信息,包括磁盘,分区,逻辑卷等。它可以显示设备的名称,大小,挂载点等信息。 |
blkid /dev/sdal | 用于显示块设备的属性,包括设备的uuid,文件系统类型等。可以用来查找特定设备的信息。 |
七.linux查看磁盘iostat
linux命令中 iostat是i/o statistics(输入/输出统计)iostat对系统磁盘操作活动进行监视,它的特点是汇报磁盘活动统计情况,同时也会汇报出cpu的使用情况。同vmstat一样,iostat有一个弱点,不能对某个进程进行深入的分析,仅对系统的整体情况做分析,isstat属于sysstat软件包,
直接运行yml install sysstat 直接安装或者是运行apt-get install sysstat 直接安装。
1.命令格式:
iostat【参数】【时间】【次数】
2.命令功能:
通过iostat可以查看CPU,网卡,磁盘,tty设备,CD-ROM等等设备的活动情况,负载信息。
3.命令参数:
-c | 显示cpu使用情况 |
-d | 显示磁盘的使用情况 |
-k | 以kb为单位显示 |
-m | 以M为单位显示 |
-N | 显示磁盘队列(LVM)信息 |
-n | 显示NFS使用情况 |
-p | 显示磁盘和分区情况 |
-t | 显示终端和cpu的信息 |
-x | 显示详细信息 |
-v | 显示版本信息 |
4.使用实例:
示例一:显示所有设备的负载情况
命令:iostat
输出:
说明:
%user | CPU处在用户模式下的时间百分比 |
%nice | CPU处在带NICE值的用户模式下的时间百分比 |
%system | CPU处在系统模式下的时间百分比 |
%iowait | CPU等待输入输出完成时间的百分比 |
%steal | 管理程序维护另一个虚拟处理器时,虚拟CPU的无意识等待时间百分比 |
%idle | CPU空闲时间百分比 |
备注:如果%iowait的值过高,表示磁盘存在I/O瓶颈,%idle值高,表示CPU较空闲,如果%idle值高但系统响应慢时,有可能是CPU等待分配内存,此时应加大内存容量。%idle值如果持续低于10,那么系统的CPU处理能力相对较低,表明系统中最需要解决的资源是CPU.
示例二:定时显示所有信息
命令:iostat 2 3
输出:
说明:
每隔2秒刷新显示,且显示3次
示例三:显示指定磁盘的信息
命令:iostat -d sda1
输出:
说明:查看指定磁盘sda1的信息。(磁盘在/dev目录下)
tps | 该设备每秒的传输次数,一次传输意思是"一次I/O请求"多个逻辑请求可能会被合并为一次i/o请求,一次传输请求的大小是未知的 |
kB_read/s | 每秒从设备读取的数据量 |
KB_wrtn/s | 每秒从设备写入的数据量 |
kB_read | 读取的总数据量 |
kB_wrtn | 写入的总数据量 |
示例四:显示cpu信息
命令:iostat -c
输出:
八.linux命令进行安装包的压缩和解压缩,挂载等
8.1压缩,解压缩,打包tar命令
命令:tar 选项 包名 【参数】
参数:
选项 | 说明 |
-c | 创建新的备份文件 |
-x | 从备份文件中还原文件 |
-v | 显示命令执行过程 |
-f | 指定备份文件 |
-z | 打包完成后使用gzip命令将文件压缩 |
-j | 打包完成后使用bzip2命令将打包压缩 |
-p | 保留包文件原来的属性 |
sudo tar cvf aaa.tar aaa | 把aaa文件打包成aaa.tar |
sudo tar xvf aaa.tar | 将aaa.tar解包 |
sudo tar zcvf bbb.tar.gz bbb | 把文件bbb打包成bbb.tar.gz |
sudo tar zxvf bbb.tar.gz | 解包bbb.tar.gz |
sudo tar jcvf ddd.tar.bz2 ddd | 将文件ddd打包成ddd.tar.bz2 |
sudo tar jxvf ddd.tar.bz2 | 解包ddd.tar.bz2 |
8.2挂载
windows系统中磁盘分区后可以直接使用,但是linux系统中分区后,还需要格式化,以及挂载。所谓的挂载,就是指将目录作为入口,将磁盘分区中的数据全部放到以该目录为根节点的目录关系树中,这就相当于将文件系统和磁盘进行了链接,指定了某个分区中文件系统访问的位置。linux系统中根目录是整个磁盘访问的基点,因此,根目录必须要挂载到某个分区上。linux系统中通过mount和unmount命令实现分区的挂载和卸载。
8.2.1基本命令:mount [-l][-t ][-o ]
-l : 以列表的形式显示当前已挂载的文件系统
-t:指定要挂载的文件系统的类型。
ISO9660:光盘/光盘镜像
MS-DOS:DOS fat16 文件系统
VFAT:Windows 9x fat32文件系统
NTFS:Windows nt ntfs文件系统
SMBFS:Mount Windows文件网络共享
NFS:linux(unix)文件网络共享
-o: 指定挂载选项,比如读写权限,访问权限。
:指定要挂载的设备名称或者路径
:指定要挂载到的目录路径
8.2.2常见选项
mount支持多种选项,可以组合使用,常见选项:
ro:以只读的模式挂载文件系统
rw:以读写的模式挂载文件系统
remount:重新挂载一个已经挂载的文件系统,可以修改挂载选项
user:允许普通用户挂载文件系统。
nouser:只允许超级用户挂载文件系统。
exec:允许文件系统中执行可执行的文件
noexec:禁止在文件系统中执行可执行的文件
8.2.3常用命令
mount /dev/sdb2 /mnt | 将设备 dev/sdb2 挂载到mnt目录下 |
mount -l | 显示当前已挂载的文件系统 |
mount -o ro /dev/sdb2 /mnt | 以只读的形式 将设备 dev/sdb2 挂载到mnt目录下 |
mount -o remount,rw /dev/sdb2 /mnt | 重新挂载以读写的形式 将设备 dev/sdb2 挂载到mnt目录下 |
示例一:如何挂载NTFS格式的设备
安装ntfs -3g的软件包 | sudo apt-get install ntfs-3g |
创建一个用于挂载的目录 | sudo mkdir /mnt/ntfs-drive |
运行fdisk -l确定要挂载的磁盘名称 | sudo fdisk -l |
使用mount 将设备NTFS挂载到目录下 | sudo mount -t ntfs-3g /dev/sdb1 /mnt/ntfs-drive |
NTFS设备挂载需要注意:
1.挂载NTFS设备时通常需要root或者是sudo权限,所以执行的命令前要加sudo
2.挂载的设备在重启后不会自动挂载,如果想要重启后自动挂载的话,需要将挂载命令写到/etc/fstab文件下
3.在使用NTFS设备时,要注意文件权限和访问权限,确保数据的安全性和完整性。
示例二:如何挂载EX-FAT设备
安装软件包 | sudo apt-get install exfat-utils exfat fuse |
创建一个用于挂载的目录 | sudo mkdir /mnt/exfat |
运行fdisk -l确定要挂载的磁盘名称 | sudo fdisk -l |
使用mount 将设备exfat挂载到目录下 | sudo mount -t exfat /dev/sdb1 /mnt/exfat |
确认是否挂载成功 | mount | grep exfat |
卸载 | sudo umount /mnt/exfat 或者是 sudo umount -f /mnt/exfat |
九.查看内存
查看内存的命令free
free命令可以显示系统内存的使用情况,包括物理内存,交换分区,缓冲区和缓存。
参数:
-h | 以人类可读的方式显示信息,以kB,MB,GB |
-m | 以MB为单位显示信息 |
-g | 以GB为单位显示信息 |
-t | 显示总计信息 |
十.查看防火墙
查看防火墙状态 | systemctl status firewalld |
暂时关闭防火墙 | systemctl stop firewalld |
永久关闭防火墙 | systemctl disable firewalld |
重启防火墙 | systemctl enable firewalld |
十一.dd命令
11.1dd介绍
主要用于linux中读取,转换,并输出数据
注意:指定数字的地方若以下列字符结尾,则乘以响应的数字:b=512;c=1;k=1024;w=2
11.2 dd的相关解释
备份检测性能
if 代表输入文件。如果不指定 if,默认就会从 stdin 中读取输入。
of 代表输出文件。如果不指定 of,默认就会将 stdout 作为默认输出。
bs 代表字节为单位的块大小。
count 代表被复制的块数。
/dev/zero 是一个字符设备,会不断返回 0 值字节(\0)。
if=文件名:输入文件名,缺省为标准输入。即指定源文件。< if=input file >
of=文件名:输出文件名,缺省为标准输出。即指定目的文件。< of=output file >
ibs=bytes:一次读入bytes个字节,即指定一个块大小为bytes个字节。
obs=bytes:一次输出bytes个字节,即指定一个块大小为bytes个字节。
bs=bytes:read and write up to BYTES bytes at a time (default: 512); overrides ibs and obs。
cbs=bytes:一次转换bytes个字节,即指定转换缓冲区大小。
skip=blocks:从输入文件开头跳过blocks个块后再开始复制。
seek=blocks:从输出文件开头跳过blocks个块后再开始复制。
注意:通常只用当输出文件是磁盘或磁带时才有效,即备份到磁盘或磁带时才有效。
count=N : copy only N input blocks
conv=conversion:用指定的参数转换文件。
ascii:转换ebcdic为ascii
ebcdic:转换ascii为ebcdic
ibm:转换ascii为alternate ebcdic
block:把每一行转换为长度为cbs,不足部分用空格填充
unblock:使每一行的长度都为cbs,不足部分用空格填充
lcase:把大写字符转换为小写字符
ucase:把小写字符转换为大写字符
swab:交换输入的每对字节
noerror:出错时不停止
notrunc:不截短输出文件
sync:将每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐。
11.3拷贝内存到硬盘上
dd if= /dev/mem of =/root/min.bin bs=1024(指定块大小为1k)
11.4常用命令
11.4.1 创建指定大小的文件
[root@192 ~]# dd if=/dev/zero of=/tmp/1G.txt bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 31.19 s, 34.4 MB/s
11.4.2给磁盘分区做备份
11.4.2.1磁盘分区备份
dd if=/dev/sda1 of=/root/sda1.bak
11.4.2.2磁盘分区还原
dd if=/root/sda1.bak of=/dev/sda1
11.4.3清空磁盘
[root@192 ~]# dd if=/dev/zero of=/dev/sdb
dd: writing to ‘/dev/sdb’: No space left on device
41943041+0 records in
41943040+0 records out
21474836480 bytes (21 GB) copied, 172.229 s, 125 MB/s
11.4.4给磁盘做备份
11.4.4.1备份磁盘
[root@192 ~]# dd if=/dev/sda of=/dev/sdb
41943040+0 records in
41943040+0 records out
21474836480 bytes (21 GB) copied, 249.87 s, 85.9 MB/s
11.4.4.2还原磁盘
dd if=/dev/sdb of=/dev/sda
11.4.5备份分区表
11.4.5.1备份分区表
dd if=/dev/sda of=/root/mbr.bak bs=512 count=1
11.4.5.2还原分区表
dd if=/root/mbr.bak of=/dev/sda
11.4.6给虚拟机创建一个空磁盘文件
11.4.6.1制作空文件
[root@192 ~]# dd if=/dev/zero of=aabb.img bs=1M count=256
256+0 records in
256+0 records out
268435456 bytes (268 MB) copied, 0.132996 s, 2.0 GB/s
11.4.7linux下制造启动盘
dd if=boot.img of=/dev/fd0 bs=1440k
十二.权限命令chmod
12.1 文件和目录权限概述
在linux系统中,每个文件和目录都有一组权限,用于确定对他们的访问权限。
权限分为三个类别:用户(Owner),用户组(Group) 和其他用户(Others)
每个类别都有三个权限标志:
r(读取):允许读取文件的内容,查看目录中的文件列表
w(写入):允许修改文件的内容,创建,删除或者重命名目录中的文件。
x(执行):允许以可执行文件的形式运行文件或者进入目录。
权限标志可以用数字表示:
r:4
w:2
x:1
将数字相加,可以得到八进制的权限值。例如:
rwx:4+2+1(完全权限)
rw-:4+2(读写权限)
r--:4(只读权限)
12.2使用chmod命令更改文件或者目录权限
基本语法:
chmod [选项] 权限模式 文件/目录
选项:用于指定chmod命令的各种选项,例如递归修改权限,详细输出等等。
权限模式:用于指定要设置的权限模式,可以使用数字形式(例如755) 或者符号形式(u+rwx)
文件/目录:要修改权限的文件或者目录的路径
12.2.1 使用数字形式修改权限
使用数字形式,可以直接为文件和目录分配权限值。每个类别的权限使用三位数字表示。
以下是数字形式修改权限的示例:
chmod 755 file.txt:将file.txt文件的权限设置为rwxr-xr-x(所有者具有读、写和执行权限,组和其他用户具有读和执行权限)。
chmod 644 file.txt:将file.txt文件的权限设置为rw-r--r--(所有者具有读和写权限,组和其他用户只有读权限)。
chmod 700 directory:将directory目录的权限设置为rwx------(仅所有者具有读、写和执行权限)。
12.2.2 使用符号形式修改权限
使用符号形式,可以基于当前权限进行增加或减少。
以下是符号形式修改权限的示例:
`chmod u+r file
chmod u+r file.txt
将file.txt文件的权限添加了读取权限(r)给所有者(u)。
chmod g-w file.txt
从file.txt文件的权限中移除了写入权限(w)给组(g)。
chmod o+x directore
给directory目录添加了执行权限(x)给其他用户(o)。
12.2.3 使用符号形式和逻辑运算符修改权限
符号形式还支持逻辑运算符,可以同时进行多个权限的修改。
以下是逻辑运算符修改权限的示例:
chmod u=rw,g+r,o-rwx file.txt
设置file.txt文件的权限为:所有者(u)具有读写权限,组(g)具有读权限,其他用户(o)没有任何权限。
chmod u+w,g+x,o=rw directory设置directory目录的权限为:所有者(u)具有写权限,组(g)具有执行权限,其他用户(o)具有读写权限。
12.3 修改文件和目录权限示例
下面是一些示例,演示如何使用chmod命令修改文件和目录的权限。
12.3.1 修改文件权限
打开终端并执行以下命令:
chmod 644 file.txt
将file.txt文件的权限设置为rw-r--r--(所有者具有读和写权限,组和其他用户只有读权限)。
使用以下命令验证文件权限的更改:
ls -l file.txt
终端会显示文件的详细信息,包括权限。
12.3.2 修改目录权限
打开终端并执行以下命令:
chmod 755 directory
将directory目录的权限设置为rwxr-xr-x(所有者具有读、写和执行权限,组和其他用户具有读和执行权限)。
使用以下命令验证目录权限的更改:
ls -ld directory
终端会显示目录的详细信息,包括权限。
12.4. 总结
本文详细介绍了如何在Linux系统中更改文件和目录的权限。使用chmod命令,您可以通过数字形式或符号形式设置文件和目录的权限。确保正确设置文件和目录的权限可以保护您的数据安全,并确保只有授权用户能够访问和修改文件和目录。熟悉chmod命令的使用方法将帮助您更好地管理和保护您的系统和文件。
达梦数据库 - 新一代大型通用关系型数据库 | 达梦在线服务平台