Linux
Linus 创建了 Linux,Linux是源于Minix的开源操作系统,官网:www.kernel.org ,版本号:主版本.次版本.末版本。
开源软件:apache、nginx、mysql、php、mongodb、ruby、python…
应用领域:www.netcraft.com
Linux不靠扩展名区分文件类型,靠权限区分:
- 压缩包:.gz、.bz2、.tar.bz2、.tgz等
- 二进制软件包:.rpm
- 网页文件:.html、.php
- 脚本文件:.sh
- 配置文件:.conf
window下虚拟机安装:VMware,www.vmware.com
虚拟机网络设置:
- 桥接:虚拟机和真实机通信用本机的真实的网卡,虚拟机会占用真实的IP,可以和同一网段的设备通信
- NAT:用VMnet8进行通信,只能跟自己的真实机通信,不能和局域网的设备通信,可以上网
- Host-only:用VMnet1进行通信,只能跟自己的真实机通信,不能和局域网的设备通信,不能上网
磁盘分区:
- 主分区:硬盘每个扇区512字节,446个字节用来记录启动信息,64字节区分盘符,每个盘符占16字节,一共可以分4个盘符
- 扩展分区:最多只能有一个,主分区加扩展分区最多有4个,不能写入数据,只能包含逻辑分区
- 逻辑分区
格式化:逻辑格式化,根据用户选定的文件系统(如FAT16、FAT32、NTFS、EXT2、EXT3、EXT4等),在磁盘的特定区域写入特定数据,在分区中划出一片用于存放文件分配表、目录表等用于文件管理的磁盘空间
硬件设备文件名:
- IDE硬盘:/dev/hd[a-d]
- SCSI/SATA/USB硬盘:/dev/sd[a-p]
- 光驱:/dev/cdrom或/dev/hdc
- 软盘:/dev/fd[0-1]
- 打印机(25针):/dev/lp[0-2]
- 打印机(USB):/dev/usb/lp[0-15]
- 鼠标:/dev/mouse
挂载(给每个分区分配挂载点):
- 必须分区:/(根分区)、swap分区(交换分区,内存2倍)
- 推荐分区:/boot(启动分区,200MB)
安装linux
1、安装欢迎界面:
- Install or upgrade an existing system:安装或升级现有系统
- Install system with basic video driver:安装过程采用基本的显卡驱动
- Rescue installed system:进入系统修复模式
- Boot from local drive:退出安装从硬盘启动
- Memory test:存储介质检测
2.软件包选择:
- Desktop:桌面
- Minimal Desktop:最小化桌面
- Minimal:最小化,选这个需要自己安装软件
- Basic Server:基本服务器,不需要自己常用安装软件
- Database Server:数据库服务器
- Web Server:网页服务器
- Virtual Host:虚拟主机
- software development workstation:软件开发工作站
3.安装日志:
- /root/install.log:存储了安装在系统中的软件包及其版本信息
- /root/install.log.syslog:存储了安装过程中留下的事件记录
- /root/anaconda-ks.cfg:以Kickstart配置文件的格式记录安装过程设置的选项信息,批量安装模板文件
4.重启网络服务:service network restart
命令
命令基本格式:
- [当前用户@主机名 ~] #
命令 [选项] [参数]
- root用户的家目录/root,普通用户的家目录/home/username
-
超级用户的提示符,$ 普通用户的提示符
文件权限:-rw-r--r--
-
文件类型(第一位是-
表示是文件,是 d 表示目录,是 | 表示软链接文件即快捷方式)- 7种文件类型:除了上面三种,还有块设备文件、字符设备文件、套接字文件和管道文件
rw-
(u所有者)r--
(g所属组)r--
(o其他人)- r°、w写、x执行
常用目录的作用:
- /:根目录
- /bin:命令保存目录(普通用户就可以读取的命令)
- /boot:启动目录,启动相关文件
- /dev:设备文件保存目录
- /etc:配置文件保存目录
- /home:普通用户的家目录
- /lib:系统库保存目录
- /mnt:系统挂载目录
- /media:挂载目录
- /root:超级用户的家目录
- /tmp:临时目录
- /sbin:命令保存目录(超级用户才能使用的目录)
- /proc:直接写入内存的
- /sys:proc和sys不能直接操作,这两个目录保存的是内存的挂载点
- /usr:系统软件资源目录,/usr/bin/系统命令(普通用户),/usr/sbin/系统命令(超级用户)
- /var:系统相关文档内容
常用命令:
- 查看目录内容:
ls [-aldhi] [文件或目录]
- a全部文件,l详细信息,d目录属性,h文件大小,i显示inode
- 目录文件处理:
- 建立目录:
mkdir -p [目录名]
,p递归 - 切换目录:
cd [目录|..|/|~|-]
,-切换到上次的目录- 相对路径(参照当前所在目录),绝对路径(从根目录上开始指定)
- 查询当前目录位置:
pwd
- 删除空目录:
rmdir [目录名]
- 删除文件:
rm [-rf] [文件或目录]
- 复制:
sp [-rpda] [原文件或目录] [目标目录]
- r复制目录,p复制属性,d复制链接属性,a相当于pdr包含时间
- 剪切或改名:
mv [原文件或目录] [目标目录]
- 链接命令:
ln -s [原文件] [目标文件]
,s软链接- 硬链接:拥有相同的inode和存储block块,可看作是同一个文件;可通过i节点识别;不能跨分区;不能针对目录使用
- 软链接:类似快捷方式,有自己的inode和存储block块,但数据块中只保存原文件的文件名和I节点号,并没有实际的文件数据;删除原文件,软链接不能使用;软链接必需用绝对路径
- 建立目录:
- 文件搜索:
- 文件搜索:
locate 文件名
- locate是在数据库
/var/lob/mlocate
中搜索- 按照配置文件
/etc/updatedb.conf
配置规则筛选搜索
- 按照配置文件
- 更新数据库:
updatedb
- locate是在数据库
- 命令搜索:
whereis [-bm] 命令名
,which 文件名
(会显示别名)- b只查找可执行文件,m只查找帮助文件
$PATH
环境变量,系统搜索命令的路径
- 文件搜索:
find [搜索范围] [搜索条件]
,避免大范围搜索find / -name install.log
,搜索整个根目录下指定文件名的文件find / -name "install.log*"
,模糊匹配添加通配符,*、[]、?- iname区分大小写,user按照所有者,nouser,mtime修改文件内容的时间,size文件大小,inum按照I节点
find /var/log -mtime +10
十天内,10表示10天当天,+10表示10天前,atime文件访问事件,ctime改变文件属性find /etc -size +20M
、find /stc -size 25K
find /etc -size +20K -a -size -50K -exec ls -lh {} \
,a表示与,o表示或
- 字符串搜索:
grep [选项] 字符串 文件名
,文件内容- i忽略大小写,v排除指定字符串
- 文件搜索:
- 帮助命令:
man 命令名称
- 帮助级别:
- 1-命令帮助,2-可被内核调用的函数的帮助,3-函数和函数库的帮助,4-特殊文件的帮助,5-配置文件的帮助,6-游戏的帮助,7-其它杂项的帮助,8-系统管理员可用命令的帮助,9-和内核相关文件的帮助
man -f 命令
,相当于whatis 命令
,man 5 passwd
man -k 命令
,相当于apropos 命令
,查看和命令相关的所有帮助
- 其他:
命令 --help
,获取命令选项的帮助help shell内部命令
,获取shell内部命令的帮助
- 帮助级别:
- 压缩和解压:
- 常见压缩格式:
- (zip、gz、bz2)和(tar.gz、tar.bz2)
- 压缩:
zip [-r] 压缩文件名 源文件
,zip -r jp.zip jp
gzip 源文件
,gzip -c 源文件 > 压缩文件
,gzip -r 目录
bzip2 源文件
,bzip2 -k 源文件
tar -cvf 打包文件名 源文件
,c打包,v显示过程,f指定打包后的文件名,先打包成.tar格式再压缩为.gz格式tar -zcvf 压缩包名.tar.gz 源文件
tar -jcvf 压缩包名.tar.bz2 源文件
- 解压缩:
unzip 压缩文件
gzip -d 压缩文件
,gunzip 压缩文件
bzip2 -d 压缩文件
,bunzip2 压缩文件
tar -xvf 打包文件名
,x解包tar -zxvf 压缩包名.tar.gz
tar -jxvf 压缩包名.tar.bz2
- 常见压缩格式:
- 关机和重启
- 关机重启:
shutdown [-chr] 时间 &
,date
获取时间- c取消前一个关机命令,h关机,r重启,&后台执行命令
halt
、poweroff
、init 0
关机命令reboot
、init 6
重启
- 系统运行级别:
- 0-关机,1-单用户,2-不完全多用户不含NFS服务,3-完全多用户,4-未分配,5-图形界面,6-重启,
runlevel
查看当前运行级别
- 0-关机,1-单用户,2-不完全多用户不含NFS服务,3-完全多用户,4-未分配,5-图形界面,6-重启,
- 退出登录:
logout
,关闭服务器时使用
- 关机重启:
- 挂载:
mount
查询已挂载的设备、mount -a
/etc/fstab自动挂载mount [-t 文件系统] [-o 特殊选项] 设备文件名 挂载点
,文件系统可以是ext3、ext4、iso9660等- 挂载光盘:
mkdir /mnt/cdrom
创建挂载点mount -t iso9660 /dev/sr0 /mnt/cdrom
挂载umount /mnt/cdrom
卸载
- U盘挂载:linux不支持ntgs文件系统
fdisk -l
查看U盘设备文件名mount -t vfat /dev/sdb1 /mnt/usb
- 登录查看:
w [用户名]
- USER:登陆的用户名
- TTY:登陆终端
- FROM:从哪个UP地址登陆
- LOGIN@:登陆时间
- IDLE:用户闲置时间
- JCPU:和终端链接的所有进程占用的时间,不包括过去后台作业时间,但包括当前正在运行的后台作业所占用的时间
- PCPU:当前进程所占用的时间
- WHAT:当前正在运行的命令
who 用户名
last
查询当前登录和过去登录的用户信息,默认读取/var/log/wtmp文件数据lastlog
查看所有用户的最后一次登录时间
Shell
Shell是一个命令行解释器,为用户剔红一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以使用Shell来启动、挂起、停止甚至编写一些程序。
Shell还是一个功能相当强大的变成语言,易编写,易调试,灵活性较强。Shell是解释执行的脚本语言,在Shell中可以直接调用Linux系统命令。
分类:
- Bourne Shell的主文件名为sh(sh、ksh、Bash、psh、zsh),C Shell(csh、tcsh)
- echo $SHELL,查看当前shell
- vi /etc/shells,查看兼容的shell
echo命令:
echo [-e] [输出内容]
,e支持反斜线控制的字符转换- \a警告音,\b退格键,\0nnn八进制,\xhh十六进制
echo -e "\x68\x65\x6c\x6c\x6f"
echo -e "\e[1;31m Hello World \e[0m"
,30m黑色,31m红色,32m绿色,33m黄色,34m蓝色,35m洋红,36m青色,37m白色
编写脚本:vi hello.sh
#!/bin/bash
#The first program
echo "Hello World!"
执行脚本:
- 赋予执行全限,直接运行:
chmod 755 hello.sh
,然后./hello.sh
- 通过Bash调用执行脚本:
bash hello.sh
Bash的基本功能:
- 命令别名与快捷键:
- 查看与设定别名:
alias
查看,alias 别名='原命令'
设定别名 - 别名永久生效与删除别名:
vi ~/.bashrc
写入环境变量配置文件,unalias 别名
删除别名 - 命令生效顺序:绝对相对路径执行 > 别名 > bash内部命令 > $PATH设置的
- 查看与设定别名:
- 历史命令:
history [-cw] [历史命令保存文件]
- c清空历史命令,w把缓存中的历史命令写入历史命令保存文件~/.bash_history
- 可以在/etc/profile中修改历史命令保存的大小
- 调用除了上下箭头,
!字符串
重复执行最后一条以该字符串开头的命令,!!
上一条
- 输出重定向
- 键盘/dev/stdin,显示器/dev/sdtout,显示器/dev/sdterr
- 输出重定向:
命令 > 文件
,覆盖的方式命令 >> 文件
,追加的方式错误命令 2>文件
,标准错误输出,覆盖错误命令 2>>文件
,标准错误输出,追加命令 >> 文件 2>&1
,把正确和错误结果保存到同一文件中,等价于命令 &>>文件
命令>>文件1 2>>文件2
,正确结果写到文件1,错误结果写到文件2
- 输入重定向:
wc [-cwl][文件名]
,c统计字节数,w统计单词数,l统计行数命令 < 文件
把文件作为命令的输入,命令<<标识符
- 多命令顺序执行
;
无逻辑关系,&&
逻辑与,||
逻辑或- 管道符:
命令1 | 命令2
- Shell中特殊符号
- 通配符:?任意一个字符,*匹配0个或任意多个字符,[]匹配括号中任意一个字符,[^]匹配不是括号内的一个字符
- 其他:单引号中
$
只是字符串,双引号中$
是特殊字符,反引号和$()
效果一样用来引用系统命令,#注释,$
调用变量的值,\转义符