Linux命令

Linux命令

一、文件管理

1、文件处理

1.1 创建目录

递归创建多级目录

mkdir -p /a/b/c

1.2 touch命令

用于创建文件,注意文件的大小是零,因为touch命令只创建一个空文件

1.3 cp命令

复制文件
cp命令需要两个参数-源对象和目标对象
cp source destination
当source和destination参数都是文件名时,cp命令将源文件复制成一个新文件,并且以destination命名。

询问目标文件是否存在

cp -i test_one test_two

复制文件到目录Documents中,且和源文件同名

cp -i test_one /home/Documents/

注意:在目标目录名尾部加上了一个正斜线(/),这表明Documents是目录而非文件。有助于明确目的,而且在复制单个文件时非常重要。如果没有使用正斜线,子目录/home/Documents又不存在,就会有麻烦。在这种情况下,试图将一个文件复制到Documents子目录反而会创建一个名为Documents的文件,连错误消息都不会显示!

复制整个目录的内容

cp -R Scripts/ Mod_Scripts

注意:目录Mod_Scripts并不存在。它随着cp -R命令被创建,整个Scripts目录中的内容都被复制到其中

1.4 链接文件

链接文件是Linux文件系统的一个优势。如需要在系统上维护同一文件的两份或多份副本,除了保存多份单独的物理文件副本之外,还可以采用保存一份物理文件副本和多个虚拟副本的方法。这种虚拟的副本就称为链接。链接是目录中指向文件真实位置的占位符。在Linux中有两种不同类型的文件链接:1、符号链接(软链接);2、硬链接。

符号链接(软链接)是一个文件,它指向存放在虚拟目录结构中某个地方的另一个文件。这两个通过符号链接在一起的文件,彼此的内容并不相同。
要为一个文件创建符号链接,原始文件必须事先存在。然后可以使用ln命令以及-s选项来
创建符号链接。

创建data_file的符号链接

ln -s target sl_data_file   #target最好写绝对路径

echo "hello">>1.txt
ln -s /home/cai/1.txt soft_link.txt    #创建软链接
ls -l soft_link.txt
lrwxrwxrwx 1 cai cai 15 7月  19 14:41 soft_link.txt -> /home/cai/1.txt
cat soft_link.txt
hello

符号链接的文件大小与数据文件的文件大小不同。sl_data_file仅仅只是指向target而已。它们的内容并不相同,是两个完全不同的文件。
文件或目录的inode编号是一个用于标识的唯一数字,这个数字由内核分配给文件系统中的每一个对象。要查看文件或目录的inode编号,可以给ls命令加入-i参数。
查看数据文件和链接文件的inode

ls -i *data_file

硬链接会创建独立的虚拟文件,其中包含了原始文件的信息及位置。但是它们从根本上而言
是同一个文件。引用硬链接文件等同于引用了源文件。要创建硬链接,原始文件也必须事先存在,
只不过这次使用ln命令时不再需要加入额外的参数了。

ln target hl_code_file

echo "hard link test">>pptxt

ln ./pptxt ppp
sudo rm -rf *txt
cat ppp
hard link test

注意:带有硬链接的文件共享inode编号(即删除原来的文件,还可以通过创造出来的硬链接访问原有文件的信息)

只能对处于同一存储媒体的文件创建硬链接。要想在不同存储媒体之间创建链接,只能使用符号链接。

复制链接文件的时候一定要小心。如果使用cp命令复制一个文件,而该文件又已经被链接到了另一个源文件上,那么你得到的其实是源文件的一个副本。这很容易让人犯晕。用不着复制链接文件,可以创建原始文件的另一个链接。同一个文件拥有多个链接,这完全没有问题。但是,千万别创建软链接文件的软链接。这会形成混乱的链接链,不仅容易断裂,还会造成各种麻烦。

1.5 重命名文件

mv命令可以将文件和目录移动到另一个位置或重新命名。
重命名fall文件

mv fall fzll

移动fall文件,并修改为fzll

mv /home/christine/picture/fzll /home/christine/fall

1.6 删除文件

rm -i fall

1.7 显示当前工作目录的路径

pwd是"print working directory"的缩写,其功能是用于显示当前工作目录的路径,即显示所在位置的绝对路径。

2、查看文件内容

2.1 cat命令

cat主要有三大功能:
1、一次显示整个文件

cat filename

2、从键盘创建一个文件

cat > filename

3、将几个文件合并为一个文件:

cat file1 file2 > file

例子:

(1)把 log2012.log 的文件内容加上行号后输入 log2013.log 这个文件里

cat -n log2012.log log2013.log

(2)把 log2012.log 和 log2013.log 的文件内容加上行号(空白行不加)之后将内容附加到 log.log 里

cat  -b log2012.log log2013.log log.log

2.2 less命令

more能使用的四个选项less都能使用,less和more的区别在于less在 显示文件内容的时候支持查找关键词

-i 忽略搜索时的大小写
-N 显示每行的行号
b 向后翻一页
/字符串:向下搜寻子串的功能
?子串:向上搜寻子串的功能

2.3 more命令

more命令是分页工具

2.4 head命令

head命令,顾名思义,会显示文件开头那些行的内容。

2.5 tail命令

用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。

查看末尾两行

tail -n 2 filename

-f参数 它允许你在其他进程使用该文件时查看文件的内容。tail命令会保持活动状态,并不断显示添加到文件中的内容。这是实时监测系统日志的绝妙方式。

2.6 file命令

查看文件类型

file filename

3、文档搜索

3.1 根据路径和条件搜索指定文件

find是根据给定的路径和条件查找相关文件或目录,可以使用的参数很多,并且支持正则表达式,结合管道符能够实现更加复杂的功能。find通常进行的是从根目录(/)开始全盘搜索,对于服务器负载较高的情况,建议不要在高峰时期使用find命令的模糊搜索,会相对消耗较多的系统资源。

find / -name *.conf   #全盘搜索系统中所有以.conf结尾的文件 路径 /  指定名字搜索

find /etc -size +1M  #在/etc目录搜索所有大约1M大小的文件   路径/etc 指定大小搜索

find /home -user linuxprobe  #在/home目录中搜索所有属于指定用户的文件  路径/home  指定用户搜索

find /var/log -iname "*.log" #在/var/log目录下搜索指定后缀的文件,后缀不需要大小写  

find /var/log ! -name "*.log" #在/var/log目录下搜索所有后缀不是.log的文件

find / -type d -perm 1777    #全盘搜索系统中所有类型为目录,且权限为1777的目录文件  路径 / 指定权限搜索

匹配符

“*” 匹配0到任意字符
“ ?” 匹配单个字符
“[] ” [list] 匹配 list 中的任意单⼀字符,例如:[abcd]匹配abcd中任何⼀个 字符[!list] 匹配 除list 中的任意单⼀字符以外的字符。等价[^abcd] [c1-c2] : 匹配 c1-c2 中的任意单⼀字符 如:[0-9] [a-z] 注意:[]只能⽤来找⽂件
“{…}” 表示⽣成序列. 以逗号分隔,且不能有空格 例如:

touch file{1..10}.txt #批量创建10个⽂件名为file1.txt,...file10.txt

如果我们的⽂件名包含了通配符或shell中的特殊字符⽐如!,$,空格等,可以 使⽤反斜线来引⽤特殊字符比如

rm \!*, #删除名为!*的⽂件

按照文件名来搜索文件

locate [选项] 文件名

locate mkdir    #模糊查询
/bin/mkdir
/snap/core/13425/bin/mkdir
/snap/core/13425/usr/lib/klibc/bin/mkdir
/snap/core18/2409/bin/mkdir
/snap/core20/1518/usr/bin/mkdir
/usr/bin/gvfs-mkdir
/usr/lib/klibc/bin/mkdir
/usr/share/man/man1/gvfs-mkdir.1.gz
/usr/share/man/man1/mkdir.1.gz

注意:新增的文件无法locate,使用updatedb更新对应库的文件

查找二进制命令、源文件和帮助文档的位置

whereis ls
ls: /bin/ls /usr/share/man/man1/ls.1.g

4、文档编辑

4.1 vim

vim有三种模式:插入模式、命令模式、底线命令模式。

移动光标:
gg 移动光标到第一行
G 移到光标最后一行
:n 移动光标到第n行
$ 移动到 光标到当前行的行尾
0(数字)移到光标到当前的行首

查找字符串:
/string 从光标所在处向后寻找"string"字符串,按n可往下寻找,按N向上查找

替换
:s/old/new 替换当前行的字符串
:n,m s/old/new/g 替换从n到m行里所有的old
:%s/old/new/g 替换所有的old

5、权限管理

改变文件的组

chgrp taget_group filename

改变文件的主

chown taget_own filename

改变文件的读、写、执行权限

chmod 数字/字母 filename

read:4
write:2
execute:1
-:0

二、字符处理

排序数据

sort命令是对数据进行排序的。

要对前面提到的密码文件/etc/passwd根据用户ID进行数值排序

sort -t ':' -k 3 -n /etc/psswd  #以“:”分割,“3”第三位 以数据排序

du -sh *| sort -nr  #目录下的哪些文件占用空间最多

搜索数据

grep命令会在输入或指定的文件中查找包含匹配指定模式的字符的行。gerp的输出就是包含了匹配模式的行。

grep three file1 #在文件file1中搜索匹配模式three的文本

grep -v t file1 #反向搜索(输出不匹配该模式的行) 可加-v参数

grep -n t file1 #显示匹配模式的行所在的行号,可加-n参数

grep -c t file1 #只要知道有多少含有匹配的模式  可用-c参数

grep -e t -e f file1 #指定多个匹配模式,可用-e参数来指定每个模式 输出含有字符t或字符f的所有行

grep [tf] file1 #正则表达式,搜索包含t或f字符的匹配

三、磁盘管理

3.1 显示磁盘空间使用情况

有时候你需要知道在某个设备上还有多少磁盘空间。df命令可以让你很方便地查看所有已挂载磁盘的使用情况。
在这里插入图片描述
df命令会显示每个有数据的已挂载文件系统。
Filesystem 设备的设备文件位置;
1k-blocks:能容纳多少个1024字节大小的块;
Used:已用了多少个1024字节大小的块;
Available:还有多少个1024字节大小的块可用;
Use%:已用空间所占的比例;
Mounted on 设备挂载到了哪个挂载点上。

备注:Linux系统后台一直有进程来处理文件或使用文件。df命令的输出值显示的是Linu系统认为的当前值。有可能系统上有运行的进程已经创建或删除了某个文件,但尚未释放文件。这个值是不会算进闲置空间的。

2、通过df命令很容易发现哪个磁盘的存储空间快没了。系统管理员面临的下一个问题是,发生这种情况时要怎么办。
du命令可以显示某个特定目录(默认情况下是当前目录)的磁盘使用情况。这一方法可用来快速判断系统上某个目录下是不是有超大文件。默认情况下,du命令会显示当前目录下所有的文件、目录和子目录的磁盘使用情况,它会以磁盘块为单位来表明每个文件或目录占用了多大存储空间。
下面是能让du命令用起来更方便的几个命令行参数。
-c:显示所有已列出文件总的大小。
-h:按用户易读的格式输出大小,即用K替代千字节,用M替代兆字节,用G替代吉字
节。
-s:显示每个输出参数的总计。

以易读的容量格式显示指定目录内总文件的大小信息:

du -sh /etc

在这里插入图片描述

3.2 管理磁盘分区

fdisk

3.3 查看系统的磁盘使用情况

lsblk

3.4 显示与设定硬盘参数

hdparm

3.5 扩展卷组设备

vgextend

四、网络通讯

4.1 安全的远程连接服务器

ssh

4.2 显示网络状态

netstat用来打印Linux中网络系统的状态信息,可让你得知整个Linux系统的网络情况

netstat -at  #列出所有tcp端口

在这里插入图片描述

netstat -au   #列出所有udp端口

在这里插入图片描述

4.3 动态获取或释放IP地址

dhclient

4.4 测试主机间网络连通性

ping -c 1 www.baidu.com   #ping一次

4.5 显示或设置网络设备参数信息

ifconfig是查看和临时修改IP地址命令

ifconfig ens33 up   #启动网卡ens33
ifconfig ens33 down #关闭网卡ens33

ifconfig ens33 193.168.44.3 #修改IP地址及时生效

#永久修改ip地址
vim /etc/network/interfaces

服务启动与关闭命令

service
service --status-all
service [服务名称] [start|stop|restart|status]

五、系统管理

5.1 rpm软件包管理器

rpm

5.2 动态查看内存的使用情况

free -h

在这里插入图片描述

free -s 1  #一秒刷新下内存使用情况

在这里插入图片描述

5.3 初始化X-window系统

startx

5.4 显示进程状态

ps是"process status"的缩写,其功能是用于显示当前系统的进程状态。只能显示某个特定时间点的信息
经常会与kill命令搭配使用来中断和删除不必要的服务进程,避免服务器的资源浪费。

ps -e  #显示所有的进程

在这里插入图片描述

ps -f   #显示完整格式的输出

在这里插入图片描述

ps -ef  #系统上运行的所有进程

在这里插入图片描述
UID:启动这些进程的用户
PID:进程的进程ID
PPID:父进程的进程号(如果该进程是由另一个进程启动的)
C:进程生命周期中的CPU利用率
STIME:进程启动时的系统时间
TTY:进程启动是的终端设备
TIME:运行进程需要的累计CPU时间
CMD:启动的程序名称

top能够实时显示进程信息,观察频繁进换出的内存的进程趋势。
输出的第一部分显示的系统概况:第一行显示了当前时间、系统的运行时间、登录的用户数以及系统的平均负载。
平均负载有3个值:最近1分钟的、最近5分钟的和最近15的平均负载。值越大说明系统的负载越高。由于进程短期的突发性活动,出现最近1分钟的高负载值也很常见,但如果近15分钟内的平均负载都很高,就说明系统可能有问题。
第二行显示了进程概要信息:top命令的输出中将进程叫做任务(task):有多少进程处在运行、休眠、停止或僵化状态(僵化状态是指进程完成了,但父进程没有响应)。
第三行显示了CPU的概要信息。top根据进程的属主(用户还是系统)和进程的状态(运行、空闲还是等待)将CPU利用率分成几类输出。
最后两行说明了系统内存的状态。第四行说的是系统的物理内存:总共有多少内存,当前用了多少,还有多少空闲。
第五行说的是同样信息,不过是针对系统交换空间(如果分配了的话)的状态而言的
在这里插入图片描述
PID:进程的ID
USER:进程属主的名字
PR:进程的优先级
NI:进程的谦让度值
VIRT:进程占用的虚拟内存总量
RES:进程占用的物理内存总量
SHR:进程的其他进程共享的内存总量
S:进程的状态(D代表可中断的休眠状态,R代表在运行状态,S代表休眠状态,T代表跟踪状态或停止状态,Z代表僵化状态)
%CPU:进程使用的CPU时间比例
%MEM:进程使用的内存占可用内存的比例
TIME+:自进程启动到目前为止的CPU时间总量
COMMAND:进程所对应的命令行名称,也就是启动的程序名。
默认情况下,top命令在启动时会按照%CPU值对进程排序。可以在top运行时使用多种交互
命令重新排序。每个交互式命令都是单字符,在top命令运行时键入可改变top的行为。键入f允许你选择对输出进行排序的字段,键入d允许你修改轮询间隔。键入q可以退出top。用户在top命令的输出上有很大的控制权。用这个工具就能经常找出占用系统大部分资源的罪魁祸首。当然了,一旦找到,下一步就是结束这些进程。

杀死进程

kill

显示计算机及操作系统的信息

uname

uname
Linux

显示或修改计算机主机名

hostname

hostname
cai-virtual-machine

注意:修改计算机名必须是管理员才可以

查看电脑的cpu信息及内存信息

Linux系统中的**/proc**是虚拟文件系统,其中许多文件都保存的是系统运行状态和相关信息

cat /proc/cpuinfo  #查看cpu信息
cat /proc/meminfo  #查看内存信息
cat /proc/version  #查看Linux的版本信息

六、备份压缩

6.1 压缩文件

zip

zip -r backup.zip /etc  #将指定目录及其内全部文件都打包成zip格式压缩包

解压缩 unzip
-d 指定压缩位置
zipinfo 查看压缩信息

6.3 压缩和解压文件

gzip是Linux上最流行的压缩工具。
-r 压缩目录
-d 解压缩
-v 显示压缩信息
Linux上最广泛使用的归档工具是tar命令

tar -zcvf test.tar test/ test2/  #创建了名为test.tar.gz的压缩文件,含有test和test2目录内容。
tar -tf test.tar               #列出tar文件test.tar的内容(但并不提取文件)
tar -xvf test.tar              #从tar文件test.tar中提取内容

tar -zxvf filename.tgz         #文件以.tgz结尾   gzip压缩过的tar文件可以命令解压

七、设备管理

7.1 把文件系统挂载到目录

Linux上用来挂载媒体的命令叫作mount。默认情况下,mount命令会输出当前系统上挂载的设备列表。
mount命令提供如下四部分信息:
1、媒体的设备文件名
2、媒体挂载到虚拟目录的挂载点
3、文件系统类型
4、已挂载媒体的访问状态

mount -t type device directory   #手动挂载媒体设备
mount -t vfat /dev/sdb1 /meidia/disk #手动将U盘/dev/sdb1挂载到/meida/disk

umount命令支持通过设备文件或者是挂载点来指定要卸载的设备。如果有任何程序正在使用设备上的文件,系统就不会允许你卸载它。

umount [directory|device]
umount /home/rich/mnt    #

显示当前设备信息

lspci

建立设备

makedev

检测服务器硬件信息

sensors

设定键盘上方三个LED的状态

setleds

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值