一、Linux文件处理命令:
1、命令名称:ls(显示目录文件)
命令的格式:命令 【选项】【参数】
-a:显示所有文件,包括隐藏文件
-l:详细信息显示
-d:查看目录属性
-h:文件大小显示为常见单位
-i:查询文件的inode号
-R:递归显示目录及其子目录
-n:显示文件的UID和GID
2、命令名称:touch(创建空文件和更新修改和访问时间)
命令格式:touch 文件名
Linux文件命名规则:
1)、除了/之外,所有字符都合法
2)、有些字符最好不用
3)、避免使用.作为普通文件的开头。
4)、Linux严格区分大小写
5)、长度不能大于255字符
3、命令名称:mkdir(创建新目录)
命令格式: 【-选项】【参数】
-v:显示创建过程
-p:递归创建
3、命令名称:mkdir(创建新目录)
命令格式:命令:[-选项] [参数]
-v 显示创建过程
-p 递归创建
4、命令名称:cd(切换目录)
命令格式:命令 [-选项] [参数] 语法:cd 目录
cd ~ 进入当前用户的家目录
cd - 进入上次目录
cd .. 返回上一级目录
cd ../.. 返回上两级目录cd . 进入当前目录
5、命令名称:pwd(显示当前所在目录)
6、命令名称:tree(显示目录树)
命令格式:tree 目录
-d 只显示目录
(在centos7.x下需要安装后才可使用)
6.5、命令名称:pstree(查看进程树之间的关系)
格式:pstree [选项]
-A:进程树之间的链接以ASCII码字符链接。
-p:同时列出每个进程的PID。
-u:同时列出每个进程的所属账号名称。
7、命令名称:cp(复制、复制并改名)
命令格式:cp 源文件或目录 目标目录
-r 复制目录
-p 保留文件属性
-a 相当于-rp
8、命令名称:mv(剪切、改名)
9、命令名称:rm (删除)
-r 删除目录
-f 强制删除
10、命令名称:rmdir(删除空目录)
-p 递归删除空目录
-v 显示指令执行过程
11、命令名称:cat(显示文件内容)
命令格式:cat 文件名
-n 列出行号
cat 显示多个文件内容
cat 将多个文件合并(按照文件先后顺序)
(如文件超过一页内容后只能显示最后一页的内容)
12、命令名称:more(分页显示文件内容)
b 向上翻页(打开文件时使用) 空格 向下翻页
Enter 换行q或Q 退出
13、命令名称:less(分页显示文件内容)
命令格式:less 文件名
显示文件内容的时候支持关键词查找。
14、查看文件首部指定行:head
-n 数字 #查看文件指定首部n行。
15、查看文件指定尾行:tail
-n 数字 #查看文件尾行。
-f #持续显示文件变化情况。
16、命令名称:ln(生成链接文件)
-s 创建符号链接
文件系统:
1.block:文件系统中存储数据的最小单元,ext4、xfs等文件系统中,创建时默认4k,分为存储文件数据的data block和存储目录数据的directory block。
2.inode:又称“索引节点”,每一个inode对应一个文件或目录,记录了文件的大小、所占用的
block以及目录的directory block信息。
3.Inode Bitmap:翻译成中文就是“inode位图”,用二进制的方式记录了inode的使用情况。
4.Block Bitmap:翻译成中文就是“块位图”,同Inode Bitmap,用二进制方式记录了块的使用情况。
二、权限管理命令:
-rw-r--r-- 1 root root 08-11 01:45 aa.txt 权限位是十位
第一位:代表文件类型
- 普通文件d 目录文件l 链接文件
b 块设备文件
c 字符设备文件s 套接字
p 管道
其余九位为权限: r w x r w x r w x
读 写 执行 读 写 执行 读 写 执行4 2 1 4 2 1 4 2 1
文件所有者(u) 文件所属组(g) 其他用户(o)other
1、命令名称:chmod(修改文件的权限)
命令格式: chmod u+x 文件
chmod g+w,o+w 文件chmod u=rwx 文件chmod 644 文件
2、命令名称:chown(修改文件或目录的所有者,所属组)
命令格式:chown user1 ss chown user1:user2 ss chown :user1 ss
3、命令名称:chgrp(改变文件或目录的所属组)
命令格式:chgrp 用户组 文件或目录chgrp roushan ss
4、命令名称:umask(显示和设置掩码值)
对目录和文件生效,在默认掩码为0022下文件最大权限缺省为644,目录缺省最大权限为755.
777
-022
755
三、查找命令:
1、命令名称:which(查看命令文件位置和命令可能出现的别名)
2、whereis(查找命令及帮助文档所在位置)
3、locate(按照文件名查找,按照数据库查找) updatedb 强制更新数据库locate命令的使用实例:
# locate /etc/sh
搜索etc目录下所有以sh开头的文件。
在使用locate命令时,要使用绝对路径查询。
4、命令名称:find(搜索系统中符合条件的文件)
-name 根据文件名查找
通配符:* 任意多个字符
? 任意一个字符
[] 指范围值,外侧加引号
-size 根据大小查找
find ./ -size -10k 查找小于10k的文件或目录
find ./ -size -10M 查找小于10M的文件或目录find ./ -size +10G 查找大于10G的文件或目录
-user 根据所有者查找
find / -user root 查找根下所有root用户的文件
-group 根据所属组查找
find / -group root 查找根下所有root组的文件
-perm 根据文件权限查找find /boot -perm 644
-按时间查找
按天 ctime atime mtime 按分钟 cmin amin mmin
c change 表示属性被修改过:所有者、所属组、权限a access 被访问过(被查看过)
m modify 表示内容被修改过
find /etc -mmin -120 查找120分钟内内容被修改过的find /etc -ctime +7 查找七天之前属性被修改过的
-type 根据文件类型查找
例:-type f 二进制文件(普通文件)
-type l 软连接文件
-type d 目录
-逻辑连接符
-a (and 逻辑与)
-o (or 逻辑或)
例:find /etc -size +1k -a -size -10k #在etc目录小查找大于1k并且小于10k的文件
-命令执行连接符(对查找到的文件,进一步处理) find ... -exec 命令 {} \;
{}表示find查询的结果集
\是转义符,不使用命令别名,直接执行命令。
;分号是表示语句结束
转义符:在Linux中有个别名机制,如rm删除文件,执行的却是rm -i(用which rm 可以查看命令别名)使用rm删除文件前会提示确认信息,就因为rm -i 这个参数。如果想使用命令原意,可以在加
\转义。如:\rm tese.txt 不会提示,直接删除。
-inum 根据文件i节点查询
find ./ inum 231906 -exec rm {} \;
有一些文件的硬链接数量有很多,有相同的i节点,查找其中的一个文件的i节点号,一次性删除。
xargs命令:把前一个命令输出的结果当成多个参数。例:
find / -name "aaa*" | xargs rm -rf
- grep “字符串” 文件名(在文件内查找符合条件的字符串行)
命令所在路径:/bin/grep
-v 反向选择
-i 忽略大小写
- 管道符
命令1 | 命令2 将命令1 的标准输出作为命令2的标准输入
四.帮助命令:
- man 命令 查看命令的帮助
命令名称:man man -f 命令
#查看命令有哪些级别的帮助,在使用命令前要执行mandb生成man缓存信息,否则命令执行不成功。
图形界面因为安装原因所以比字符界面man级别更多。查看指定级别:
man 级别 命令
man的级别:
1:查看命令的帮助
2:查看可被内核调用的函数的帮助
3:查看函数和函数库的帮助
4:查看特殊文件的帮助(主要是/dev目录下的文件)
5:查看配置文件的帮助
6:查看游戏的帮助
7:查看其他杂项的帮助
8:查看系统管理员可用命令的帮助
9:查看和内核相关文件的帮助
- help 内部命令 查看内部的帮助信息
type 命令 的方式查看命令是否为内部命令。内部命令如cd、pwd、echo等。
外部命令如:ls、vi等命令。
- type查看命令类型(内建命令/外部命令)
[root@localhost ~]# type cd cd is a shell builtin [root@localhost ~]# type ls
ls is aliased to `ls --color=auto'
- 命令 --help 查看命令的常见选项
- info 命令 #比man更详细的帮助命令。回车:进入子帮助页面(带有*号标记) u:进入上层页面
n:进入下一个帮助小节p:进入上一个帮助小节q:退出
五.网络命令
- ping 测试网络连通性
-c 指定ping次数
- ifconfig 查询本机网络信息
ifconfig命令使用方法
注意:下面操作使用root用户(动态修改) 命令:ifconfig
作用:用来配置网络或显示当前网络接口的状态[root@localhost ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.12.18 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::c09d:975d:89cd:fd3f prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:02:83:db txqueuelen 1000 (Ethernet)
RX packets 3255 bytes 4458479 (4.2 MiB)
RX errors 0 dropped 26 overruns 0 frame 0
TX packets 1130 bytes 81645 (79.7 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
上图信息大概说明: 第一行:
UP-->网卡开启状态BROADCAST-->广播
RUNNING-->网线处理连接状态MULTICAST-->支持组播
mtu 1500-->(Maximum Transmission Unit)最大传输单元大小为1500字节第二行:该网卡的IP地址,子网掩码,广播地址
第三行:IPV6的配置信息第四行:网卡的MAC地址
ether表示连接类型为以太网txqueuelen 1000 --》传输队列的长度
第五六行:网卡接收数据包的统计信息和接收错误的统计信息第七八行:网卡发送数据包的统计信息和发送错误的统计信息临时修改IP地址
例1:临时修改网卡IP地址
ifconfig 网卡名称 IP地址 直接修改网卡的IP地址,重启失效
[root@localhost Desktop]# ifconfig ens33
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.12.18 netmask 255.255.255.0 broadcast 192.168.1.255
[root@localhost Desktop]# ifconfig ens33 192.168.12.110 netmask 255.255.255.0
说明:修改后当前终端会终断,需要重新使用新的IP地址进行连接[root@localhost Desktop]# ifconfig ens33
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.12.110 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::20c:29ff:fee8:ac4 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:e8:0a:c4 txqueuelen 1000 (Ethernet)
RX packets 2028 bytes 198715 (194.0 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 385 bytes 51073 (49.8 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 [root@localhost Desktop]# systemctl restart network //CENTOS7的网卡重启方法[root@localhost Desktop]# service network restart //CENTOS6的网卡重启方法 例2: 添加多个临时IP地址
ifconfig 网卡名称:0 第一个IP地址 (netmask 子网掩码) 增加一个IP
ifconfig 网卡名称:1 第二个IP地址 (netmask 子网掩码) 增加一个IP
[root@localhost ~]# ifconfig ens33:0 192.168.12.110 netmask 255.255.255.0 up [root@localhost ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.12.18 netmask 255.255.255.0 broadcast 192.168.1.255
ens33:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.12.110 netmask 255.255.255.0 broadcast 192.168.1.255
ether 00:0c:29:e8:0a:c4 txqueuelen 1000 (Ethernet) 删除临时IP
[root@localhost ~]# ifconfig ens33:0 del 192.168.12.110 [root@localhost ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.12.110 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::20c:29ff:fee8:ac4 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:e8:0a:c4 txqueuelen 1000 (Ethe rnet)
RX packets 3056 bytes 311813 (304.5 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 961 bytes 145297 (141.8 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 ens33:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.111 netmask 255.255.255.0 broadcast 192.168.1.255
ether 00:0c:29:e8:0a:c4 txqueuelen 1000 (Ethernet) 例3:添加真实网卡:
nmcli connection add con-name 网卡名称 type 接口类型 ifname 网卡名称nmcli connection add con-name ens37 type ethernet ifname ens37
例4:停止或启动某网卡centos6:
[root@localhost ~]# if down eth0 [root@localhost ~]# if up eth0 centos7:
[root@localhost ~]# nmcli connection load /etc/sysconfig/network-scripts/ifcfg-ens33 #重载配置文件。
[root@localhost ~]# nmcli connection down ens33 #停止。
[root@localhost ~]# nmcli connection up ens33 #启动。
- w 查询当前登陆服务器的用户
第一行:当前时间,持续运行时间,登陆用户数量,1分钟,5分钟,15分钟 前的平均负载第二行:用户名 TTY:登陆终端 FROM:来源IP 登陆时间
IDLE:用户闲置时间
JCPU:所有进程占用CPU时间PCPU:当前进程占用CPU时间
WHAT:用户正在进行的操作
- who 查询登录用户
- last 列出登陆系统的相关信息
第一列:用户名 第二列:终端位置
第三列:登录IP或内核版本第四列:开始时间
第五列:结束时间第六列:持续时间
- lastlog 显示所有账号最后一次的登陆时间
- write 用户名 给在在线用户写信
write root tty1 “发送内容” ctrl+d 保存,发送
- wall 对所有在线用户广播
wall 字符串 或 wall enter(回车) 字符串 ctrl+d
- mail 邮件命令
发信:
mail 用户名标题
内容
ctrl+d 结束 发送收信:
h 列出邮件列表q 退出
- netstat 查看网络连接状态
常见端口:
20 21 ftp服务 文件共享
22 ssh服务 安全的远程连接23 telnet
25 smtp:简单邮件传输协议 发信
110 pop3:邮局协议 收信
80 http超文本传输协议3306 mysql端口
3389 Windows终端端口
/etc/service 所有常见的端口
netstat -tlun 查看本机所有监听的端口
-t tcp协议
-u udp协议
-l 监听
-n 以IP和端口的形式显示信息
-a 显示所有选项
-p 显示建立相关连接程序名例:
列出所有端口:netstat -a | more
列出所有tcp端口:netstat -at 列出所有udp端口:netstat -au 只显示监听端口:netstat -l
只列出所有监听tcp端口:netstat -lt 只列出所有监听udp端口:netstat -lu
六.关机和重启命令
- 关机
poweroff 掉电关机init 0 以0级别运行
shutdown -h now now也可以替换为具体时间
shutdown +5 “system will shutdown after 5 minutes” #设定5分钟后关机,发给所有用户关机提示信息告知登录用户。
此命令执行五分钟后,登录的用户将退出登录,但系统并不会关闭。需要自行shutdown -h now进行关机(C7此命令直接关闭系统)。shutdown +2 -h "system will shutdown after 1 minutes" #如果想要关闭系统并提示用户即将关机信息那么要执行此命令
- 重启
shutdown -r now reboot
init 6
- 数据同步
sync
在Linux/Unix系统中,在文件或数据处理过程中一般先放到内存缓冲区中,等到适当的时候再写入磁盘,以提高系统的运行效率。sync命令则可用来强制将内存缓冲区中的数据立即写入磁盘中。用户通常不需执行sync命令,系统会自动将缓冲区的数据写 入磁盘。只有用户需要非正常关机时,才需手
动执行sync命令。
七.挂载命令
Linux系统一切设备皆文件。比如第一张光盘,会被自动识别为/dev/sr0(设备文件的命名方式是主设备号加次设备号。主设备号说明设备类型,次设备号说明是第几个设备),但并此时的光盘还不能正常的读取。需要先进行挂载而后才能进行正常的读取。需要指定挂载点并执行挂载命令。(不同的光盘之间需要重新挂载并指定挂载点才能正常使用)
1.mount 查询系统中已经挂载的设备
常见的存储设备:
/dev/sda1 第一个scsi硬盘的第一个分区
/dev/cdrom 光盘
/dev/sr0 光盘
常用挂载点见目录挂载格式:
mount -t 文件系统类型 -o 特殊选项 设备文件名 挂载点
-t 文件系统:加入文件系统类型来指定挂载的类型,可以ext3,ext4,iso9660等文件系统。
-o 特殊选项:可以指定挂载的额外选项,比如读写权限,同步异步等,如果不指定则默认值
生效。
参数 | 说明 |
atime/noatim e | 更新访问时间/不更新访问时间。访问分区文件时,是否更新文件的访问时间, 默认为更新。 |
async/sync | 异步/同步,默认为异步。 |
auto/noauto | 自动/手动,mount -a 命令执行时, 是否会自动安装/etc/fstab文件内容挂载默认自动。 |
defaults | 定义默认值,相当于rw,suid,dev,exec,auto,nouser,async这七个选项。 |
exec/noexec | 执行/不执行,设定是否允许在文件系统中执行可执行文件,默认是exec允许。 |
remount | 重新挂载已经挂载的文件系统,一般用于指定修改特殊权限。 |
rw/ro | 读写/只读,文件系统挂载时,是否具有读写权限,默认是rw。 |
suid/nosuid | 具有/不具有SUID权限,设定文件系统是有具有SUID和SGID的权限,默认有。 |
user/nouser | 允许/不允许普通用户挂载,设定文件系统是否允许普通用户挂载,默认是不允许, 只有root可以挂载分区。 |
usrquota | 写入代表文件系统支持用户磁盘配额,默认不支持。 |
grpquota | 写入代表文件系统支持组磁盘配额,默认不支持。 |
例1:mount 查看挂载信息
/dev/sda1 on /boot type ext4 (rw)
我们查看到/boot分区已经被挂载,而且采用的defaults选项,那么我 们重新挂载分区,并采用noexec 权限禁止执行文件执行,看看会出现什么 情况(注意不要用/分区做试验,不然系统命令也不能执行了)
[root@localhost ~]# mount -o remount,noexec /boot [root@localhost ~]# cp /usr/bin/ls /boot [root@localhost ~]# /boot/ls
-bash: /boot/ls: 权限不够
[root@localhost ~]# mount -o remount,exec /boot
例2:挂载硬盘分区,移动硬盘[root@localhost ~]# mkdir /mnt/disk1 #创建挂载点
[root@localhost ~]# mount /dev/sdb1 /mnt/disk1 #挂载硬盘分区或者移动硬盘
例3:挂载光盘
[root@localhost ~]# mount -t iso9660 /dev/sr0 /mnt/cdrom
#/mnt/cdrom必须是已存在的目录
例4:挂载U盘
[root@localhost ~]# fdisk -l #查看当前系统下的存储设备,确认U盘的设备名称[root@localhost ~]# mount -t vfat /dev/sdb1 /mnt/usb #fat32格式的U盘挂载方式
-t vfat fat32
-t fat fat16
注:Linux默认情况不识别NTFS格式
例5:挂载.iso文件
mount -o loop /root/CentOS-7-x86_64-DVD-1810.iso /mnt/ 加入loop选项让文件以块设备的方式进行挂载。
例6:卸载
umount 设备名称或挂载点#所有挂载的设备卸载方式都一样
例7:挂载NTFS格式
yum -y install epel-release yum -y install ntfs-3g
mount -t ntfs-3g /dev/sdb1 /media/ ls /media
挂载注意事项:
同一个文件系统不应该重复挂载在不同的挂载点。同一个目录不应该重复挂载多个文件系统。
作为挂载点,一定要是空白目录。
八.打包压缩
- tar:文件的归档(打包)和压缩
归档和压缩文件的好处:节约硬盘的资源 ,加快文件传输速率用法:tar [选项] 压缩后生成文件 打包文件
参数:
-c:创建文件
-x:提取 解压还原文件
-v:显示执行详细过程
-f:指定备份文件
-t:列出压缩包中包括哪些文件,不解包,查看包中的内容
-C:指定解压位置
例1:对/boot/grub 目录打包并解包。
[root@localhost ~]# tar -cvf ./grub.tar /boot/grub/ 或:
[root@localhost ~]# tar cvf ./grub.tar /boot/grub/ tar: 从成员名中删除开头的“/”
/boot/grub/
/boot/grub/splash.xpm.gz [root@localhost ~]# ls ./gurb.tar
[root@localhost ~]# tar -xvf ./grub.tar #解压缩boot/grub/
boot/grub/splash.xpm.gz
[root@localhost ~]# ls ./boot #得到 boot 目录例 1:指定解压位置 -C [root@localhost ~]# tar xvf ./grub.tar.bz2 -C /opt/
tar: 从成员名中删除开头的“/”
/boot/grub/
/boot/grub/splash.xpm.gz [root@localhost ~]# ls /opt/ boot
例 2:把两个目录或目录+文件打包成一个软件包: [root@localhost ~]# mkdir ./back [root@localhost ~]# cp /etc/passwd back/
[root@localhost ~]# tar -cvf back.tar /boot/grub back/ /etc/passwd tar: 从成员名中删除开头的“/”
/boot/grub/
/boot/grub/splash.xpm.gz back/
back/passwd
/etc/passwd
例3:在打包过程中跳过某个或多个文件。
- -exclude:指定跳过的文件。[root@localhost ~]# cp /etc/passwd ./back/
[root@localhost ~]# cp -a /etc/fstab ./back/
[root@localhost ~]# cp -a /etc/shadow ./back/ [root@localhost ~]# cp -a /etc/group ./back/ #创建目录和目录下文件。
[root@localhost ~]# tar exclude /root/back/group -cvf /root/back.tar /root/back/
#在打包过程中指定跳过group文件。
例 4:不解包,查看 tar 中的内容: [root@localhost ~]# tar -tvf /grub.tar
tar 归档+压缩:
常用参数:
-z:以 gzip 方式压缩 扩展名: tar.gz
-j:以 bz2 方式压缩的 扩展名:tar.bz2
-J:以 xz 方式压缩 扩展名:tar.xz
例 1:创建.tar.gz 包
[root@localhost ~]# tar -cvf /etc.tar /etc
[root@localhost test]# tar -zcvf /etc.tar.gz /etc
[root@localhost test]# tar -zxvf /etc.tar.gz
例 2:创建.tar.bz2 包
[root@localhost ~]# tar -jcvf /etc.tar.bz2 /etc
[root@localhost ~]# tar -jxvf ./etc.tar.bz2 #解压缩
[root@localhost ~]# tar jxvf ./etc.tar.bz2 C /opt #解压到 opt 目录下
例 3:创建.tar.xz 包
[root@localhost ~]# tar -Jcvf /etc.tar.xz /etc
[root@localhost ~]# tar -xvf /etc.tar.xz
对比三种压缩方式后压缩比例: [root@localhost ~]# ll -h /etc.tar*
- zip 管理压缩文件
zip 软件包解压缩命令:
zip 是压缩程序,unzip 是解压程序。例 1:压缩文件:
例 2:将所有.jpg 的文件压缩成一个 zip 包[root@localhost ~]# zip /all.zip *.jpg
例 3:压缩一个目录
[root@localhost ~]# zip -r /grub.zip /boot/grub
解压缩:
-d:指定解压目录。
[root@localhost ~]# unzip /grub.zip
[root@localhost ~]# unzip ./grub.zip d /opt/
- file 命令
作用:确定文件类型
用法: file /etc/passwd
注:linux 系统不根据后缀名识别文件类型用 file 命令查看文件的类型。[root@localhost ~]# file /etc/passwd
/etc/passwd: ASCII text