linux安装

安装

swap,一般为两倍内存,但这是以前的说法,现在的服务器都是尽量不用硬盘的,影响速度。

hash命令

后台运行:命令+&如firefox &。

暂停程序:Ctrl+Z或发生信号17.

后台作业:jobs(查看后台程序),bg(控制后台程序运行),fg(放回前台).

查找命令历史

查找:Ctrl+R:输入任何命令都可查找会历史命令。

history可查询历史命令。上一次命令:!!(双感叹号)或Esc之后再+.(点)。

切换用户

su -:切换到root权限。但不加-也可以切换。加-可以切换一个全新的环境。

sudo:使用管理员命令。

显示当前用户信息:id.

修改当前密码:passwd.

命令匹配符:*,?,[0-9],[abc],[^abc]列表以外的字符。

文件系统结构

文件系统严格区分大小写,路径用“/”分割,而windows用“\”。

以“.”开头的文件为隐藏文件。

根目录:/,家目录:~,上一个工作目录:-。直接cd,回车都是回到家目录。

显示当前目录:pwd。创建空白文件或更新文件时间:touch。

ls -R:递归显示子目录结构,ls -a:显示包涵隐藏文件;ls -l显示详细信息,ls -ld显示目录信息。

file  文件:查看文件的类型。

cp 源文件(文件夹)目标文件(文件夹),-r 复制文件夹,-v显示详细信息。

mv 移动或重命名:mv 源文件 目标目录或文件名。

删除:rm 文件,-i交互信息,-r删除文件夹,-f强制删除。

mkdir创建目录,rmdir删除目录,rm  -rf删除非空目录。

目录架构:

bin:可执行命令;

boot;引导目录,最重要的是vmlinux文件,这个就是内核。

dev:所有硬件设备。

etc:所有配置文件。

home:家目录,每个用户都有一个文件夹。跟桌面上我的文档一样。

root家目录单独出来。

lib:所有相关库文件。

lost+found:每个est文件系统都有这个文件夹。

media:自动挂载用的,一挂载就在这里,有些没有。

mnt:正常的挂载目录。

opt:一般装大型软件。

proc:存在在内存中,显示实时信息。数字文件对应进程。

sbin:只有超级用户才可执行。一般为危险命令。

sys:系统底层信息,如硬盘。

tmp:临时目录。会自动删除文件。

usr:保持应用软件。

var;经常变化的东西,如log.

常用命令

查看修改时间:date。硬件时钟时间:hwclock。查看日历:cal。查看系统运行时间:uptime。

查看文本内容:cat。用以显示文件的头几行:head -n。显示末尾几行:tail -n,-f追踪显示最新信息。

more可向下翻页查看,less可上下翻页。

查看硬件信息:

查看PCI信息:lspci -v(显示详细信息)。查看USB信息:lsusb,-v(显示详细信息)。查看加载的模块(驱动):lsmod。

关机重启:shutdown -r(重启) -h(关机)   时间。poweroff立即关机,reboot立即重启。

压缩:zip xx.zip myfile.解压缩:unzip xx.zip。压缩:gzip xx.zip。

归档:(打包)tar -cvf out.tar myfile。 打开归档(解包):tar -xvf  out.tar。

归档且压缩:tar -cvzf out.tar.gz myfile。-z将归档后文件调用gzip压缩。

查找

查找文件(预建立数据库,需手工更新updatedb):locate keyword。

高级查找:find 查找位置 参数。find / -name *.conf以文件名查找。find / -perm 777查找所有权限是777的。find / -type d 返回所有目录。-ctime -size -group -user。

 vi:建议用vim。vim 目标文件。如不存在目标文件则新建。

按i进入插入模式,随意编辑。按:进入ex模式,可退出vim。按Esc进入命令模式。命令模式下:i,o,dd(删除一行),yy(复制),p(黏贴),u(撤销),r,/(查找)。

ex模式:w保存,q退出,q!强制退出,x保存并退出,set number显示行号。!系统命令:执行系统命令并显示结果。sh先切换回命令行,再按Ctrl +D切换回vim。

 磁盘基本概念

盘片上下都有磁头,一个磁盘可有多个盘片。cylinder柱面:每个盘片同个轨道圈组成的立体。sector扇区,head磁头。由于物理读取方式,所以有了这几个概念。

IDE磁盘hd[a-z],其他设备称为sd[a-z],都在/dev目录下。

分区:把一个磁盘逻辑的分为几个区,方便管理。设备名+分区号:sda2。

分区机制有MBR(使用BIOS的PC机、分区数量有限、只支持2T(有第三方方法))和GPT。

MBR在磁盘开头的512M,其中前446M为引导代码,然后为4个分区表(每个16M,主分区),最后两个字节是启动标示,永远是55h和AAh。主分区只有4个,扩展分区会占用一个主分区,扩展分区不可用,要在此基础上建立逻辑分区才可使用(逻辑分区最多63IDE分区和15个SCSI分区)。

GPT:超过2T,兼容MBR,但必须支持UEFI的硬件才可用,且必须为64bit系统。Mac\linux、64bit版的win7和windows 2008。

fdisk分区工具:几乎所有linux都有,基于MBR,只有root才可用。

列出硬盘及分区:fdisk -l.对磁盘进行分区操作:fdisk /dev/sdb。逻辑分区从dev/sdb5开始

。id说明分区:83linux,82swap区。分区之后用partprobe更新内核分区信息。

/proc/partitions文件也可查看分区信息。 

操作系统通过文件系统才可管理文件及数据,磁盘和分区需要创建文件系统后才被操作系统使用。创建文件系统叫格式化。

没有文件系统的设备叫裸raw设备。有时候会需要,如安装oracle时。

文件系统:fat32,NTFS,ext2,ext3,ext4,xfs,HFS.proc,gfs,jfs,iso9660。

文件系统之间区别:日志,支持分区大小,单个文件大小,最重要还是性能。

windows主流是NTFS,linux主流是ext3,ext4。linux读取NTFS文件需要安装驱动。

创建文件系统:mke2fs -t ext4 /dev/sda3。—b 指定快大小(默认4096或者4k),-c检查坏损快,-L指定卷标,-j建立日志。

mkfs比mke2fs简单,无参数。

dumpe2fs  /dev/db4查看文件系统信息。

带日志的文件系统(ext3\ext4)在出错时可恢复,但会牺牲一点性能。它使用“两阶段提交”的方式操作磁盘:

1、把准备执行的事务的具体内容写入日志;2、文件系统进行操作;3、删除事务日志。

e2label  /dev/sdb1 linux 给分区打标签。标签一般为大写。

fsck /dev/sda2检查并修复损坏的文件系统(必须先卸载)。如是文件的损坏数据,会移到lost+found目录。

系统启动时会进行fsck。

磁盘创建好文件系统后,需要挂载到目录才可使用。

mount /dev/sda3  /mnt(挂载点,可挂载到任何地方) -o指定挂载项:ro,rw(默认),sync,async(默认),noatime,atime,remount。 

卸载:umount 文件系统/挂载点 umount /dev/sda2=umount mnt。

如卸载不了,fuser -m /mnt可查看使用文件系统的进程,lsof /mnt查看正使用的文件。

/etc/fstab定义要自动挂载的文件系统。mount -a可挂载所有自动挂载项。

 几乎所有命令都可以通过-h 或--help获取方法。<man<info</usr/share/doc。

 每个用户属于一个主组gid,属于一个或多个附属组goups。

用户ID为32位,限制在60000以下:root用户(id为0,强制),系统用户(1~499不强制),普通用户(500以上)。id命令可显示当前用户信息。

/etc/passwd用户信息、/etc/shadow用户密码。/etc/group组信息。组密码已经不用。

linux里面,命令越长,显示越少:whoami,who,w。

useradd 用户名:执行了以下动作1、在/etc/passwd添加用户信息;2、如果使用passwd命令创建密码,则密码保持在shadow中,3、为用户创建新的家目录;4、将/etc/skel中的文件复制至家目录中;5、建立与用户名相同的组,用户默认属于这个组。

-d家目录 -s登陆shell,-u userid -g主组-G附属组(最多31个)也可直接修改/etc/passwd,但不建议。

usermod 参数 username:-l 用户名 -u userid -d 家目录-g-G组-L锁定,-U解锁。

userdel 用户(保留家目录);useradd -r 用户(家目录也删除);

groupadd 组名:创建组。groupmod -n(改组名) -g(改组ID)

groupdel 组名:删除组。

 每个进程都以用户身份执行,用户权限多大,进程就权限多大。

r可列出目录内容w可在目录中创建删除文件x可访问目录内容。

目录必须有x权限,否则无法查看内容。UGO:user group other.ls -l。

每一个文件拥有所属用户和所属组,对应UG,不属于文件所在组或所属用户的使用O权限。

chown 用户名 文件\目录:改变所属用户,-R递归修改目录。chgrp改变所属组。

chmod 模式 文件:u、g、o、a代指ugo,+、-代表加入或删除、rwx代表权限。如:chmod u+w 文件。或者以数字方法修改权限,r=4(2^2),w=2(2^1),x=1(2^0)。如chmod 660 文件;

 每个终端都有umask属性,来确定新建文件或文件夹的默认权限。

目录权限:777-umask;文件权限(默认不给执行权限):666-umask。

一般用户一般为umask=002,root的umask=022;

除了ugo外,还有特殊权限:suid(以文件所属用户身份执行)\sgid(以文件所属组身份执行,在该目录创建文件的所属组与目录所属组相同)\sticky(对目录有写入权限的用户仅可删除其拥有的文件)。

 chmod u+s 文件:suid,chmod o+t 文件:sticky。suid=4,guid=2,sticky=1;chmod 4766 文件:设置了suid。

查看网络设备:lspci或lsusb。查看网卡信息:ifconfig eth1;

lo接口为环回接口,所有操作系统都有。

ifup eth0启用端口,ifdown eth0关闭端口。setup命令可设置网络信息(文本界面)。

 网卡的配置信息保存在下面目录中:/etc/sysconfig/network-scripts/

 DNS服务器:/etc/resolv.conf主机名配置:/etc/sysconfig/network

 DNS解析:host 域名;dig 域名;

显示路由表:Ip route;追踪到达目标地址的路由设备:traceroute; 网络质量测试 mtr 目标地址(结合traceroute 和ping)。

 不要重复发明轮子:很多开源软件都是现有软件、代码的重新组合。

数据流:stdin标准输入 编号0,stdout标准输出,编号1;stderr标准错误,编号2.

 重定向(用来保存输出):>        将标准输入以覆盖形式重定向到指定文件,如:ls > outfile

>>      将标准输入以追加形式重定向到指定文件,如:ls >> outfile

<        重定向标准输入   如:grep linuxcast < /etc/passwd

2>      重定向标准错误

2>&1   将标准错误合并到标准输出中。

管道“|”用以将一个命令的标准输出作为另一个命令的标准输入:命令1  |  命令2

开机顺序:

1、BIOS:检查硬件并查找启动设备(可在bios定义启动设备:USB\CDROM)。

2、可启动设备的第一个扇区(512字节):MBR(前446字节):指引跳转到复杂的引导程序;

3、GRUB:主流引导程序,可引导几乎所有系统,保持在/boot/grub目录中,配置文件为grub.conf;stage1是MBR的镜像,只是备份;执行stage1后就要加载文件系统;加载文件系统后就加载stage2。

grub.conf:default=0选择第几个配置;timeout=3开机倒数多久;spashimage引导界面的背景;title引导名字,任改;root(dh0,0)第一个硬盘的第一个分区、内核位置。kernel:内核文件,后面跟参数;initrd加载不常用的驱动、内核模块。dmesg命令查看启动内核输出的信息,或查看/var/log/dmsg。

4、init:系统的第一个进程。调用/etc/rc.d/rc.sysinit对系统初始化、挂载系统、并根据运行级别启动相应服务。0关机1单用户2不带网络3多用户4未使用5图形6重启。通过/etc/inittab配置运行级别。/etc/rc.d/rc[0123456].d对应每个级别的启动服务。runlevel显示当期及上一个运行级别;init改变当期运行级别。

在系统启动时选择e进入GRUB,进入内核传递参数“1”或single可进入单用户模式,可免密码进入(不启动任何服务,可passwd修改root密码 )

——》为防任意修改,可对GRUB加密:在grub.conf中加入password --md5 $..加密后的密码可用:grub-md5-crypt生成。

绝大多数开源软件都直接以源代码形式发布,一般打包成tar.gz;源代码需编译成二进制后才可运行。

源代码编译流程:

1、./configure    检查编译环境、相关库文件以及配置参数并生成makefile

2、make           将源代码编译为可执行文件

3、make install  安装编译好的可执行文件

源代码软件使用麻烦,但兼容性和可控性很好。

RPM(redhat Package Manager)是为了方便软件管理使用所开发的一套开源软件格式,针对特定平台:sofewarename-版本-平台.rpm。

 rpm -i安装-e卸载-U升级;-v显示详细信息 -h显示进度条;rpm -qa列出所有已安装的rpm软件。

 

为防止软件被恶意修改,加了软件验证功能。一般用非对称加密算法。

RPM软件验证命令:

导入密钥rpm --import RPM-GPG-KEY(每个系统都有密钥,默认自动安装)

rpm -K software.rpm

rpm -V softname

 RPM虽然方便但需要手工解决软件包的依赖关系。YUM是RPM的前端程序,自动解决RPM的依赖关系。引入仓库的概念,用来存放所有现有的RPM包。可以在本地,也可以通过HTTP、FTP等形式的网络仓库。仓库配置文件:/etc/yum.reposd/目录下,以repo结尾。

YUM常用命令:

 安装软件:yum install software-name

删除软件:yum remove software-name

升级软件:yum update software-name

搜索查询:

基于关键字搜索软件:yum search 关键字

列出YUM仓库中全部软件:yum list all/installed/update.

显示软件信息:yum info packagename

清除YUM缓存:yum clean all

创建yum仓库:

  1. 将rpm包保存到一个指定文件夹下
  2. 使用createrepo命令创建yum仓库

 

 rpm -qf filename  查询指定文件属于哪个rpm包

rpm -qi packagename  查询软件包的信息

rpm -ql packagename  查询指定软件包包含的文件

rpm -qip software.rpm 查询rpm文件的信息

rpm -qilp software.rpm  查询rpm文件包含的文件

你可能感兴趣的:(linux)