Linux

277 阅读8分钟

Linux

  1. 是一种开源的,免费的操作系统,安装在计算机硬件上,用来管理加孙及的硬件和软件资源的系统软件。

  2. linux的发行版本:linus 在1991年开发完成,linux 的内核程序,后来很多的软件开发商在内核程序的基础之上,陆续推出了不同的版本的 linux 操作系统

  • Ubuntu(乌班图)
  • RedHat(红帽)
  • CentOS

Linux 操作系统的文件目录结构

linux 只有一个根目录,也就是只有一个盘(不像 win 可以有C盘,D盘 ....)

  1. root: 该目录未系统管理员的目录, root 是具有超级权限的用户

  2. bin, usr/bin: 存放系统预装的可执行程序,这里存放的可执行文件可以在系统的任何目录下执行

  3. usr: 是 linux 的系统资源目录,用于存放一些系统可执行文件或者一些文件库

  • usr/local/bin: 放用户自己的可执行文件,同样在系统的任何地方都可以执行
  1. etc: 存放系统的配置文件
  • /etc/profile: 配置系统的环境变量
  1. home: 用户的根目录,每一个登录的账号都会分配一个用户的根目录,用来存放用户自己的文件

  2. opt: 用来存放安装软件的目录,比如需要安装 MySQL,JDK 等软件要放在这里

Linux 的远程操作常用的软件

  1. XShell: linux 的远程操作的远程模拟终端
  2. Xftp: 用于在本地跟服务器上的文件传输
  3. vi/vim: linux 上的文件编辑

vi/vim 的使用

Vim 的模分类

  1. 一般模式
  • 用 vi/vim 命令打开文件,默认为一般模式,可以查看文件的内
  • 并且可以通过上下左右键来移动光标的位置
  1. 编辑模式
  • 在一般模式按下 i 键或者 a 键,可以进入编辑模式
  • 编辑模式下可以修改文件的内容,但是不能保存,想要保存的话需要进入下一个模式
  • 在编辑模式下回到一般模式按下 ESC 键
  1. 命令模式
  • 在一般模式按下 shift + : 的组合键,进入命令模式
  • q!: 不保存强制退出
  • wq: 保存并且退出编辑器
  • q: 只是退出编辑器

Vim 的其他操作

  1. 一般模式下
  • yy: 复制当前行
  • p: 粘贴到光标所在的下一行
  • {num}yy: 复制当前行以下的 num 行,例如复制往下的5行:5yy
  • dd: 删除当前行
  • {num}dd: 删除当前行往下的5行
  • gg: 移动到文档的首行
  • G / (也就是 shift + g): 移动到文档的最后一行
  • {num}G: 将关光标移动第 10 行4G
  • u: 撤销上一次编辑的内容

查看 Linux 中的命令

  1. man {命令}
  • 用来查看 Linux 系统手册上的帮助信息
  • 分屏显示,按回车翻一行,按空格翻一页

查看 ls 命令的使用:man ls

  1. help {命令}
  • help:列出 Linux 中所有的命令详细信息
  • help cd:列出命令 cd 的详细信息

Linux 中常用的命令

文件与目录相关的命令

  1. cd <路径>
  • 进入具体的路径
  1. ifconfig
  • 查看本机 Linux 的地址 ip 信息
  1. pwd
  • 查看当前所在的目录
  1. shutdown
  • shutdown now: 立即关机
  • shutdown -h {时间}: 定时关机
  • shutdown -r now: 立即重启
  1. reboot
  • 重启
  1. ls [-l/-a] {指定目录}
  • ls:查看当前所在的目录下所有的文件或者子目录
  • ls /home:查看 /home 目录下的所有文件和子目录
  • ls -l .home:以列表的形式展示指定 /home 下所有的文件和子目录
  • ls -a /home:显示指定目录下所有的文件和子目录包括虚拟目录
  1. cd {指定目录}
  • 切换目录
  • 以盘符开头叫绝对路径 cd /Dir/test
  • 以目录名开始的叫相对目录 cd test:进入当前目录的 test 目录
  • ~:代表当前用户的根目录:例如 lisi 的根目录是 /home/lisi,cd ~:进入李四的根目录 /home/lisi
  • ./:代表当前目录
  • ../:代表当前目录的上一级目录
  1. mkdir [-p] {目录名字}
  • 在指定的地方创建目录
  • 目录名可以是绝对路径也可以是相对路径
  • 一次只能创建一级目录 mkdir test2/test3 会失败
  • mkdir -p test2/test3:使用递归的方式创建目录,允许创建多级。先查看 test2 目录,不存在的话先创建 test2。然后再创建 test3
  1. rmdir
  • 删除目录
  • 当目录不为空时删除失败
  1. 创建文件
  • vi/vim {文件名}

    • 使用这个命令创建文件,先检查要创建的文件是否存在,不存在则创建,然后进入 vim 的文件操作模式
  • touch {文件1 文件2 ...}

    • 创建多个文件时,使用空格隔开每个文件
  1. cp [-r] {source} {dest}
  • 将 source 文件复制到 dest 文件中去
  • cp -r test2 test5:把 test2 目录复制到 test5 目录中
  1. rm [-f/-r/-rf] {文件名/目录名}
  • rm test1.txt:提示删除,会有二次确认
  • rm -f test1.txt:强制删除,无二次确认
  • 当要删除的是一个目录的时候,删除失败
  • rm -r test2:删除 test2 目录,先会确认进入 test2 目录中,查找 test2 中的所有内容,然后一一提示是否要删除该内容,最后确认完毕之后回到 test2 再询问要不要删除 test2。当 test2 中内容比较多的时候工程很繁琐
  • rm -rf test2;无二次确认直接删除 test2,无论 test2 中是否有其他的文件
  1. mv {source} {dest}
  • 将 source 文件/目录移动到 dest 文件/目录
  • mv test1.txt test2.tx:相当于对 test1.txt 重命名为 test2.txt
  • 在文件移动的过程中,如果存在同名的文件将会提示是否覆盖
  1. echo
  • 输出命令,可以输出字符串,或者系统的一些变量信息
  • echo $JAVA_HOME:输出系统配置的环境变量 JAVA_HOME 的值
  1. {命令1} > {文件路径} (向右尖括号)
  • 将前一个命令的输出结果输出到指定的文件之中,若文件不存在则新建
  • 若文件存在,则是覆盖写入。不是追加写入
  • ls > res.txt: 将当前文件夹中有的文件和子目录名都写入 res.txt
  • cat test1.txt > test2.txt: 将 test1.txt 中内容输出到 test2.txt 中,相当于复制

日期相关的命令

  1. date {+%Y / +%m/ +%d / }
  • 查看系统当前的完整日期和时间
  • date +%Y: 查看当前的年份
  • date +%m: 查看当前的月份
  • date +%d: 查看当前的日期
  • date +%H: 查看当前的小时
  • date +%M: 查看当前的分钟
  • date +%S: 查看当前的秒钟
  • date +%s: 查看时间戳开始计算的时间 (1970-01-20 11:08:00)
  • date '+%Y-%m-%d %H:%M:%S': 按 yyyy-MM-dd HH:mm:ss 的格式显示
  • date -S '2030-10-20 10:20:10' 设置当前的系统时间
  1. cal {年份}
  • cal: 查看当前月份的日历
  • cal 2020: 指定年份的日历

Linux 中关于搜索文件或者目录

  1. find [指定目录] [-size/-name/-user] [-/+/=] {带通配符的关键字}
  • find *.txt: 搜索当前目录中以 .txt 结尾的文件或者目录
  • fing test: 搜索当前目录中存在 test 关键字的文件或者目录
  • find /opt/testDir *.txt: 搜索 /opt/testDir 目录下的以 .txt 结尾的文件
  • find /opt/testDir -size -5k: 搜索 /opt/testDir 目录下的文件大小小于 5k 的文件 ( -5k: 小于5k,+5k: 大于 5k,=5k: 等于5k)
  • find /opt/testDir -size -5M: 搜索 /opt/testDir 目录下的文件大小小于 5M 的文件
  • find /opt/testDir -user lisi: 搜索 /opt/testDir 目录下属于 lisi 的文件
  1. locate {文件名}
  • 效率比 find 更高
  • 跟 find 的区别
    • find
      • 会实际的去到指定的目录中,一个一个文件的查找
      • 搜索的效率比较低
    • locate
      • Linux 对文件和目录的组织在底层是一颗目录树。locate 命令会在目录树中去查找文件,树形结构的查找一位着效率比较高
      • 但是该目录树不是实时更新的。每当新增或者删除一个文件的时候,目录树并不会立即更新该目录树。而是按照一定的策略去更新。
      • 所以该命令的搜索不一定是可靠的。
      • 一般在使用该命令的时候,都会先让同步底层的数据库,让该吗目录树先更新一次(updatedb),再使用 locate 命令去搜索系统中的文件

        updatedb locate *.txt

过滤

  1. |grep {过滤条件}

压缩

  1. 压缩或者解压单个文件
    • gzip {文件名}
    • 压缩完成之后生成一个 .gz 的压缩包(text.txt -> text.txt.gz)
    • 压缩完成之后会删除被压缩的文件
    • 在当前路径下生成一个 .gz 的压缩文件
  • gunzip {.gz压缩文件}
    • 解压完成之后会将原来的 .gz 文件删除
  1. 压缩或者解压多个文件
  • zip [生成的压缩文件的名称(一般使用 .zip 作为后缀名)] 文件或者目录名称列表(使用空格分离)

    • zip txt.zip test1.txt test2.txt test3.txt
  • unzip {压缩包文件名} [指定解压的路径]

    • unzip txt.zip:默认解压到当前的中
    • unzip txt.zip opt/txt/:解压到指定目录中
  1. tar
  • 解压 tar 包:tar -xvf {xxx.tar}
  • 解压 tar.gz 包:tar -xzvf {xxx.tar.gz} / 压缩 tar -czvf filename.tar.gz ./dir ./a.txt
    • -z:解压/压缩 .gz 文件
    • -c:建立一个压缩文件的参数指令(create 的意思);
    • -v:压缩的过程中显示文件(显示所有过程)!这个常用,但不建议用在背景执行过程!
    • -f:待压缩或待解压缩文件(该命令一般放在末尾指定压缩的文件或者解压的文件)
    • -x:解开一个压缩文件的参数指令!
    • -t:查看 tarfile 里面的文件
    • -r:向压缩归档文件末尾追加文件
    • -u:更新原压缩包中的文件

组管理

linux 中使用组管理用户和文件的权限 linux 中的每个用户都不能独立于组存在,每个用户必须属于一个或者多个组 linux 中的文件(目录)必须属于一个且只能属于一个组

从文件的角度看,用户分为三类

  1. 文件的所有者
  2. 同组用户
  3. 其他用户

组管理中常用得命令

  1. groupadd 组名
  • 添加组
  1. chown -R 新的所有者:[新的组] 文件名/目录名
  • 参数 R 标识递归的修改,连同目录中的文件都改成新的所有者和分组
  • 可以修改所有者分组
  1. chgrp -R 新的组 文件/目录名
  • chgrp dev test1.txt: 将文件 test1.txt 对应的分组改成 dev
  • chgrp -R dev /opt/dir: 将目录 dir 以及目录下的文件一起修改对应的组名为 dev

文件和目录的权限管理

Linux 中文件额目录的三种权限

  1. Read
  • 对于文件来说可以读取文件的内容(cat,more,less,head,tail)
  • 对于目录来说,
  1. Write
  • 对文件而言,是可以和使用 vi/vim 命令等来修改保存文件
  • 对目录来说实际可以重命名,删除修改创建目录中的子文件等操作
  1. Execute
  • 对文件来说,是可以执行其中的内容
  • 对目录来说,是可以切换到该目录(cd)中等命令

权限管理 Linux 中文件或者目录都是由以上的三部分权限控制的,权限标识符按照读,写,执行的顺序使用 r,w,x来标识,使用 - 占位代表该没有该权限,如 rwx 标识三种权限都具有,r-x 表示有读和执行的权限,没有写的权限。

  1. 查看文件的权限:ls -ls

  2. 修改文件或者目录的权限:chmod

  • 用 r,w,x 分别表示读写执行的权限
  • 也可以使用 4(2^2),2(2^1),1(2^0) 来分别表示 r,w,x
  • 用 u,g,o,a 分别表示给所有者,同组用户,其他组用户,所有用户修改权限
  • 用 +,-,= 分别表示给指定的用户增加,kdddd减少,设置对应的权限
  1. 给 text.txt 文件的同组用户增加读的权限,给其他组的用户减少写的权限,给所有者添加读写执行权限 chomd g+r, o-w, u=rwx text.txt

Linux 中的网络管理配置

Linux 中的网络管理配置是通过修改配置文件来实现的。 网络配置文件路径:/etc/sysconfig/network-scripts/ifcfg-ens33

BOOTPROTO="static" // ONBOOT="yes" IPADDR="192.168.11.128" GATEWAY="192.168.11.2" DNS="192.168.11.2"

Linux 中进程的管理

  1. 什么是进程 就是一个程序的执行,一个进程占用一个端口

  2. 线程 一个进程由许多的线程组成.

跟进程相关的命令

  1. ps [e/f]
  • ps:查看进程,指挥显示应用的进程
  • ps -e:显示所有进程,包括系统后台的进程
  • ps -ef:以全格式的形式查看所有的进程
  • 通常用来查看 Linux 中某些软件或者应用是否启动(MySQL等)

Linux 中的服务管理

服务是支持 Linux 运行的一些必要程序,本质上也是进程,也叫做守护进程。例如防火墙,sshd 服务等。一般来说,普通用户是使用不到服务的

怎么操作服务

  1. systemctl [start/stop/restart/reload/status/enable] {服务名称}
  • start:启动服务
  • stop:停止服务
  • restart:重启服务
  • reload:重载服务
  • status:查看服务的状态
  • enable:设置服务开机启动

Linux 中软件包管理

在 Linux 中管理安装包的程序,想在 Linux 中安装一个程序,要使用固定格式的软件包,一般来说用的最多的是 RPM 包,用户需要下载对应程序的 RPM 包到 Linux 中, 使用软件管理包来安装

  1. RPM 一中 Linux 中软件包打包喝安装软件包工具,它操作的软件包欧式 .rpm 结尾的文件。

使用 rpm 命令

  1. 查看当前系统中已经安装的 rpm 包:rpm -qa - 当系统中显示的 rpm 包太多的时候可以配合 |grep 过滤命令

  2. 卸载系统中已安装的 rpm 软件包:rpm -e {要卸载的软件} - 当系统卸载时会二次确认要卸载的程序

  3. 安装 rmp 软件包:rpm -ivh {xxx.rpm} - 一般来说用户要先去下载对应的 rpm 包,可以去软件的官方网站中下载 - 安装的软件包必须是以 .rpm 为后缀名的文件 - 安装 rpm 软件包的过程其实就是解压 .rpm 文件的过程

  4. YUM 包管理工具 Linux 中的软件相互之间会存在依赖的关系。oYUn 包是一种基于 RPM 的软件包管理工具,它可以从指定的服务器自动的下载 RPM 包并且自动安装,可以自动处理软件之间的依赖关系,类似于 Maven 和 Npm。

使用 YUM 管理工具(yum 命令)

  1. 查看当前系统中是否已经安装了 RPM 包:yum list installed - 可以配合过滤的命令查看指定的安装文件
  2. 卸载以安装的 RPM 包:yum remove {软件包名称} - 卸载的过程中会二次询问确认
  3. 安装 RPM 包:yum install {软件包名} - 将会去指定的服务器上搜索有美哦与需要安装的程序文件,找到之后会去分析当前要安装的文件依赖的文件。回同步安装所有的依赖

Linux 中的用户管理系统

  1. 任何使用 Linux 系统资源的用户,必须有一个合法的账号和密码,账号一般都是向系统管理员申请的, root 是 Linux 系统安装时默认创建的系统管理员账号,由 root 账户来创建普通用户

  2. 添加用户 假设我们要创建一个 lisi 的用户

  • useradd lisi

    • 在执行完上述命令之后,home 目录中会新建一个 lisi 的目录,用来存放该用户的个人文件
    • 给 lisi 创建了一个组,在 Linux 红任何一个用户都属于一个,在创建用户的时候如果不指定一个组,则会新建ige组名跟当前用户名一样的组,并且把该用户添加到该组
  • passwd lisi

    • 设置 lisi 的登录密码
    • 密码有一定的规则,不能过于简单
  • userdel lisi

    • 删除用户
    • 单独执行删除命令的时候 /home/lisi 这个目录还存在
    • userdel -r lisi:删除用户的时候联通用户的文件夹一起删除
  • su lisi

    • 切换账号 lisi
    • su root:切换账号为 root
    • 从权限低的用户切换到权限高的用户时需要去验证密码,反之不需要

Linux 中的组管理系统

Linux 中的组相当于角色的概念,可以对由共性的用户进行统一的管理,每一个用户至少属于一个组,不饿能独立于组存在。

  1. 添加组:groupadd {组名}
  2. 删除组:groupdel {组名}
  3. 把用户添加到组中:gpasswd -a {账户名} {组名}
  4. 把用户从头组中移除:gpasswd -d {用户名} {组名}
  5. 创建用户时指定对应的组:useradd -g {组名} {用户名}

命令速查

关机/重启/注销

常用命令作用
shutdown -h now即刻关机
shutdown -h 1010分钟后关机
shutdown -h 11:0011:00关机
shutdown -h +10预定时间关机(10分钟后)
shutdown -c取消指定时间关机
shutdown -r now重启
shutdown -r 1010分钟之后重启
shutdown -r 11:00定时重启
reboot重启
init 6重启
init 0⽴刻关机
telinit 0关机
poweroff⽴刻关机
halt关机
syncbuff数据同步到磁盘
logout退出登录Shell

系统信息和性能查看

常用命令作用
uname -a查看内核/OS/CPU信息
uname -r查看内核版本
uname -m查看处理器架构
arch查看处理器架构
hostname查看计算机名
who显示当前登录系统的⽤户
who am i显示登录时的⽤户名
whoami显示当前⽤户名
cat /proc/version查看linux版本信息
cat /proc/cpuinfo查看CPU信息
cat /proc/interrupts查看中断
cat /proc/loadavg查看系统负载
uptime查看系统运⾏时间、⽤户数、负载
env查看系统的环境变量
lsusb -tv查看系统USB设备信息
lspci -tv查看系统PCI设备信息
lsmod查看已加载的系统模块
grep MemTotal /proc/meminfo查看内存总量
grep MemFree /proc/meminfo查看空闲内存量
free -m查看内存⽤量和交换区⽤量
date显示系统⽇期时间
cal 2021显示2021⽇历表
top动态显示cpu/内存/进程等情况
vmstat 1 20每1秒采⼀次系统状态,采20次
iostat查看io读写/cpu使⽤情况
查看io读写/cpu使⽤情况查询cpu使⽤情况(1秒⼀次,共10次)
sar -d 1 10查询磁盘性能

磁盘和分区

常用命令作用
fdisk -l查看所有磁盘分区
swapon -s查看所有交换分区
df -h查看磁盘使⽤情况及挂载点
df -hl同上
du -sh /dir查看指定某个⽬录的⼤⼩
du -sk * | sort -rn从⾼到低依次显示⽂件和⽬录⼤⼩
mount /dev/hda2 /mnt/hda2挂载hda2盘
mount -t ntfs /dev/sdc1 /mnt/usbhd1指定⽂件系统类型挂载(如ntfs)
mount -o loop xxx.iso /mnt/cdrom挂 载 iso ⽂ 件
umount -v /dev/sda1通过设备名卸载
umount -v /mnt/mymnt通过挂载点卸载
fuser -km /mnt/hda1强制卸载(慎⽤)

⽤户和⽤户组

常用命令作用
useradd codesheep创建⽤户
userdel -r codesheep删除⽤户
usermod -g group_name user_name修改⽤户的组
usermod -aG group_name user_name将⽤户添加到组
usermod -s /bin/ksh -d /home/codepig –g dev codesheep修改⽤户codesheep的登录Shell、主⽬录以及⽤户组
groups test查看test⽤户所在的组
groupadd group_name创建⽤户组
groupdel group_name删除⽤户组
groupmod -n new_name old_name重命名⽤户组
su - user_namesu - user_name
passwd修改⼝令
passwd codesheep修改某⽤户的⼝令
w查看活动⽤户
id codesheep查看指定⽤户codesheep信息
last查看⽤户登录⽇志
crontab -l查看当前⽤户的计划任务
cut -d: -f1 /etc/passwd查看系统所有⽤户
cut -d: -f1 /etc/group查看系统所有组

⽹络和进程管理

常用命令作用
ifconfig查看⽹络接⼝属性
ifconfig eth0查看某⽹卡的配置
route -n查看路由表
netstat -lntp查看所有监听端⼝
netstat -antp查看已经建⽴的TCP连接
netstat -lutp查看TCP/UDP的状态信息
ifup eth0启⽤eth0⽹络设备
ifdown eth0禁⽤eth0⽹络设备
iptables -L查看iptables规则
ifconfig eth0 192.168.1.1 netmask 255.255.255.0配置ip地址
dhclient eth0以dhcp模式启⽤eth0
route add -net 0/0 gw Gateway_IP配置默认⽹关
route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1配置静态路由到达⽹络'192.168.0.0/16'
route del 0/0 gw Gateway_IP删除静态路由
hostname查看主机名
host www.baidu.com解析主机名
nslookup www.baidu.com查询DNS记录,查看域名解析是否正常
ps -ef查看所有进程
ps -ef | grep codesheep过滤出你需要的进程
kill -s namekill指定名称的进程
kill -s pidkill指定pid的进程
top实时显示进程状态
vmstat 1 20每1秒采⼀次系统状态,采20次
iostatiostat
sar -u 1 10查询cpu使⽤情况(1秒⼀次,共10次)
sar -d 1 10查询磁盘性能

常⻅系统服务命令

常用命令作用
chkconfig --list列出系统服务
service <服务名> status查看某个服务
service <服务名> start启动某个服务
service <服务名> stop终⽌某个服务
service <服务名> restart重启某个服务
systemctl status <服务名>查看某个服务
systemctl start <服务名>启动某个服务
systemctl stop <服务名>终⽌某个服务
systemctl restart <服务名>重启某个服务
systemctl enable <服务名>关闭⾃启动
systemctl disable <服务名>关闭⾃启动

⽂件和⽬录操作

常用命令作用
cd <⽬录名>进⼊某个⽬录
cd ..回上级⽬录
cd ../..回上两级⽬录
cd进个⼈主⽬录
cd -回上⼀步所在⽬录
pwd显示当前路径
ls查看⽂件⽬录列表
ls -F查看⽬录中内容(显示是⽂件还是⽬录)
ls -l查看⽂件和⽬录的详情列表
ls -a查看隐藏⽂件
ls -lh查看⽂件和⽬录的详情列表(增强⽂件⼤⼩易读性)
ls -lSr查看⽂件和⽬录列表(以⽂件⼤⼩升序查看)
tree查看⽂件和⽬录的树形结构
mkdir <⽬录名>创建⽬录
mkdir dir1 dir2同时创建两个⽬录
mkdir -p /tmp/dir1/dir2创建⽬录树
rm -f file1删除'file1'⽂件
rmdir dir1删除'dir1'⽬录
rm -rf dir1删除'dir1'⽬录和其内容
rm -rf dir1 dir2同时删除两个⽬录及其内容
mv old_dir new_dir重命名/移动⽬录
cp file1 file2复制⽂件
cp dir/* .复制某⽬录下的所有⽂件⾄当前⽬录
cp -a dir1 dir2复制⽬录
cp -a /tmp/dir1 .复制⼀个⽬录⾄当前⽬录
ln -s file1 link1创建指向⽂件/⽬录的软链接
ln file1 lnk1创建指向⽂件/⽬录的物理链接
find / -name file1从跟⽬录开始搜索⽂件/⽬录
find / -user user1搜索⽤户user1的⽂件/⽬录
find /dir -name *.bin在⽬录/dir中搜带有.bin后缀的⽂件
locate <关键词>快速定位⽂件
locate *.mp4寻找.mp4结尾的⽂件
whereis <关键词>显示某⼆进制⽂件/可执⾏⽂件的路径
which <关键词>查找系统⽬录下某的⼆进制⽂件
chmod ugo+rwx dir1设置⽬录所有者(u)、群组(g)及其他⼈(o)的读(r)写(w)执⾏(x)权限
chmod go-rwx dir1移除群组(g)与其他⼈(o)对⽬录的读写执⾏权限
chown user1 file1改变⽂件的所有者属性
chown -R user1 dir1改变⽬录的所有者属性
chgrp group1 file1改变⽂件群组
chown user1:group1 file1改变⽂件的所有⼈和群组

⽂件查看和处理

常用命令作用
cat file1查看⽂件内容
cat -n file1查看内容并标示⾏数
tac file1从最后⼀⾏开始反看⽂件内容
more file1more file1
less file1类似more命令,但允许反向操作
head -2 file1查看⽂件前两⾏
tail -2 file1查看⽂件后两⾏
tail -f /log/msg实时查看添加到⽂件中的内容
grep codesheep hello.txt在⽂件hello.txt中查找关键词codesheep
grep ^sheep hello.txt在⽂件hello.txt中查找以sheep开头的内容
grep [0-9] hello.txt选择hello.txt⽂件中所有包含数字的⾏
sed 's/s1/s2/g' hello.txt将hello.txt⽂件中的s1替换成s2
sed '/^$/d' hello.txt从hello.txt⽂件中删除所有空⽩⾏
sed '/ *#/d; /^$/d' hello.txt从hello.txt⽂件中删除所有注释和空⽩⾏
sed -e '1d' hello.txt从⽂件hello.txt 中排除第⼀⾏
sed -n '/s1/p' hello.txt查看只包含关键词"s1"的⾏
sed -e 's/ *$//' hello.txt删除每⼀⾏最后的空⽩字符
sed -e 's/s1//g' hello.txt从⽂档中只删除词汇s1并保留剩余全部
sed -n '1,5p;5q' hello.txt查看从第⼀⾏到第5⾏内容
sed -n '5p;5q' hello.txt查看第5⾏
paste file1 file2合并两个⽂件或两栏的内容
paste -d '+' file1 file2合并两个⽂件或两栏的内容,中间⽤"+"区分
sort file1 file2排序两个⽂件的内容
comm -1 file1 file2⽐较两个⽂件的内容(去除'file1'所含内容)
comm -2 file1 file2⽐较两个⽂件的内容(去除'file2'所含内容
comm -3 file1 file2⽐较两个⽂件的内容(去除两⽂件共有部分)

打包和解压

常用命令作用
zip xxx.zip file压缩⾄zip包
zip -r xxx.zip file1 file2 dir1将多个⽂件+⽬录压成zip包
unzip xxx.zip解压zip包
tar -cvf xxx.tar file创建⾮压缩tar包
tar -cvf xxx.tar file1 file2 dir1将多个⽂件+⽬录打tar包
tar -tf xxx.tar查看tar包的内容
tar -xvf xxx.tar解压tar包
tar -xvf xxx.tar -C /dir将tar包解压⾄指定⽬录
tar -cvfj xxx.tar.bz2 dir创建bz2压缩包
tar -jxvf xxx.tar.bz2解压bz2压缩包
tar -cvfz xxx.tar.gz dir创建gzip压缩包
tar -zxvf xxx.tar.gz解压gzip压缩包
bunzip2 xxx.bz2解压bz2压缩包
bzip2 filename压缩⽂件
gunzip xxx.gz解压gzip压缩包
gzip filename压缩⽂件
gzip -9 filename最⼤程度压缩

RPM包管理命令

常用命令作用
rpm -qa查看已安装的rpm包
rpm -q pkg_name查询某个rpm包
rpm -q --whatprovides xxx显示xxx功能是由哪个包提供的
rpm -q --whatrequires xxx显示xxx功能被哪个程序包依赖的
rpm -q --changelog xxx显示xxx包的更改记录
rpm -qi pkg_name查看⼀个包的详细信息
rpm -qd pkg_name查询⼀个包所提供的⽂档
rpm -qc pkg_name查看已安装rpm包提供的配置⽂件
rpm -ql pkg_name查看⼀个包安装了哪些⽂件
rpm -qf filename查看某个⽂件属于哪个包
rpm -qR pkg_name查询包的依赖关系
rpm -ivh xxx.rpm安装rpm包
rpm -ivh --test xxx.rpm测试安装rpm包
rpm -ivh --nodeps xxx.rpm安装rpm包时忽略依赖关系
rpm -e xxx卸载程序包
rpm -Fvh pkg_name升级确定已安装的rpm包
rpm -Uvh pkg_name升级rpm包(若未安装则会安装)
rpm -V pkg_nameRPM包详细信息校验

YUM包管理命令

常用命令作用
yum repolist enabled显示可⽤的源仓库
yum search pkg_name搜索软件包
yum install pkg_name下载并安装软件包
yum install --downloadonly pkg_name只 下 载 不 安 装
yum list显示所有程序包
yum list installed查看当前系统已安装包
yum list updates查看可以更新的包列表
yum check-update查看可升级的软件包
yum update更新所有软件包
yum update pkg_name升级指定软件包
yum deplist pkg_name列出软件包依赖关系
yum remove pkg_name删除软件包
yum clean all清除缓存
yum clean packages清除缓存的软件包
yum clean headers清除缓存的header

DPKG包管理命令

常用命令作用
dpkg -c xxx.deb列出deb包的内容
dpkg -i xxx.deb安装/更新deb包
dpkg -r pkg_name移除deb包
dpkg -P pkg_name移除deb包(不保留配置)
dpkg -l查看系统中已安装deb包
dpkg -l pkg_name显示包的⼤致信息
dpkg -L pkg_name查看deb包安装的⽂件
dpkg -s pkg_name查看包的详细信息
dpkg –unpack xxx.deb解开deb包的内容

APT软件⼯具

常用命令作用
apt-cache search pkg_name搜索程序包
apt-cache show pkg_name获取包的概览信息
apt-get install pkg_name安装/升级软件包
apt-get purge pkg_name卸载软件(包括配置)
apt-get remove pkg_name卸载软件(不包括配置)
apt-get update更新包索引信息
apt-get upgrade更新已安装软件包
apt-get clean清理缓存