手记

Linux达人养成计划 Ⅰ 笔记

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
    • 命令搜索: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 +20Mfind /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重启,&后台执行命令
      • haltpoweroffinit 0关机命令
      • rebootinit 6重启
    • 系统运行级别:
      • 0-关机,1-单用户,2-不完全多用户不含NFS服务,3-完全多用户,4-未分配,5-图形界面,6-重启,runlevel查看当前运行级别
    • 退出登录: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个或任意多个字符,[]匹配括号中任意一个字符,[^]匹配不是括号内的一个字符
    • 其他:单引号中$只是字符串,双引号中$是特殊字符,反引号和$()效果一样用来引用系统命令,#注释,$调用变量的值,\转义符
0人推荐
随时随地看视频
慕课网APP