linux入门 安装CentOS 常用目录及作用 linux常用命令 shell 基础

安装虚拟机

http://www.vmware.com

创建虚拟机

创建虚拟机时,选择稍后安装操作系统

创建完成后,可以设置虚拟机的内存、处理器等。

  • 处理器设置页面
    【虚拟化Intel Vt-x/EPT或AMD-V/RVI(V)】的作用是在虚拟机需要处理大数据量时,勾选之个选择后,能够处理得更加快速,但会占用系统资源

  • CD/DVD(IDE)
    默认【启动时连接】即可
    初始安装系统,勾选【使用ISO映像文件(M)】,并选择ISO映像文件

  • 网络适配器
    默认【启动时连接】即可。选择桥接模式。
    在VM虚拟机这个软件安装完后,在电脑的【控制面板】的【网络连接】中会出现两个网卡
    【VMware Virtual Ethernet Adapter for VMnet1】与【VMware Virtual Ethernet Adapter for VMnet8】
    桥接模式:这个模式是直接使用真实的物理网卡,会独立占用IP
    NAT模式:可以上网,使用【VMware Virtual Ethernet Adapter for VMnet8】这个虚拟网卡与真实机进行通信
    仅主机模式:不可以上网,使用【VMware Virtual Ethernet Adapter for VMnet1】这个虚拟网卡与真实机进行通信
    如果选择了【NAT模式】或【仅主机模式】,则虚拟机只能与本机通信,而不能直接与局域网内的其它机器通信

  • 拍摄快照
    点击VM虚拟机工具栏中的【拍摄此虚拟机的快照】
    快照这个功能,对学习很方便

系统分区

  • 系统分区

主分区:最多只能有4个。硬盘结构决定,每个扇区512B,其中64B是记录分区(16B记录一个分区)
扩展分区:最多只能有1个;主分区加扩展分区最多有4个;不能写入数据,只能包含逻辑分区。
逻辑分区

  • 格式化

格式化不是为了清空数据,而是为了写入文件系统(如FAT16、FAT32、NTFS、EXT2、EXT3、EXT4等)。
把分区划分成相等大小的数据块(block),方便存储文件
在分区列表里,建立表格,记录每个文件的节点、修改时间、权限、文件保存位置等

  • 分区文件名及挂载

分区 ---> 格式化 ---> 给每一个分区起一个设备文件名 ---> 起一个盘符

在linux中每一个硬件,都是文件

  • 设备文件名
    /dev/hda1 (IDE硬盘接口,古老的,速度比较慢)
    /dev/sda1 (SCSI硬盘接口(比较老,速度没SATA快)、SATA硬盘接口)

  • 挂载
    必须分区:
    / 根分区
    swap分区(交换分区,内存2倍,不超过2GB)
    推荐分区:
    /boot 启动分区,200MB

下载CentOS

http://www.centos.org

安装CentOS

  • 为虚拟机设置CentOS的ISO映像文件
    【CD/DVD】 选择 使用ISO映像文件 , 并选择相应的CentOS映像文件

  • 开启虚拟机
    不要安装图形界面

  • 设置root密码为root
    以后测试开发用的都设置为用户名与密码相同

连接软件

  • SecureCRT
  • WinSCP
  • XShell

常用目录及作用

  • / 根目录
  • /bin 命令保存目录(普通用户就可以读取的命令)
  • /boot 启动目录,启动相关文件
  • /dev 设备文件保存目录
  • /etc 配置文件保存目录
  • /home 普通用户的家目录
  • /lib 系统库保存目录
  • /mnt 系统挂载目录
  • /media 挂载目录

  • /root 超级用户的家目录
  • /tmp 临时目录
  • /sbin 命令保存目录(超级用户才能使用的目录)
  • /proc 直接写入内在的,不能直接操作
  • /sys 直接写入内在的,不能直接操作
  • /usr 系统软件资源目录
    /usr/bin 系统命令(普通用户)
    /usr/sbin 系统命令(超级用户)
    /var 系统相关文档命令

在家目录/home/tmp目录操作,其它的一般不要操作

linux常用命令

命令提示符(由echo $PS1定义):
[root@centos7 ~]#
root: 用户名
centos7: 主机名

~: 家目录
#超级用户提示符,普通用户提示符为$

命令基本格式

命令 [选项] [参数]

注意:个别命令使用不遵循此格式
当有多个选项时,可以写在一起
简化选项与完整选项 -a表示--all

使用命令ls -lh
-rw-r--r-- (r读w写x执行)
第1个字符表示文件类型(-文件 d目录 l软链接文件)
第2到第4个表示所有者权限 rw-
第5到第7个表示所属组权限 r--
第8到第10个表示其他*限 r--

文件处理命令

  • 建立目录:mkdir (make directories)
    mkdir -p [目录名]
    -p 递归创建,即,如果父目录不存在,则创建之

  • 切换所在目录:cd (change directory)
    简化操作
    cd ~ 进入当前用户的家目录
    cd
    cd - 进入上次目录
    cd .. 进入上一级目录
    cd . 进入当前目录

  • pwd (print working directory)

  • 删除空目录:rmdir (remove empty directory)

  • 删除文件或目录: rm
    rm -rf [文件或目录] 直接删除,使用时需要注意
    -r 删除目录
    -f 强制

  • 复制命令: cp (copy)
    -r 复制目录
    -p 连带文件属性复制
    -d 若源文件是链接文件,则复制链接属性
    -a 相当于 -pdr

  • 剪切或改名命令: mv (move)
    mv [原文件或目录] [目标目录]

  • 链接命令: ln (link)
    ln -s [原文件] [目标文件] 生成链接文件
    -s 创建软链接

硬链接特征:

  1. 拥有相同的i节点和存储block块,可以看做是同一个文件
  2. 可通过i节点识别
  3. 不能跨分区
  4. 不能针对目录使用

软链接特征:

  1. 类似windows快捷方式
  2. 软链接拥有自己的I节点和Block块,但数据块中只保存原文件的文件名和I节点号,并没有实际的文件数据
  3. lrwxrwxrwx l表示软链接 软链接文件权限都为rwxrwxrwx
  4. 修改任意文件,另一个都改变
  5. 删除原文件,软链接不能使用

文件搜索命令

locate

centos7最小安装时,没有locate命令

locate 文件名 只能搜索文件名
在后台数据库中按文件名搜索,搜索速度比较快

/var/lib/mlocate
locate命令所搜索的后台数据库
数据库不是实时更新的,应该是每天自动更新一次
所以使用locate命令时,有可能搜索不出来

updatedb 更新数据库

/etc/updatedb.conf配置文件

  • PRUNE_BIND_MOUNTS = "yes" 开启搜索限制
  • PRUNEFS = 搜索时,不搜索的文件系统
  • PRUNENAMES = 搜索时,不搜索的文件类型
  • PRUNEPATHS = 搜索时,不搜索的路径

whereis与which

PATH环境变量: 定义的是系统搜索命令的路径 也是查找命令位置的路径

[root@centos7 etc]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

whereis 命令名 只能搜索系统的命令,不能搜索自定义的命令
搜索命令所在路径及帮助文档所在位置
-b: 只查找可执行文件
-m: 只查找帮助文件

whereis可以看到命令所在位置,还可以看到命令的帮助文档
which 只能看命令的位置,可以看到命令的别名

find

文件搜索的最强大功能find

搜索文件: find [搜索范围] [搜索条件]

示例: find / -name install.log
避免大范围搜索,会非常耗费系统资源
find 是在系统当中搜索符合条件的文件名。如果需要匹配,使用通配符匹配,通配符是完全匹配

  • find /root -iname install.log 不区分大小写
  • find /root -user root 按照所有搜索
  • find /root -nouser 查找没有所有者的文件
  • find /var/log/ -mtime +10 (modify)查找10天前修改的文件(-10表示10天内,10表示10天当天,+10表示10天以前)
  • find /var/log/ -atime +10 (access)文件访问时间
  • find /var/log/ -ctime +10 (change)改变文件属性
  • find . -size 25k 查找文件大小是25KB的文件(k为小写的k,M为大写的。-25k表示小于25KB的文件,25k表示等于25K,+25k表示大于25K)
  • find . inum 262422 查找i节点是262422的文件

linux中的通配符

  • * 匹配任意内容
  • ? 匹配任意一个字符
  • [] 匹配任意一个中括号内的字符

grep

搜索字符串命令: grep [选项] 字符串 文件名
在文件中匹配符合条件的字符串
选项:
-i: 忽略大小写
-v: 排除指定字符串
-a: 将二进制文件当成文本文件进行读取(文件内容中出现乱码的情况)
-n: 同时输出行号
--colour: 高亮匹配的文本
-B 10: 输出前面10行
-A 10: 输出后面10行
-C 10: 输出前后10行,相于-B 10 -A 10

find vs grep

find命令:在系统当中搜索符合条件的文件名,如果需要匹配,使用通配符匹配,通配符是完全匹配
grep命令: 在文件当中搜索符合文件中的字符串,如果需要匹配,使用正则表达式进行匹配,正则表达式时包含匹配

帮助命令

man 命令
如: man ls

help shell内部命令 获取shell内部命令的帮助
例如:
whereis cd 确定是否为shell内部命令(没有可执行文件)
help cd 获取shell内部命令的帮助

info 命令 详细命令帮助info
回车 进入子帮助页面(带有*号标记)
u 进入上层页面
n 进入下一个帮助小节
p 进入上一个帮助小节
q 退出

压缩与解压命令

常用压缩格式: .zip .gz .bz2 .tar.gz .tar.bz2

zip

最小安装没有zip命令

zip 压缩文件名 源文件 # 压缩文件
zip -r 压缩文件名 源目录 # 压缩目录

unzip 压缩文件名 # 解压文件

gz只能压缩文件

gzip 源文件 # 压缩为.gz格式的压缩文件,源文件会消失
gzip -c 源文件 > 压缩文件 # 压缩为.gz格式,源文件保留 (-c为输出到屏,>为重定向输出)
gzip -r 目录 # 压缩目录下所有的子文件,但是不能压缩目录

gzip -d 压缩文件 # 解压文件
gunzip 压缩文件 # 解压文件
gunzip -r 目录 # 解压目录下所有压缩文件

.tar.gz与.tar.bz2

tar -cvf 打包文件名 源文件

  • -c:打包
  • -v:显示过程
  • -f:指定打包的文件名
  • -t:列出归档内容 tar -tvf 打包文件名
  • -x:从归档中解出文件 tar -xvf 打包文件名
  • -z:通过 gzip 过滤归档 tar -zcvf 压缩包名.tar.gz 源文件 tar -zxvf 压缩包名.tar.gz
  • -j:过 bzip2 过滤归档 tar -jcvf 压缩包名.tar.bz2 源文件 tar -jxvf 压缩包名.tar.bz2

关机和重启命令

shutdown [选项] 时间 使用这个命令比较安全

  • -c:取消前一个关机命令
  • -h:关机
  • -r:重启

其他关机命令

  • halt
  • poweroff
  • init 0

其他重启命令

  • reboot
  • init 6

系统运行级别
runlevel查看系统运行级别
cat /etc/inittab 修改默认运行级别 id:3:initdefault:

  • 0 关机
  • 1 单用户
  • 2 不完全多用户,不含NFS服务
  • 3 完全多用
  • 4 未分配
  • 5 图形界面
  • 6 重启

退出登录命令
logout

其他常用命令

linux 挂载命令

mount # 查询系统中已挂载的设备
mount -a # 依据配置文件/etc/fstab的内容,自动挂载
mount [-t 文件系统] [-o 特殊选项] 设备文件名 挂载点

mkdir /mnt/cdrom/ # 建立挂载点
mount -t iso9660 /dev/sr0 /mnt/cdrom/ # 挂载光盘
umount /mnt/cdrom/ # 卸载挂载点

挂载U盘(linux默认不支持NTFS文件系统的)
fdisk -l # 查看U盘设备文件名
mount -t vfat /dev/sdb1 /mnt/usb/

linux用户登录查看命令

w 用户名

  • USER: 登录用户名
  • TTY: 登录终端
  • FROM: 从哪个IP地址登录
  • LOGIN@: 时间
  • IDLE: 用户闲置时间
  • JCPU: 指的是和该终端连接的所有进程占用的时间
  • PCPU: 是指当前进程所占用的时间
  • WHAT: 当前正在运行的命令

who 用户名

  • 用户名
  • 登录终端
  • 登录时间(登录来源IP)

last # 所有用户的登录信息(包括系统启动时间)
last命令默认是读取/var/log/wtmp文件数据

  • 用户名
  • 登录终端
  • 登录IP
  • 登录时间
  • 退出时间 (在线时间)

lastlog # 查看所有用户的最后一次登录信息
lastlog命令默认是读取/var/log/lastlog文件数据

shell 基础

查看当前使用的shell:echo $SHELL
查看支持的shell: cat /etc/shells
进入子shell后,使用命令exit即可退出
查看父子shell:

echo输出命令

echo [选项] [输出内容]
-e:支持反斜线控制的字符转换

控制字符 作用
a 输出警告音
退格键
换行符
回车键
制表符
v 垂直制表符