Linux

Posted by HaoChen Blog on November 12, 2016

Linux

概念:

权限 -rwr-r—- 十位组成一个 第一位表示文件类型,2-4:表示root用户的权限,5-7: 表示所属组的权限 8-10:表示普通用户的权限

什么是挂载?

就是和挂载点连接的过程叫挂载

linux 中使用系统目录作为盘符的.

  • mkdir: 文件名 创建文件夹
  • touch: 文件夹名/文件名 在目录下创建文件
  • rm -rf 文件 : 删除文件不走回收站
  • cat 文件 :查看文件内容
  • vi : 编辑
  • q! 快速保存
  • :wq! 保存
  • u 撤销上一步的操作
  • Ctrl+r 恢复上一步被撤销的操作
  • tab 补全命令
  • ls -lh 查看目录下所有文件详细信息

    系统分区

目录结构:

  • /根目录
  • bin 目录 : 命令保存目录
  • cgroup :
  • etc : 系统的默认的配置文件; 学习服务的时候就要使用到
  • lib :系统函数库目录,常用的库放在这里,用的时候调用
  • media: 挂载目录
  • mnt :挂载目录
  • opt
  • root : 超级管理员使用的目录
  • selinux
  • sys:目录不能直接操作,保存的是内存的过载点
  • usr : 系统资源保存 目录
  • boot: 启动目录,启动相关的文件
  • dev :特殊文件保存目录,里面都是硬件文件
  • home: 普通用户的家目录
  • lost+found
  • misc :挂载目录
  • net
  • proc :目录不能直接操作,保存的是内存的过载点
  • sbin :命令保存目录 root权限才能使用的命令
  • srv
  • tmp : 临时文件目录
  • var : 保存系统相关文档

安装过程

/:根目录 /home :2000 /swap 1000 /boot 分区200

所学命令:

  • pwd : 显示当前所在目录的位置
  • ~ :代表当前用户的家目录
  • # :表示当前用户是root用户
  • $ :表示当前用户是普通用户

总结: bin 目录都是用来保存系统命令的目录,但是sbin用来保存root使用的命令

 media ,mnt,misc三个目录是用来挂载的目录

三: 文件搜索命令:

  1. :搜索命令: locate <定位查找> 快>>功能单一

    在数据库中查找,首先用updatedb 更新数据库 再执行 locate <文件名>

locate locate 查找数据库

locate 查找/tmp/文件 时 >updatedb >是查找不到数据的 ,因为在updatedb是遵循updatedb.conf 配置文件进行搜索的,但是在其中是忽略了tmp等文件的,还有.svn以及.git

  1. :whereis 表示我在哪,命令搜索系统命令 -b: 只查找看执行文件 -m 只查找帮助文件
    还有比如whoami,表示我是谁, whatis 我是什么,帮助文档

– which <文件名> 查看执行命令,所在路径,以及别名 cd是shell自带的命令无法查看

–PATH环境变量:定义的系统搜索的命令路径 echo $PATH 系统命令使用,path路径中的bin执行文件,也就是命令

  1. find
  • find [搜索范围] [搜索条件] # 搜索范围可以使用正则或者通配符
  • find / -name install.log # 文件名搜索 在全文件中搜索,性能消耗很大

  • find /root -user root # 文件所有者搜索
  • find /root - nouser # 搜索非文件所有者
    在linux中文件都是文件所有者,除非是windows中转来的,或者是系统文件

时间查找

  • find /var/log/ - mtime +10 # +10 表示10 天前 ,-10 表示10天内 ,10表示第10天

文件大小查找

  • find . size 25k 或者M k小写,M大写 +25k 表示大于25k -25k表示小于25k 25k 表示等于25k

i节点查找

  • find . -inum 266647(节点号)

逻辑查找

  • find /ect -size +20k -a -size -50k # -a 表示 and ,-o 表示or

  • find /ect -size +20k -a -size -50k -exec/-ok 命令1 {}\; #查找ect目录下大于20k小于50k的文件,并执行命令1

grep

  • grep [选项] 字符串 文件名 # 在文件中搜索符合匹配符的字符串

选项 -i 忽略大小写 -v 排除指定字符串,就是不包含的字符

find与grep的区别

find 在目录中查找符合要求的文件 grep 在文件中查找符合要求的字符

压缩:

zip压缩:

  • 压缩文件命令: zip 压缩后的名称.zip 原文件名称

  • 压缩文件夹: zip -r 压缩后的名称.zip 原文件名称

  • 解压缩命令: unzip 压缩文件名称

gzip压缩: 后缀为gp

  • 压缩文件: gzip 文件名 注意是压缩后原文件会消失

  • 压缩文件保留原文件: gzip -c 源文件 > 压缩文件

  • 压缩目录: gzip - r 压缩目录下所有的文件但是不能压缩目录

  • 解压缩文件: gzip -d 与解压文件 or gunzip 与解压文件

  • 解压缩目录: gunzip -r 目录不变,里面的文件被解压缩

bzip2

  • 压缩文件: bzip2 文件名

  • 压缩文件保留原文件: bzip2 - k 原文件

注意: 不支持压缩目录

解决不能压缩后两个不能压缩目录的问题

  • 打包: tar -cvf 文件名称 原文件 在进行bzip2或者gzip压缩

  • 解打包: tar -xcf 文件

  • 目录直接打包成gzip : tar -zcvf 压缩名.tar.gz 原文件

  • 目录直接打包成bzip2 : tar -jcvf 压缩名.tar.bz2 原文件

  • 目录接打包: tar -zxvf 文件 or tar -jxvf 文件

  • 指定解压缩的位置: tar - zxvf 文件名.tar.bz2 -c 指定的位置

  • 指定压缩多个文件并指定压缩位置: tar - zxvf /tmp/文件名字.tar.bz2 文件1 文件2

  • 查看压缩文件 : ``` tar -ztvf 文件

关机和重启的命令

  • shutdown - r now : 现在重启 reboot 或者init 6

  • shutdown - h : 关机 也可以用 halt poweroff init 0

  • shutdown - c : 取消重启,关机

  • runlevel : 表示进入系统的级别 N 表示是空 3 表示没有图形化 5 是图形化界面

  • 修改系统默认运行级别: cat/etc/inittab 注意: centos7的运行级别都定义在 /lib/systemd/system下. 不再是之前的/etc/inittab文件.

  • 退出登录 : logout 在windows中只能有几个服务器

挂载命令

光盘,U盘就需要人为的进行挂载

  • mount : 挂载命令.查系统已经挂载的任务

  • mount -a : 自动挂载 /ect/fstab 自动挂载的文件 注意不能把U盘作为自动挂载,因为linux在启动时就会去寻找如果没有就会崩溃

  • mount [-t 文件系统] [-o特殊选项] 设备文件名 挂载点
    -t 文件系统:可以ext3,或者ext4 ,ios9660 -o :指定挂载的额外选项 ,可以指为不可以挂载

  • 挂载光盘 1 ,建立挂载点mkdir /mnt/cdrom 2, 建立挂载 mount -t ios9960 /dev/sr0 /mnt/cdrom 或者 mount /dev/sr0 /mnt/cdrom 注意: /dev/sr0 和 /dev/cdrom 是一样的,因为cdrom就是 sr0的软链接

卸载命令:

  • umount 设备文件名或者挂载点 注意只能写一个,而且退出光盘目录,必须卸载

USB的挂载

  • fdisk -l #查看U盘的设备文件名

  • mount -t vfat /dev/sdb1 /mnt/usb # 注意linux是不支持NTFS文件系统的 fat32 文件系统

用户登录查看命令

  • w 查看当前登录的用户有那些,以及详细信息

  • last 所有用户登录信息 #查看的是/var/log/wtmp 下的日志

  • lastlog 最近登录信息

Shell

shell就是命令解析器,负责人与linux交流的最简单的界面,就是操作界面

linux用的是bash

  • 查看自己使用shell版本: echo $SHELL # shell 种类很多: sh cshell 等,也可以在父bash中调用子bash

脚本执行方法

  • echo [选项] [输出内容] # 选项

第一个脚本:

  • vi hello.sh
\#!/bin/bash

内容: echo -e "输出的文字"
  • 执行脚本: bash hello.sh 或者 1 ,先附加执行权限755 chmon 755 hello.sh 2,再用相对路径或者绝对路径进行调用执行,一般用户是在/home/haochen/文件

bash的基本命令

  • 别名:alias 别名

比如:alias ls =’ls – color=auto’ 配置别名

  • 永久生效是在 /root/.bashrc 中配置别名就可以了

路径 –> 别名 –> bash内部 –> $PATH

快捷键:

  • ctrl + l 清屏
  • ctrl + u 删除
  • ctrl + c 结束命令
  • ctrl + a 行首
  • ctrl + e 行尾
  • ctrl + z 放入后台执行
  • ctrl + r 历史搜索

历史命令

  • history [选项] [历史命令保存的文件]
  • histroy - c 清空
  • histroy - w 写入

修改历史命令的条数大小

  • vi /etc/profile # 把HISSIZE改为10000

输出重定向

  • date 表示是时间

标准输出重定向

  • 命令 > 文件 覆盖的形式
  • 命令 » 文件 不覆盖

标准错误输出重定向

  • 错误命令 2>文件 覆盖
  • 错误命令 2»文件 不覆盖

正确的和错误的重定向

  • 命令 > 文件 2>&1
  • 命令 » 文件 2>&1 #1
  • 命令 &> 文件
  • 命令 &» 文件 #2
  • 命令» 文件1 2»文件2 #3

  • 命令 &>/dev/null 系统黑洞,会回收

输入重定向

  • wc < 或者«  字符
  • ; 表示命令分割符
  •   逻辑或
  • && 逻辑与 在安装时应用比较多

管道符

  • 命令1 命令2 #命令1的正确的输出结果会传递给命令2使用
  • netstat -an grep XXXX wc -l # 表示在网络列表中有xxx的连接者有多少个

通配符

  • ? : 通配一个任意字符
    • : 通配人任意个字符
  • [] : 通配一个正则,或者一些字符,只代表通配一个字符,还有[^0-9] 表示非0-9

特殊符号

  • $ 后面接变量
  • ’$,`’ : 在单引号中 $,是没有意义的 只是普通的字符串
  • ” “ : $ ` 在双引号中时具有特殊意义的
  • `` : a= ` ls`表示执行系统命令 ,再赋值给a 与$(ls) 是一样的
  • 表示注释

  • \ 表示转意符