Mr.张小白(第五天:Linux学习点滴)

一、Linux 文件操作

1.1 Linux ls 命令

Linux ls(英文全拼: list directory contents)命令用于显示指定工作目录下之内容(列出目前工作目录所含的文件及子目录)。

语法

 ls [-alrtAFR] [name...]

参数 :

-a 显示所有文件及目录 (. 开头的隐藏文件也会列出)
-d 只列出目录(不递归列出目录内的文件)。
-l 以长格式显示文件和目录信息,包括权限、所有者、大小、创建时间等。
-r 倒序显示文件和目录。
-t 将按照修改时间排序,最新的文件在最前面。
-A 同 -a ,但不列出 "." (目前目录)".." (父目录)
-F 在列出的文件名称后加一符号;例如可执行档则加 "*", 目录则加 "/"
-R 递归显示目录中的所有文件和子目录。

注意事项

当文件名包含空格、特殊字符或者开始字符为破折号时,可以使用反斜杠(\)进行转义,或者使用引号将文件名括起来。

ls 命令还可以使用通配符进行模式匹配,例如 * 表示匹配任意字符,? 表示匹配一个字符,[...] 表示匹配指定范围内的字符。

1.2 Linux ls -l 命令

语法

 ls -l

示例
在这里插入图片描述
参数表示
在使用 ls -l 命令时,第一列的字符表示文件或目录的类型和权限。其中第一个字符表示文件类型,例如:

- 表示普通文件
d 表示目录
l 表示符号链接
c 表示字符设备文件
b 表示块设备文件
s 表示套接字文件
p 表示管道文件

在使用 ls -l 命令时,第一列的其余 9 个字符表示文件或目录的访问权限,分别对应三个字符一组的 rwx 权限。例如:

r 表示读取权限
w 表示写入权限
x 表示执行权限
- 表示没有对应权限

前三个字符表示所有者的权限,中间三个字符表示所属组的权限,后三个字符表示其他用户的权限。

1.3 Linux ln 命令

Linux ln(英文全拼:link files)命令是一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接。

当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在 其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。

语法:

 ln [参数]		[源文件或目录]		[目标文件或目录]
	[-bdfinsvF] [-S backup-suffix] 	[-V {numbered,existing,simple}]
	[--help] 	[--version] 		[--]

参数选项

必要参数:

--backup[=CONTROL] 备份已存在的目标文件
-b 类似 --backup ,但不接受参数
-d 允许超级用户制作目录的硬链接
-f 强制执行
-i 交互模式,文件存在则提示用户是否覆盖
-n 把符号链接视为一般目录
-s 软链接(符号链接)
-v 显示详细的处理过程

选择参数:

-S "-S<字尾备份字符串> ""--suffix=<字尾备份字符串>"
-V "-V<备份方式>""--version-control=<备份方式>"
--help 显示帮助信息
--version 显示版本信息

连接方式

Linux文件系统中,有所谓的链接(link),我们可以将其视为档案的别名,而链接又可分为两种 : 硬链接(hard link)与软链接(symbolic link),硬链接的意思是一个档案可以有多个名称,而软链接的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。
软连接(快捷方式)

1.软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式
2.软链接可以 跨文件系统 ,硬链接不可以
3.软链接可以对一个不存在的文件名进行链接
4.软链接可以对目录进行链接

硬连接(起小名)

1.硬链接,以文件副本的形式存在。但不占用实际空间。
2.不允许给目录创建硬链接
3.硬链接只有在同一个文件系统中才能创建

在这里插入图片描述

1.4 Linux stat 命令

显示该文件(目录)本身属性值
在这里插入图片描述

语法:

stat [文件或目录]

示例
在这里插入图片描述
参数说明

文件:		文件名
大小:		该文件内容大小
块:		该文件物理大小(每个文件最小块大小为81块为0.5k)
硬链接:		该文件的名字个数
访问时间:	程序最后一次运行的时间
修改时间:	文件内容最后一次修改的时间
变更时间:	文件最后一次改动的时间
创建时间:	文件创建的时间

二、Linux 查看磁盘空间

在这里插入图片描述
Linux 查看磁盘空间可以使用 dfdu 命令。

2.1 df 命令

df 以磁盘分区为单位查看文件系统,可以获取硬盘被占用了多少空间,目前还剩下多少空间等信息。
示例
在这里插入图片描述
参数说明:

选项:
Filesystem:	文件系统
Size: 			分区大小
Used: 			已使用容量
Avail:			还可以使用的容量
Use%: 			已用百分比
Mounted on: 	挂载点 

相关命令

df -hl				查看磁盘剩余空间
df -h				查看每个根路径的分区大小
du -sh [目录名]		返回该目录的大小
du -sm [文件夹]		返回该文件夹总M数
du -h [目录名]		查看指定文件夹下的所有文件大小(包含子文件夹)

2.2 du 命令

du 的英文原义为 disk usage,含义为显示磁盘空间的使用情况,用于查看当前目录的总大小。
查看当前目录大小
在这里插入图片描述

查看指定文件所占空间
在这里插入图片描述
显示目录及目录下各文件大小
在这里插入图片描述

参数说明:

-s:对每个Names参数只给出占用的数据块总数。
-a:递归地显示指定目录中各文件及子目录中各文件占用的数据块数。若既不指定-s,也不指定-a,则只显示Names中的每一个目录及其中的各子目录所占的磁盘块数。
-b:以字节为单位列出磁盘空间使用情况(系统默认以k字节为单位)。
-k:以1024字节为单位列出磁盘空间使用情况。
-c:最后再加上一个总计(系统默认设置)。
-l:计算所有的文件大小,对硬链接文件,则计算多次。
-x:跳过在不同文件系统上的目录不予统计。
-h:以K,M,G为单位,提高信息的可读性。

三、Linux sudo apt 命令

apt(Advanced Packaging Tool)是一个在 Debian 和 Ubuntu 中的 Shell 前端软件包管理器。

apt 命令提供了查找、安装、升级、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。

apt 命令执行需要超级管理员权限(root)。

语法:

 apt [options] [command] [package ...]

参数说明:

options:可选,选项包括 -h(帮助),-y(当安装过程提示选择全部为"yes"),-q(不显示安装的过程)等等。
command:要进行的操作。
package:安装的包名。

常用命令:

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									列出所有已安装的包的版本信息

说明

如过不太记得完整的包名,我们可以只输入前半部分的包名,然后按下 Tab 键,会列出相关的包名;

如果需要设置指定版本,语法格式如下:

sudo apt install <package_name>=<version_number>

四、Linux ifconfig 命令

Linux ifconfig命令用于显示或设置网络设备。

ifconfig可设置网络设备的状态,或是显示目前的设置。

语法:

ifconfig [网络设备][down up -allmulti -arp -promisc][add<地址>][del<地址>][<hw<网络设备类型><硬件地址>][io_addr<I/O地址>][irq<IRQ地址>][media<网络媒介类型>][mem_start<内存地址>][metric<数目>][mtu<字节>][netmask<子网掩码>][tunnel<地址>][-broadcast<地址>][-pointopoint<地址>][IP地址]

参数说明:

add<地址> 						设置网络设备IPv6的IP地址。
del<地址> 						删除网络设备IPv6的IP地址。
down 							关闭指定的网络设备。
<hw<网络设备类型><硬件地址> 		设置网络设备的类型与硬件地址。
io_addr<I/O地址> 				设置网络设备的I/O地址。
irq<IRQ地址> 					设置网络设备的IRQ。
media<网络媒介类型> 				设置网络设备的媒介类型。
mem_start<内存地址> 				设置网络设备在主内存所占用的起始地址。
metric<数目> 					指定在计算数据包的转送次数时,所要加上的数目。
mtu<字节> 						设置网络设备的MTU。
netmask<子网掩码> 				设置网络设备的子网掩码。
tunnel<地址> 					建立IPv4与IPv6之间的隧道通信地址。
up 								启动指定的网络设备。
-broadcast<地址> 				将要送往指定地址的数据包当成广播数据包来处理。
-pointopoint<地址> 				与指定地址的网络设备建立直接连线,此模式具有保密功能。
-promisc 						关闭或启动指定网络设备的promiscuous模式。
[IP地址] 						指定网络设备的IP地址。
[网络设备] 						指定网络设备的名称。

常用命令:

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									列出所有已安装的包的版本信息

实例
显示网络设备信息
在这里插入图片描述
启动关闭指定网卡

# ifconfig eth0 down
# ifconfig eth0 up

为网卡配置和删除IPv6地址

# ifconfig eth0 add 33ffe:3240:800:1005::2/ 64 //为网卡设置IPv6地址
# ifconfig eth0 del 33ffe:3240:800:1005::2/ 64 //为网卡删除IPv6地址

用ifconfig修改MAC地址

# ifconfig eth0 down //关闭网卡
# ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE //修改MAC地址
# ifconfig eth0 up //启动网卡
# ifconfig eth1 hw ether 00:1D:1C:1D:1E //关闭网卡并修改MAC地址 
# ifconfig eth1 up //启动网卡

配置IP地址

# ifconfig eth0 192.168.1.56 
//给eth0网卡配置IP地址
# ifconfig eth0 192.168.1.56 netmask 255.255.255.0 
// 给eth0网卡配置IP地址,并加上子掩码
# ifconfig eth0 192.168.1.56 netmask 255.255.255.0 broadcast 192.168.1.255
// 给eth0网卡配置IP地址,加上子掩码,加上个广播地址

启用和关闭ARP协议

# ifconfig eth0 arp  //开启
# ifconfig eth0 -arp  //关闭

设置最大传输单元

# ifconfig eth0 mtu 1500 
//设置能通过的最大数据包大小为 1500 bytes

五、Ubuntu 网络配置文件

IP地址配置文件、主机名称配置文件、DNS配置文件

/etc/network/interfaces

六、Linux ps 命令

Linux ps (英文全拼:process status)命令用于显示当前进程的状态,类似于 windows 的任务管理器。

语法:

ps [options] [--help]

参数说明:

ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
-A 	列出所有的进程
-e	显示所有进程。
-f	全格式显示。
-w 	显示加宽可以显示较多的资讯
-au 显示较详细的资讯
-aux 显示所有包含其他使用者的进程
-ajx 查看父进程ID,进程ID,进程组ID,会话ID

在这里插入图片描述
参数介绍:
在这里插入图片描述

USER: 进程的拥有者。这通常是运行该进程的用户帐户的名称。
PID: 进程ID。每个进程都有一个唯一的ID,用于标识该进程。
%CPU: 该进程占用的CPU使用率百分比。
%MEM: 该进程占用的物理内存使用率百分比。
VSZ: 虚拟内存大小,单位是KB。这表示进程使用的虚拟内存量。
RSS: 常驻集大小,单位是KB。这表示进程在物理内存中占用的固定大小。
TTY: 终端的次要装置号码 (minor device number of tty)
STAT: 该行程的状态:
		D: 无法中断的休眠状态 (通常 IO 的进程)
		R: 正在执行中
		S: 静止状态
		T: 暂停执行
		Z: 不存在但暂时无法消除
		W: 没有足够的记忆体分页可分配
		<: 高优先序的行程
		N: 低优先序的行程
		L: 有记忆体分页分配并锁在记忆体内 (实时系统或捱A I/O)
START: 行程开始时间
TIME: 执行的时间
COMMAND:所执行的指令

七、Linux 三种流

Linux 操作系统常用的三种流:

0		标准输入流	(stdin: standard input,)

1		标准输出流	(stdout: standard output)

2		标准错误流	(stderr: standard error)

7.1 重定向

在Linux中,标准输入流默认来自键盘输入,标准输出流和标准错误流默认发送到屏幕。在必要的时候,可以对修改输入流的来源、修改输出流的目的,这就是重定向。
常用的重定向的符号:

>: 将标准输出流重定向到文件(清空文件后写入)。
>>:将标准输出流重定向到文件(追加写入)。
<:将文件作为命令的标准输入流。

7.2 管道符

管道符**“|”**可以把一个程序的标准输出流作为另外一个程序的标准输入流,即前一个程序的输出作为后一个程序的输入。
示例
在没有使用管道符的时候,获取可以登录shell的用户数量可以分为以下3步:
1、匹配/etc/passwd文件中包含“/bin/bash”字符串(即可以登录shell的用户)的行,并写入到文件a.txt中:

grep "/bin/bash" /etc/passwd > a.txt

2、用wc -l a.txt命令统计a.txt文件中的行数。

wc -l a.txt 

3、删除a.txt文件。

rm a.txt

如果使用管道符,只需要一行命令:

grep "/bin/bash"  /etc/passwd | wc -l

首先,grep读取/etc/passwd文件,匹配并输出包含/bin/bash的行,输出内容作为wc命令的输入;
最后,wc -l命令统计输入的行数,并最终输出到屏幕上。

  • 11
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值