1、系统的安装及分区
安装系统的条件:
- Windows64位操作系统
- 内存最少2G
- 关闭电脑上的360以及安全管家
- 进入BIOS开启电脑的虚拟化功能
安装的过程中分区的大小:
- /根分区:尽量大于20G
- /boot引导分区:不小于200M
- swap交换分区:根据实际情况给定
不同的分区的作用:
- /分区:用于存储系统文件
- swap:作为Linux的虚拟内存
- /boot:包含了操作系统的内核和启动系统过程中所用到的文件
2、文件系统结构
FHS定义了两层规范:
- 第一层:是/下面的各个目录应该要放什么文件数据;
- 第二层:是针对/usr及/var这两个目录的子目录来定义;
系统维护
3、Linux常用的命令
- 系统维护类
ls—list
ls—列出指定目录下的文件
ll—长列出当前目录下的文件的详细信息
ls -h -l—做单位转换(默认为字节)
ls-a—显示所用隐藏文件,包括.和…(.表示此目录,…表示上一级目录)
ls-A —列出隐藏文件,不包括.和…
ls-i —显示文件索引节点号(inode)。一个索引节点代表一个文件,在linux中保存在磁盘分区中的文件都给它分配一个编号,称为索引节点号inode。
4、文件类型
横杠- 普通文件,类似于Windows的记事本
d 目录文件,类似于文件夹
c 字符设备文件,串行端口设备,顺序读写,键盘
b 块设备文件,可供存储的接口设备,随机读写,硬盘
p 管道文件,用于进程间的通信
s 套接字文件,通常用于网络上的通信。可以启动一个程序来监听客户端的要求,客户端可以通过套接字来进行数据通信
l link,链接文件
在linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号inode。
(1)符号链接又叫软链接,和原文件不是一个文件。例如Windows的快捷方式,如果原始文件被删除,所有指向它的符号链接也就都被破坏了。符号链接记录的是目标的path。符号链接可以跨越文件系统,也可以为目录建立。软链接有自己的node,是linux特殊文件的一种,作为一个文件,它的数据是它所连接的文件的路径。
创建链接文件:ln -s 原文件 链接文件
(2)硬链接,只能引用同一文件系统中的文件。它引用的是文件在文件系统中的物理索引(也称为inode)。当移动或者删除原始文件时,硬链接不会被破坏,因为它所引用的是文件的物理数据而不是文件在文件结构中的位置。硬链接记录的是目标的inode。
创建硬链接: ln 原文件 新文件
5、pwd—查看当前位置的目录路径
6、date—查看Linux系统时间
- 更改日期的格式----月日时分年.秒
date -s “” ‘’
date -s 只有root才能设置,其它只能查看
date -s 20160813 日期为20160813,时间为00:00:00
date -s 01:01:01 设置具体时间,不会对日期做更改
date -s “01:01:01 2016-08-13″ 设置全部时间
date -s “01:01:01 20160813″ 设置全部时间
date -s “2016-08-13 01:01:01″ 设置全部时间
date -s “20160813 01:01:01″ 设置全部时间
- 查看硬件时间:clock
- 查看硬件时间:hwclock
-w 系统时间给硬件时间
-s 硬件时间给系统时间
7、password—修改密码
语法格式—passwd 用户名
参数:
-n----指定密码的最短使用期限
-x----指定密码的最长使用期限
-w----设置密码过期警告时间
-l----锁定用户账号密码
-u----解锁用户账号
-d----删除用户密码,在redhat中,空密码用户禁止登陆
echo 密码 | passwd --stdin 用户名
8、man手册命令帮助
用法:man command
NAME 命令名称及功能简要说明
SYNOPSIS 格式说明,用法说明,包括可用的选项DESCRIPTION 命令功能的详尽说明,可能包括每一个选项的意义
OPTIONs 选项,说明每一个选项的意义
EXAMPLE 示例,举例说明
FILES 此命令相关的配置文件
AUTHOR 作者
REPORTING BUGS bug反馈
COPYRIGHT 版权
SEE ALSO 参见
9、who命令打印有关当前登录的所有用户的信息
显示当前所有登录会话的用户名、行和时间
-h:不要显示标题列
-u:不要显示使用者的动作/工作
-s:使用简短的格式来显示
-f:不要显示使用者的上线位置
10、last命令用于显示近期用户或终端的登录情况
-n指定输出记录的条数
-f
file:指定用文件file作为查询用的log文件
-t
tty:只显示指定的虚拟控制台上的登录情况
-h
节点:只显示指定的节点上的登录情况
-i
IP:只显示指定的IP上登录的情况
-y:显示记录的年月日
-x:显示系统关闭、用户登录和退出的历史
11、ps列出当前正在运行的进程并显示有关这些进程的信息
文件管理
12、touch命令创建普通文件
两种作用:
- 如果文件已存在,更新文件的三个时间,stat可以查看文件的详细信息
atime-----access time 看了一下内容 cat
mtime-----modify time 文件内容被改变了,ctime也会发生改变
ctime------change time 元数据被改变,重命名 - 如果文件不存在,则表示创建文件
创建多个普通文件:
方法1:touch
文件名1 文件名2 文件名3
方法2:touch
{文件名1,文件 名2,文件名3}
touch {1,2}{3,4}
touch abc{1…100}
13、cd命令切换目录
- 绝对路径(以/开始的路径):cd /home/redhat
- 相对路径(不是以/开始的路径):cd /;cd home;cd redhat
直接回到当前用户的主目录:cd ~
回到当前目录的上一级目录:cd …
回到当前目录:cd .
切换到之前的目录:cd -
14、stat命令用于显示inode内容
15、rm命令删除文件
删除普通文件:rm [-f] 文件名
删除目录文件:rm -r [-f] 目录文件名
16、mv移动文件
语法
mv [option] source dest
17、cat连接并显示文件内容到标准输出
18、more和less用来查看文件内容
区别:more从头开始查看,在没用翻到最后一页支持向前翻,而less不支持
19、grep可以根据特定的字符串,对指定文件的每一行进行搜索,如果找到了这个字符串,就将含有这些内容的行输出。
查找文件里有字符h的字符串:grep h 文件名
匹配整个单词:grep -w 单词 文件名
匹配以q开始的行:grep 1 文件名
匹配以q结束的行:grep q$ 文件名
匹配以数字开头的行:grep 2 文件名
匹配以q或者f开头的行:grep 3 文件名
不匹配以q或者f开头的行:grep [qf]
文件名
匹配oo前面不是f或者g的字符串:grep [^gf]oo 文件名
匹配以#号开头的行:grep ^#
过滤空白行:grep ^$
如果要明确搜索子目录:grep -r h ./*
忽略子目录:grep -d skip h ./*
-l:查询多文件时只输出包含匹配字符的文件名
搜索时忽略大小写:grep -i
搜索时显示没有匹配到的行:grep -v
搜索时显示匹配到的那一行以及下2行:grep -A 2
搜索时显示匹配到的那一行以及上2行:grep -B 2
搜索时显示匹配到的那一行以及上下2行:grep -C 2
20、find查找
-
第一部分:根据文件名查找
1、在当前目录查找名称为test的所有文件:find test
2、在主目录下查找名称为test的所有文件:find /home –name test
3、在主目录下查找test的所有文件,且不分区大小写:find /home -iname test
4、查找名称为test的所有目录:find / -type d -name test
5、当前目录查找名为test.php的所有php文件:find -type f -name test.php
6、查找当前目录中所有php文件:find -type f -name ‘*.php’ -
第二部分:根据权限查找
7、查找权限为777的所有文件:find -type f -perm 0777 -print
8、查找没有777权限的文件:find -type f ! -perm 777
9、查找有特殊权限2755的SGID文件:find -perm 2755
10、查找有特殊权限1551的所有SBIT的文件:find –prem 1551
11、查找有特殊权限SUID的所有文件:find / -perm /u=s
12、查找有特殊权限SGID的所有文件:find / -perm /g=s
13、查找所有只读文件:find / -perm /u=r
14、查找所有可执行文件:find / -perm /a=x
15、查找所有777权限的文件,并使用chmod将其设置为644:find -type f -perm 0777 -print -exec chmod 644 {} ;
16、查找并删除单个文件:find -type f -name ‘test.php’ -exec rm -f {} ;
17、查找并删除多个文件:find -type f -name ‘.php’ -exec rm -f {} ;
18、查找所有空文件:find / -type f -empty19、查找所有空目录:find / -type d -empty
20、查找所有隐藏文件:find / -type f -name '.’ -
第三部分:根据所有者和组查找
21、查找所有者为root的所有aaa文件:find / -user root -name ‘aaa’
22、查找属于root组的所有文件:find / -group root -
第四部分:根据日期和时间查找
23、查找30天前修改的所有文件:find / -type f -mtime +30
24、查找最后10-20天修改的所有文件:find / -mtime +10 -mtime -20
25、查找最近1小时内修改的所有文件:find / -mmin -60
26、查找30天前访问的所有文件:find / -type f -atime +30
27、查找最近30天访问的所有文件:find / -type f -atime 30
28、查找最近1小时内访问的所有文件:find / -type f -amin -60 -
第五部分:根据大小查找
29、查找大小为50MB的所有文件:find / -size 50M
30、查找大于50M且小于100M的所有文件:find / -size +50M -size -100M
31、查找大于50M的所有文件并删除:find / -size +50M -exec rm -rf {} ;
32、查找大于10M的所有.mp3文件并删除:find / -type f -name '.mp3’ -size +10M -exec rm -rf {} ;
21、head和tail是用来输出文件内容的头和尾的内容
压缩与解压缩
linux上常见的压缩命令就是gzip与bzip2
压缩文件gzip: gzip 文件名(原文件不存在)
gzip -c 文件名1 >文件名1.gz (保留原文件)
-c表示将压缩过程中产生的数据输出到屏幕上
解压文件: 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
bzip2 -cd 文件名2.bz2 > 文件名2(保留原文件)
查看压缩过的文件内容:bzcat
文件名.bz2
文件的归档即打包文件:tar
[主选项+辅选项] 文件或目录
主选项:只能出现一个主选项
c— create 创建一个新归档文件
x— 从归档文件中提取文件出来
t— 列出归档文件的内容,查看已经打包了哪些文件,重点在查看文件名
辅选项
z—通过gzip的支持进行压缩/解压缩,一般格式为*.tar.gz
j— 通过bzip2的支持进行压缩/解压缩,一般格式为*.tar.bz2
J—通过xz的支持进行压缩/解压缩,一般格式为*.tar.xz
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 文件名
磁盘管理
1、df命令用于列出文件系统的磁盘空间占用情况;
-a:列出所有的文件系统,包括系统特有的/proc等文件系统
-k:以KB的容量显示各文件系统
-m:以MB的容量显示各文件系统
-h:以人们较易阅读的GB、MB、KB等格式自行显示
-H:以M=1000k替代M=1024K的进位方式
-T:连同该分区的文件系统名称也列出(例如ext3)
-i:不用硬盘容量,而以inode的数量来显示
注意:由于df主要读取的数据几乎都是针对整个文件系统,因此读取的范围主要是在Super block内的信息,所以这个命令显示结果的速度非常快速。
2、du命令用于显示磁盘空间使用量(统计目录或文件所占磁盘空间大小)。
-a:列出所有的文件与目录容量,因为默认仅统计目录下面的文件量而已
-h:以人们较易读的容量格式显示
-s:列出总量而已,而不出每个个别的目录占用容量,即查看该目录占了多少容量
-S:不包括子目录下的总计,与-s有点差别(等于du -s减去该目录下面的目录所占容量大小)
-k:以KB列出容量显示
-m:以MB列出容量显示
注意:du这个命令会直接到文件系统内去查找所有的文件数据,在默认情况下,大小的输出是以KB来设计的。
du和df的区别:
du,disk usage,是通过搜索文件来计算每个文件的大小然后累加,du能看到的文件只是一些当前存在的,没有被删除的。他计算的大小就是当前他认为存在的所有文件大小的累加和。
df,disk free,通过文件系统来快速获取空间大小的信息,当我们删除一个文件的时候,这个文件不是马上就在文件系统当中消失了,而是暂时消失了,当所有程序都不用时,才会根据OS的规则释放掉已经删除的文件, df记录的是通过文件系统获取到的文件的大小,他比du强的地方就是能够看到已经删除的文件,而且计算大小的时候,把这一部分的空间也加上了,更精确了。
当文件系统也确定删除了该文件后,这时候du与df就一致了。
3、fdisk -l用来查看分区
4、mount查看所有挂载的信息
5、umount用来卸载
语法:umount 挂载点目录
6、fsck命令用于检查文件系统并尝试修复出现的错误
语法:
[root@localhost ~]# fsck [选项] 分区设备文件名
-a 自动修复文件系统,没有任何提示信息。
-r 采取互动的修复模式,在修改文件前会进行询问,让用户得以确认并决定处理方式。
-A(大写)按照 /etc/fstab 配置文件的内容,检查文件内罗列的全部文件系统。
-t 文件系统类型 指定要检查的文件系统类型。
-C(大写)显示检查分区的进度条。
-f 强制检测,一般 fsck 命令如果没有发现分区有问题,则是不会检测的。如果强制检测,那么不管是否发现问题,都会检测。
-y自动修复,和 -a 作用一致,不过有些文件系统只支持 -y。
7、sync命令用于数据同步
网络设置
1、ifconfig命令用来查看虚拟网卡的信息
2、nmcli命令用来设置网卡的ip地址等信息
nmcli connection modify eno16777736 ipv4.addresses 192.168.168.2/24
nmcli connection modify eno16777736 +ipv4.addresses 192.168.168.168/24
nmcli connection modify eno16777736 ipv4.gateway 192.168.168.1
nmcli
connection modify eno16777736 ipv4.method manual
nmcli connection modify eno16777736 connection.autoconnect yes
nmcli connection up eno16777736
3、ip a命令用来查看IP地址信息
4、ss命令用来查看端口信息
5、nmtui图形化管理网卡命令
用户管理
1、useradd添加普通用户
语法:
useradd 用户名
adduser 用户名
2、usermod修改用户信息
-c 改变用户的全名或者说描述名称
-d 改变用户的家目录
-e 设置用户账号的过期时间
-f 密码的过期宽限时间
-g 改变用户的gid
-G 将用户添加入一个新组
-s 改变用户的默认shell
-l 改变用户用户名
-u 改变用户的uid
-L 锁住密码,使账号不能用
-U 为用户密码解锁
给用户追加附加组:usermod -a -G 组名 用户名
3、userdel删除用户
userdel -r 用户名-------删除用户登入目录以及目录中所有文件
4、groupadd创建组
groupadd -g gid 组名
5、groupmod修改组信息
groupmod -n 新组名 -g gid 原组名
6、groupdel删除组
groupdel 组名
7、id查看用户
软件管理
rpm:redhat package manager红帽软件包管理工具
1.挂载:mount /dev/sr0 /mnt
2.ls /mnt/Packages 查看软件包名
3.先切换到/mnt/Packages再安装rpm -ivh yp-tools-i安装v详细信息h安装时列出标记“#”
删除软件:rpm -e tree(包名)
查询所有安装的软件包rpm -qa | grep tree
查看软件包释放的文件详细位置rpm -ql 包名
查看某个文件是哪个软件包释放的rpm -qf 文件名
rpm -Uvh 升级软件包;
yum:Yellow dog
Updater,Modified黄狗管理器,更新管理器,是一个在Fedora和RedHat以及CentOS中的shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载rpm包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包。
定义配置文件:vim /etc/yum.repos.d/base.repo
yum.repos.d目录下只认识.repo结尾的配置文件
本地源配置文件:
[base]源标识
name=base源名称
baseurl=file:///mnt/
软件包的位置file本地文件://
enable=1,启用这个仓库或者源,一个源可以有多个仓库
gpgcheck的两种情况:指定是否需要查阅rpm文件内的数字签名,1为检查,0为不检查
gpgcheck=0
表示不检查
gpgcheck=1
检查需要指定gpgkey
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
如果上面gpg签名为不检查,那么这里就省略,如果是检查,需要配置。
查看源标识、源名称、状态:yum repolist
查看所有已经安装和可以安装的包:yum list
显示指定程序包安装情况:yum list 包名
不确定包名时可以搜索:yum search 命令
安装软件:yum install
删除软件:yum remove
本地rpm软件包:localinstall
(3)源码安装:
mkdir /1
下载tar-1.29.tar.gz
tar xvf
tar-1.29.tar.gz
yum remove tar -y
切换到Redhat,找到解压的tar的目录,
执行./configure
以root用户安装:yum install gcc* -y 在配置之前要保证我们的编译器完整才可以进行配置,配置完成后进行编译,编译好进行安装
切换到redhat再执行./configure(检测当前系统是否具有安装软件所需的文件和工具。该过程主要是产生Makefile文件,该文件中定义了各个源文件之间的依赖关系,说明了如何编译源文件即生成可执行文件,通过描述各个源程序之间的关系来使make工具自动完成编译工作)
退回root,编译安装,切换到解压的目录,make进行编译 make install表示安装(安装完成)