目录
一、Linux系统基本结构
二、Linux常用命令
1.系统维护类
ls (list 显示当前目录下文件和目录 ls -l 详细显示 =ll )
pwd
cd
date
passwd(用来更改使用者的密码)
man
who、who am i
last
ps(用于显示当前进程 (process) 的状态)
2.文件管理
touch
stat
rm
more
mv
cat
head
tail
grep
find
ln
4.磁盘管理
df
du
fsck
sync
fdisk
gdisk
mkfs
mount
umount
5.网络基础
ifconfig
nmcli
nmtui
6.用户管理
useradd
usermod
userdel
groupadd
groupmod
groupdel
id
1.Linux系统安装及分区
系统安装:https://editor.csdn.net/md/?articleId=88316390
2.Linux文件系统结构
pwd Print Working Directory ( pwd ,显示当前路径 ) pwd -P 显示出确实的路径,而非使用连接(link)路径
( cd /usr/local/ 进入目录 /usr/local/ , cd ../ 返回到上一级目录, ./ 当前目录 ../父目录 - 代表前一个工作目录 ~代表[目前使用者身份]所在的家目录 ~account代表account这个使用者的家目录)针对 cd 的使用方法,如果仅输入 cd 时,代表的就是『 cd ~ 』
date 显示日期的指令:
必要参数:
-d 删除密码
-f 强制执行
-k 更新只能发送在过期之后
-l 停止账号使用
-S 显示密码信息
-u 启用已被停止的账户
-x 设置密码的有效期
-g 修改群组密码
-i 过期后停止用户账号
选择参数:
–help 显示帮助信息
–version 显示版本信息
man 命令:查看该命令的基础用法
who 要看目前有谁在在线:
whoami 显示的是当前“操作用户”的用户名
who am i显示的是“登录用户”的用户名(用户登录时用过的id)
Linux last 命令用于显示用户最近登录信息。
使用权限:所有使用者。
linux的touch命令不常用,一般在使用make的时候可能会用到,用来修改文件时间戳,或者新建一个不存在的文件。
命令格式:
touch [选项]... 文件...
命令参数:
-a 或--time=atime或--time=access或--time=use 只更改存取时间。
-c 或--no-create 不建立任何文档。
-d 使用指定的日期时间,而非现在的时间。
-f 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。
-m 或--time=mtime或--time=modify 只更改变动时间。
-r 把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。
-t 使用指定的日期时间,而非现在的时间。
Linux stat命令用于显示inode内容。
stat以文字的格式来显示inode的内容
stat [文件或目录]
rm命令用来删除文件。
选项 |
说明 |
-i |
互动:提示确认删除 |
-f |
强制:代替互动模式,不提示确认删除 |
-v |
详细:显示文件的删除进度 |
-r |
递归:将删除某个目录以及其中所有的文件和子目录 |
rm t.txt 该命令删除文件t.txt
more file1 查看一个长文件的内容
less file1 类似于 'more' 命令,但是它允许在文件中和正向操作一样的反向操作
mv命令用来移动文件。
选项 |
说明 |
-i |
互动:如果选择的文件会覆盖目标中的文件,他会提示确认 |
-f |
强制:它会超越互动模式,不提示地移动文件,属于很危险的选项 |
-v |
详细:显示文件的移动进度 |
cat命令可以用来合并文件,也可以用来在屏幕上显示整个文件的内容。
cat snow.txt 该命令显示文件snow.txt的内容,ctrl+D退出cat。
head命令可以用来查看文件的开头部分。此命令的格式是:
head 文件名
默认设置,它只查看文件的前10行。但可以通过指定一个数字选项来改变要显示的行数,命令如下:
head –20 文件名
这个命令将会查看文件的前20行。
tail命令和head命令恰恰相反。使用tail命令,可以查看文件结尾的10行。这有助于查看日志文件的最后10行来阅读重要的系统信息。还可以使用tail观察日志文件更新的过程。使用-f选项,tail会自动实时地把打开文件中的新信息显示到屏幕上。
文本过滤:grep可以根据指定的字符串,对文件的每一行进行搜索,如果找到了这个字符串,就输出该行的内容
查找文件里的字符和字符串:
查找文件里有字符h的字符串:grep h 文件名
匹配整个单词:grep -w 单词 文件名
匹配以q开始的行:grep ^[q] 文件名
匹配以q结束的行:grep q$ 文件名
匹配以数字开头的行:grep ^[0-9] 文件名
匹配以q或者f开头的行:grep ^[qf] 文件名
匹配以#号开头的行:grep "^#"
过滤空白行:grep "^$"
如果要明确搜索子目录:grep -r h ./*
忽略子目录:grep -d skip h ./*
搜索时忽略大小写:grep -i
搜索时显示没有匹配到的行:grep -v
搜索时显示匹配到的那一行以及下2行:grep -A 2
搜索时显示匹配到的那一行以及上2行:grep -B 2
搜索时显示匹配到的那一行以及上下2行:grep -C 2
find命令文件查询常用的参数及意义有以下几个:
find -name:直接根据文件名字来查找,比如,find / -name a.txt:在根目录下查找 a.txt文件
find -perm:根据文件权限来查找,比如:find / -perm 777,:查找根目录下权限为 77(rwx-rwx-rwx)的文件
find -mtine -n(+n):根据文件的更改时间来查找,其中-n代表n天之内的文件,+n 代表n天之前的文件,比如:find / -mtime -1:查找1天内修改过的文件
find -type:查找某一类型的文件,后带一些参数:
-d:目录
-p:管道文件
-f:普通文件
-i:符号链接文件
用find命令查找到了文件,输出的方式有2种:
1.find -print:标准输出,比如:find / ‘*.NCT’-print >a.txt,代表将根目录下所
的以nct命名的文件list输入到a.txt中
2.find -exec:对于find命令找到的文件执行该参数所给出的shell命令,比如:
find -name test.txt -exec rm -f test.tx {} \;找到test并删除此文
件,该命令一定要注意{}和\之间和空格,不要遗漏最后的“;”
Linux ln命令是一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接。
当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在 其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。
语法:
ln [参数][源文件或目录][目标文件或目录]
其中参数的格式为
[-bdfinsvF] [-S backup-suffix] [-V {numbered,existing,simple}]
[--help] [--version] [--]
命令功能 :
Linux文件系统中,有所谓的链接(link),我们可以将其视为档案的别名,而链接又可分为两种 : 硬链接(hard link)与软链接(symbolic link),硬链接的意思是一个档案可以有多个名称,而软链接的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。硬链接是存在同一个文件系统中,而软链接却可以跨越不同的文件系统。
3.压缩与解压缩
linux上常见的压缩命令就是gzip与bzip2
压缩文件gzip: gzip 文件名(原文件不存在)
gzip -c 文件名1 >文件名1.gz (保留原文件)
解压文件: gzip -d 文件名.gz(不保留)
gunzip 文件名.gz
gzip -cd 文件名2.gz >文件名2(保留原文件)
查看压缩过的文本文件内容:zcat 文件名.gz
压缩文件bzip2(用法同gzip):bzip2 文件名
bzip2 -c 文件名1 >文件名1.bz2(保留原文件)
解压文件: bzip2 -d 文件名.bz2(不保留原文件)
bunzip2 文件名.bz2
bzip -cd 文件名2.bz2 > 文件名2(保留原文件)
查看压缩过的文件内容:bzcat 文件名.bz2
文件的归档即打包文件:tar [主选项+辅选项] 文件或目录
主选项:只能出现一个主选项
c--- create 创建一个新归档文件
x--- 从归档文件中提取文件出来
t--- 列出归档文件的内容,查看已经打包了哪些文件,重点在查看文件名
辅选项
z---通过gzip的支持进行压缩/解压缩,一般格式为*.tar.gz
j--- 通过bzip2的支持进行压缩/解压缩,一般格式为*.tar.bz2
v--- 归档或解包过程中显示被打包的文件
C---这个参数用在解压缩时,若要在特定目录解压缩,可以使用这个参数
f--- 输出结果到文件,必须写该选项
--exclude FILE:在打包的过程中,不要将 FILE 打包! --排除某个文件打包
两种压缩方式:jcvf zcvf
打包、压缩文件1和2并重命名:tar zcvf 新文件名 文件名1 文件名2 文件名3 文件名4
解压:tar xvf 文件名 该命令会自动判断归档文件的压缩格式,自动调用相关程序进行解压缩
解压到指定路径:tar xvf 文件名 -C 目标路径
tar -xjv -f filename.tar.bz2 -C 欲解压缩的目录
查看已压缩文件:tar tf 文件名
Linux df命令用于显示目前在Linux系统上的文件系统的磁盘使用情况统计。
语法
df [选项]... [FILE]...
Linux du命令用于显示目录或文件的大小。
du会显示指定的目录或文件所占用的磁盘空间。
语法
du [-abcDhHklmsSx][-L <符号连接>][-X <文件>][--block-size][--exclude=<目录或文件>][--max-depth=<目录层数>][--help][--version][目录或文件]
参数说明:
Linux fsck命令用于 检查与修复 Linux 档案系统,可以同时检查一个或多个 Linux 档案系统。
语法
fsck [-sACVRP] [-t fstype] [--] [fsck-options] filesys [...]
参数 :
Linux sync命令用于数据同步,sync命令是在关闭Linux系统时使用的。
Linux 系统中欲写入硬盘的资料有的时候会了效率起见,会写到 filesystem buffer 中,这个 buffer 是一块记忆体空间,如果欲写入硬盘的资料存于此 buffer 中,而系统又突然断电的话,那么资料就会流失了,sync 指令会将存于 buffer 中的资料强制写入硬盘中。
语法
sync
Linux fdisk是一个创建和维护分区表的程序,它兼容DOS类型的分区表、BSD或者SUN类型的磁盘列表。
语法
fdisk [必要参数][选择参数]
必要参数:
选择参数:
菜单操作说明
gdisk -l [设备]
gdisk又叫GPT fdisk,算是fdisk的延伸吧,主要使用的是GPT分区类型,用来划分容量大于2T的硬盘。
扩展1:分区类型GPT和MBR。GPT最大支持18EB(1EB=1024PB,1PB=1024TB),MBR最大支持2TB。
扩展2(了解):GPT,全局唯一标识分区表(GUID Partition Table),它使用128位GUID来唯一标识每个磁盘和分区。与MBR存在单一故障点不同,GPT提供分区表信息的冗余,一个在磁盘头部,一个在磁盘尾部;它通过CRC校验来检测GPT头和分区表中错误与损坏。默认一个硬盘支持128个分区(可以更多)。
(1).选项
只有一个-l选项,列出一个磁盘的所有分区表
(2).操作菜单说明
主要用到的几个和fdisk差不多:n、p、q、w。
完整的菜单如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
使用方式 : mkfs [-V] [-t fstype] [fs-options] filesys [blocks]
Linux mkfs命令用于在特定的分区上建立 linux 文件系统
参数 :
Linux mount命令是经常会使用到的命令,它用于挂载Linux系统外的文件。
语法
mount [-hV] mount -a [-fFnrsvw] [-t vfstype] mount [-fnrsvw] [-o options [,...]] device | dir mount [-fnrsvw] [-t vfstype] [-o options] device dir
参数说明:
Linux umount命令用于卸除文件系统。
umount可卸除目前挂在Linux目录中的文件系统。
语法
umount [-ahnrvV][-t <文件系统类型>][文件系统]
参数:
Linux ifconfig命令用于显示或设置网络设备。
ifconfig可设置网络设备的状态,或是显示目前的设置。
nmcli [OBJECT参数] [显示参数]
OBJECT参数
g[eneral] NetworkManager's general status and operations
n[etworking] overall networking control
r[adio] NetworkManager radio switches
c[onnection] NetworkManager's connections
d[evice] devices managed by NetworkManager
a[gent] NetworkManager secret agent or polkit agent
m[onitor] monitor NetworkManager changes
显示参数
show 显示详细信息
status 显示简略信息
查看接口信息
#简略信息
nmcli device status
#详细信息
nmcli device show
#接口的详细信息
nmcli device show interface-name
查看连接信息
#详细信息
nmcli connection show
#某个接口的详细连接信息
nmcli connection show inteface-name
启动停止接口
#启动接口
nmcli connection up connection-name
nmcli device connect interface-name
#停止接口
nmcli connection down connection-name
nmcli device disconnect interface-name
P.S:建议使用 nmcli device disconnect(connect) interface-name
因为使用该命令,在启动某个连接前或发生外部事件时不会自动连接
创建连接
#创建动态获取ip地址的连接,con-name是创建连接的名字,ifname是物理设备,网络接口
nmcli connection add type eth con-name connection-name ifname interface-name
例子:nmcli connection add type eth con-name dhcp-ens33 ifname ens33
#创建静态ip地址连接
nmcli connection add type eth con-name connection-name ifname interface-name ip4 address gw4 address
例子:nmcli connection add type eth con-name static-ens33 ifname ens33 ip4 192.168.1.115/24 gw4 192.168.1.1
修改ip地址
#修改命令
nmcli connection modify [--temporary] [id | uuid | path] ([+|-]. )+
例子:nmcli c mod static-eth1 ipv4.addr 172.16.60.20/24
nmcli c up static-eth1
修改连接是否自启
nmcli con mod ens33 connection.autoconnect no/on
配置连接的DNS
#设定单个DNS
nmcli connection modify connection-name ipv4.dns DNS1
#设定多个DNS
nmcli connection modify connection-name ipv4.dns DNS1 DNS2
例子:nmcli connection modify static-eth1 ipv4.dns 114.114.114.114
nmcli connection modify static-eth1 ipv4.dns 114.114.114.114 119.29.29.29
#添加某个连接的DNS,使用前缀 '+'
nmcli connection modify connection-name +ipv4.dns DNS3
例子:nmcli connection modify static-eth1 +ipv4.dns 192.168.1.1
nmcli c up static-eth1 //修改后需要重新激活连接
设置主机名
#查询当前主机名
nmcli general hostname
#修改主机名
nmcli general hostname new-hostname
#重启hostname(主机名)服务
systemctl restart systemd-hostnamed
图形化界面配置管理网络参数
useradd 用户名=adduser 用户名
添加用户并添加选项:useradd 用户名 -u uid号 -g gid号/组名 -G 附加组/组名 -c 备注 -s 指定shell -d 指定家目录
id 查看用户的uid、gid以及组
-c 改变用户的全名或者说描述名称
-d 改变用户的家目录
-e 设置用户账号的过期时间
-g 改变用户的gid
-G 将用户添加入一个新组
-s 改变用户的默认shell
-l 改变用户用户名
-u 改变用户的uid
-L 锁住密码,使账号不能用
-U 为用户密码解锁
Linux userdel命令用于删除用户帐号。
userdel可删除用户帐号与相关的文件。若不加参数,则仅删除用户帐号,而不删除相关文件。
语法
userdel [-r][用户帐号]
参数说明:
添加组:groupadd -g gid 组名
需要更改群组的识别码或名称时,可用groupmod指令来完成这项工作。
语法
groupmod [-g <群组识别码> <-o>][-n <新群组名称>][群组名称]
参数:
inux groupdel命令用于删除群组。
需要从系统上删除群组时,可用groupdel(group delete)指令来完成这项工作。倘若该群组中仍包括某些用户,则必须先删除这些用户后,方能删除群组。
语法
groupdel [群组名称]
Linux id命令用于显示用户的ID,以及所属群组的ID。
id会显示用户以及所属群组的实际与有效ID。若两个ID相同,则仅显示实际ID。若仅指定用户名称,则显示目前用户的ID。
语法
id [-gGnru][--help][--version][用户名称]
参数说明:
7.软件管理
rpm
rpm -ivh package.rpm 安装一个rpm包
rpm -ivh --nodeeps package.rpm 安装一个rpm包而忽略依赖关系警告
rpm -U package.rpm 更新一个rpm包但不改变其配置文件
rpm -F package.rpm 更新一个确定已经安装的rpm包
rpm -e package_name.rpm 删除一个rpm包
rpm -qa 显示系统中所有已经安装的rpm包
rpm -qa | grep httpd 显示所有名称中包含 "httpd" 字样的rpm包
rpm -qi package_name 获取一个已安装包的特殊信息
rpm -qg "System Environment/Daemons" 显示一个组件的rpm包
rpm -ql package_name 显示一个已经安装的rpm包提供的文件列表
rpm -qc package_name 显示一个已经安装的rpm包提供的配置文件列表
rpm -q package_name --whatrequires 显示与一个rpm包存在依赖关系的列表
rpm -q package_name --whatprovides 显示一个rpm包所占的体积
rpm -q package_name --scripts 显示在安装/删除期间所执行的脚本l
rpm -q package_name --changelog 显示一个rpm包的修改历史
rpm -qf /etc/httpd/conf/httpd.conf 确认所给的文件由哪个rpm包所提供
rpm -qp package.rpm -l 显示由一个尚未安装的rpm包提供的文件列表
rpm --import /media/cdrom/RPM-GPG-KEY 导入公钥数字证书
rpm --checksig package.rpm 确认一个rpm包的完整性
rpm -qa gpg-pubkey 确认已安装的所有rpm包的完整性
rpm -V package_name 检查文件尺寸、 许可、类型、所有者、群组、MD5检查以及最后修改时间
rpm -Va 检查系统中所有已安装的rpm包- 小心使用
rpm -Vp package.rpm 确认一个rpm包还未安装
rpm2cpio package.rpm | cpio --extract --make-directories *bin* 从一个rpm包运行可执行文件
rpm -ivh /usr/src/redhat/RPMS/`arch`/package.rpm 从一个rpm源码安装一个构建好的包
rpmbuild --rebuild package_name.src.rpm 从一个rpm源码构建一个 rpm 包
yum
yum install package_name 下载并安装一个rpm包
yum localinstall package_name.rpm 将安装一个rpm包,使用你自己的软件仓库为你解决所有依赖关系
yum update package_name.rpm 更新当前系统中所有安装的rpm包
yum update package_name 更新一个rpm包
yum remove package_name 删除一个rpm包
yum list 列出当前系统中安装的所有包
yum search package_name 在rpm仓库中搜寻软件包
yum clean packages 清理rpm缓存删除下载的包
yum clean headers 删除所有头文件
yum clean all 删除所有缓存的包和头文件