1. 首页
  2. 技术小贴

Linux命令

查看

技术小贴
技术小贴

uname

  • 查看系统相关信息
  • 常用命令选项
    • -a: 显示主机名、内核版本、硬件平台等详细信息
    • -r: 显示内核版本
  • 示例
    [root@rh-6 ~]# uname -r
    2.6.32-220.el6.i686

查看CPU信息

  • /proc/cpuinfo
  • 示例
    [root@rh-6 ~]# cat /proc/cpuinfo 
    processor       : 0
    vendor_id       : GenuineIntel
    cpu family      : 6
    ...

查看内存信息

  • /proc/meminfo
  • 示例
    [root@rh-6 ~]# cat /proc/meminfo
    MemTotal:        2071204 kB
    MemFree:         1407868 kB
    Buffers:           24536 kB
    ...

history

  • 查看历史命令

关机

shutdown

[root@rh-6 ~]# shutdown -h now

poweroff

[root@rh-6 ~]# poweroff

halt

[root@rh-6 ~]# halt

shutdown

[root@rh-6 ~]# shutdown -r now

reboot

[root@rh-6 ~]# reboot

进程

ps

  • 列出系统中当前运行的那些进程
  • 格式:ps [选项]
  • 常用命令选项:
    • a: 显示现行终端机下的所有程序,包括其他用户的程序
    • u: 以用户为第一列的格式来显示程序状况
    • x: 显示所有程序,不以终端机来区分
    • aux: 显示所有程序,包含其他使用者的程序
  • 往往配合|grep 使用(|grep相当于检索)
    • ps aux | grep root

kill

  • 杀死进程
  • 格式:kill [选项] [进程号(PID)]
  • 常用命令选项:
    • -9: 使 kill 的级别更高

文件

pwd

  • 查看工作目录

cd

  • 切换工作目录

ls

  • 列表(List)显示目标内容
  • 格式:ls [选项]… [目录或文件名]
  • 常用命令选项:
    • -l: 以长格式显示
    • -a: 显示所有子目录和文件的信息,包括隐藏文件
    • -A: 类似于 -a ,但不显示 ... 目录信息
    • -d: 显示目录本身的属性
    • -h: 以更易读的字节单位(K、M等)显示信息
    • -R: 递归显示内容
    • –color: 以长格式显示

du

  • 统计目录及文件的空间占用情况(estimate file space usage)
  • 格式:du [选项]… [目录或文件名]
  • 常用命令选项:
    • -a: 统计时包括所有的文件,而不仅仅只统计目录
    • -h: 以更易读的字节单位(K、M等)显示信息
    • -s: 只统计每个参数所占用空间总的大小

df

  • 显示文件系统的磁盘空间占用情况
    • 若不指定文件,则显示所有的磁盘空间占用情况
    • 如指定文件,则显示文件所在磁盘空间占有情况
  • 格式:df [选项]… [目录或文件名]
  • 常用命令选项:
    • -h: 以更易读的字节单位(K、M等)显示信息

mkdir

  • 创建新的目录(Make Directory)
  • 格式:mkdir [-p] [/路径/]目录名
  • 选项:
    • -p: 递归创建

touch

  • 新建空文件,或更新文件时间标记
  • 格式:touch 文件名…
  • ln命令
    • 为文件或目录简历链接(Link)
    • 格式:ln [-s] 源文件或目录名 链接文件或目标目录
    • 选项:
      • -s: 建立符号链接文件(省略此项则建立硬链接)

cp

  • 复制(Copy)文件或目录
  • 格式:cp [选项]… 源文件或目录名… 目标文件或目录
  • 常用命令选项:
    • -r: 递归复制整个目录树
    • -p: 保持原文件的属性不变
    • -f: 强制覆盖目标同名文件或目录
    • -i: 需要覆盖文件或目录时进行提醒

rm

  • 删除(Remove)文件或目录
  • 格式:rm [选项]… 文件或目录
  • 选项:
    • -r: 递归删除整个目录树
    • -f: 强制文件或目录,不进行提醒
    • -i: 删除文件或目录时提醒用户确认

mv

  • 移动(Move)文件或目录
    • 若目标位置与源文件位置相同,则相当于改名
  • 格式:mv [选项]… 源文件或目录… 目标文件或目录

find

  • 用于查找文件或目录
  • 格式:find [查找范围] [查找条件] [查找内容]
  • 常用查找条件:
    • -name: 按 文件名称 查找
    • -size: 按 文件大小 查找
    • -user: 按 文件属主 查找
    • -type: 按 文件类型 查找
    • -perm: 按 权限树 查找
  • 示例
    • find -name 111.txt:当前路径下搜索文件111.txt
    • find /root/桌面 -name 111.txt/root/桌面目录下搜索文件111.txt
    • find /root/桌面 -user root:/root/桌面目录下搜索属主为root的文件
    • find /root/桌面 -nouser/root/桌面目录下搜索作废用户的文件
    • find /root/桌面 -empty/root/桌面目录下搜索空文件和空目录
    • find /root/桌面 -amin -10/root/桌面目录下搜索最后 10分钟 访问的文件
    • find /root/桌面 -atime -10/root/桌面目录下搜索最后 10天 访问的文件
    • find /root/桌面 -mmin -10/root/桌面目录下搜索最后 10分钟 修改的文件
    • find /root/桌面 -mtime -10/root/桌面目录下搜索最后 10天 修改的文件
    • find /root/桌面 -perm 777/root/桌面目录下搜索权限数为777的文件

cat

  • 显示文件全部内容
  • 格式:cat [-n] 文件…
    • 可以同时查看多个文件
  • 常用命令选项:
    • -n: 给输出的所有行加上编号
  • 常见应用:
    • cat a b ... > c
      • 将 文件a 文件b 等文件 的内容导入 文件c 中
      • > 并不仅限于和 cat 搭配,它还可以与 ls 等搭配,只要是把文本导入某文件,都可以用
    • cat a |grep text
      • 检索 文件a 里的 关键字text 相关文本
    • cat a |grep -v text
      • 显示去除 关键字text 相关文本后的 文件a
    • cat a |sort
      • 将 文件a 文本排序 再显示
      • 数字按照 123
      • 字母按照 abc
    • cat a |uniq
      • 将 文件a 文本去重 再显示
      • 只有两行完全一样才被视为重复
    • cat a |wc -l
      • 计算 文件a 的行数
    • cat a >> b
      • 文本重定向
      • 即将 文件b 变为 文件a 的复制

diff

  • diff a b
    • 比较 文件a 和 文件b 的区别

split

  • split -l [n] a
    • 将 文件a 以 n 行为单位进行分割
  • 显示文件开头几行
  • 格式:head 文件

tail

  • 显示文件末尾几行
  • 格式:tail 文件

tac

  • 反向显示文件全部内容
  • 格式:tac 文件

nl

  • 带行数显示文件全部内容
  • 格式:nl 文件

more

  • 按页显示文件全部内容
    • space 下一页
    • b 上一页
    • q 退出
  • 格式:more 文件

less

  • 类似于 more 但更加灵活,可以使用如 PageUpPageDown 这种翻看操作
  • 格式:less 文件

wc

  • 统计文件中行数、单词数量、字符数
  • 格式:wc [选项] 文件
  • 常用命令选项:
    • -l: 统计行数
    • -w: 统计单词数
    • -c: 统计字符数
  • 示例
    [root@rh-6 ~]# wc install.log
    790  1593 34319 install.log

    这表示 install.log 有 790 行,1593 个单词,34319 个字符

scp

  • scp 本地目录/文件 root@ip地址:/远端目录 将文件从本地发送到远端
  • scp root@ip地址:/远端目录/文件 本地目录 将文件从远端接收到本地

压缩

gzip

  • 压缩或解压文件(gzip格式)
  • 压缩
    • 格式:gzip [-9] 文件名 压缩文件名
    • 压缩文件名 为 文件名.gz
    • -9: 高压缩比压缩
  • 解压
    • 格式:gzip -d 压缩文件名

bzip2

  • 压缩或解压文件(bzip2格式)
  • 压缩
    • 格式:bzip2 [-9] 文件名 压缩文件名
    • 压缩文件名 为 文件名.bz2
    • -9: 高压缩比压缩
  • 解压
    • 格式:bzip2 -d 压缩文件名

tar

  • 归档或释放文件(没有压缩功能)
  • 格式:tar [选项] 归档文件名 源文件或目录
  • 常用命令选项:
    • -c: 创建归档文件,拓展名为.tar
    • -x: 解开归档文件
    • -t: 列表查看包内的文件(不释放解包)
    • -r: 追加文件至归档结尾
    • -v: 输出详细信息
    • -f: 表示使用归档文件
    • -p: 解包时保留原始文件及目录权限
    • -C: 解包时指定释放的目标文件夹
    • -z: 调用 gzip 程序进行解压或压缩
    • -j: 调用 bzip2 程序进行解压或压缩
  • 典型使用
    • tar -cvf 4.tar 1 2 3
      • 将 文件1 文件2 文件3 打包归档为 4.tar
    • tar -xvf 4.tar
      • 将 4.tar 解包
    • tar -xvf 4.tar
      • 查看 4.tar 内的文件
    • tar -cvzf 4.tar.gz 1 2 3
      • 创建归档压缩文件 4.tar.gz
    • tar -cvjf 4.tar.bz2 1 2 3
      • 创建归档压缩文件 4.tar.bz2
    • tar -xvzf 4.tar.gz -C /桌面/New
      • 解压释放归档文件 4.tar.gz 到 /桌面/New 里
    • tar -xvjf 4.tar.bz2 -C /桌面/New
      • 解压释放归档文件 4.tar.bz2 到 /桌面/New 里

软件

rpm安装升级

  • 格式:rpm [选项] RPM包文件…
  • 用法:
    • 不同选项适用于不同情况
    • -i: 安装一个新的 RPM软件包
    • -U: 升级某个 RPM软件,若原本未安装,则进行安装
    • -F: 升级某个 RPM软件,若原本未安装,则放弃安装

rpm卸载

  • 格式:rpm -e 软件名

rpm 辅助选项

  • –force: 强制安装所指定的 rpm 软件包
  • –nodeps: 安装、升级或卸载软件时,忽略依赖关系
  • -h: 以 “#” 号显示安装的进度
  • -v: 显示安装过程中的详细信息
  • -q:查询
    • -qa 列出软件的全称(不接软件名则列出所有安装过的软件)
    • -qi 列出软件的详细信息(不可不接软件名)
    • -ql 列出软件的安装目录(不接软件名则列出所有软件的路径)
  • 示例
    • rpm -ivh Nessus-6.10.9-es6.x86_64.rpm 安装 Nessus
    • rpm -qa 查看所有安装了的软件包
    • rpm -qa |grep kernel 把 kernel 相关的包列出来
    • rpm -q Nessus 查看 Nessus 软件包全名(只列主包)
    • rpm -ql Nessus-6.10.9-es6.x86_64 查看 Nessus-6.10.9-es6.x86_64 在哪些目录下写入了文件
    • rpm -qlp Nessus-6.10.9-es6.x86_64 查看没有安装的 Nessus-6.10.9-es6.x86_64 将在哪些目录下写入文件
    • rpm -evh Nessus 卸载 Nessus

yum从光盘安装软件

  • 配置 yum 源为光盘
    • vi /etc/yum.repos.d/rhel-source.repo
    • 修改 rhel-source.repo内容
      [rhel-source]
      name=Red Hat Enterprise Linux $releasever - $basearch - Source
      baseurl=file:///media/Server
      enabled=1
      gpgcheck=1
      gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
    • rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
  • 安装软件(以 火狐 为例)
    • yum -y install firefox
    • yum -y localinstall /media/RHEL_6.2 i386 Disc 1/Packages/firefox-3.6.24-3.el6_1.i686.rpm
      • 该命令为本地安装
      • 该命令可以批量安装
  • 卸载软件(以 火狐 为例)
    • yum -y remove firefox
    • yum -y groupremove Installed Groups
      • 将所有安装的程序全部删掉
  • 更新软件
    • yum update 全部更新
    • yum update firefox 更新 火狐
    • yum check-update 检查可更新的包
    • yum makecache 更新源,将更新源的包信息缓存到本地电脑
      • yum clean all 清除全部缓存
  • 查询软件
    • yum list 列举系统中已安装的包
    • yum list |grep firefox 查看有没有 火狐 对应的包
    • yum grouplist 以组的形式列举系统中已安装的包
    • yum deplist firefox 查看 火狐 的依赖关系
  • -y 表示直接确认,不用询问

编译安装

  • 编译安装过程
    • 下载源代码安装包文件
    • 步骤1:tar 解包
      • 解压并释放源代码包到指定的目录
    • 步骤2:./configure 配置
      • 设置安装目录、安装模块等选项
    • 步骤3:make 编译
      • 生成可执行的二进制文件
    • 步骤4:make install 安装
      • 复制二进制文件到系统,配置应用环境
    • 测试及应用、维护软件

apt-get

  • apt-get update 更新源
  • apt-get upgrade 更新系统中所有的包
  • apt-get install xxx 安装 xxx
  • apt-get remove xxx 卸载 xxx
  • apt-cache search xxx 查看 xxx 包含在哪个包里
  • apt-get clean 清空缓存包

dpkg

  • dpkg -i xxx 安装 xxx
  • dpkg -L xxx 查看 xxx 安装位置
  • dpkg -c xxx.deb** 查看 xxx 将会安装到哪个位置
  • dpkg -l xxx** 查看 xxx 版本
  • dpkg -s xxx** 查看 xxx 详细信息
  • dpkg -r xxx 删除 xxx 但保留配置文件
  • dpkg -P xxx 删除 xxx 且删除配置文件

用户

useradd

  • 添加用户
  • 格式:useradd [选项]… 用户名
  • 常用命令选项
    • -u: 指定 UID 标记好
    • -d: 指定 宿主目录,缺省为 /home/用户名
    • -e: 指定账号 失效时间
    • -g: 指定用户的 基本组名(或 UID)
    • -G: 指定用户的 附加组名(或 GID)
    • -M: 不为用户建立并初始化 宿主目录
    • -s: 指定用户的登录 Shell

userdel

  • 删除用户
  • 格式:userdel [-r] 用户名
  • 常用命令选项
    • -r: 连同用户宿主目录一并删除

groupadd

  • 添加用户组
  • 格式:groupadd [选项]… 用户组名
  • 常用命令选项
    • -g: 指定一个 GID

groupdel

  • 删除用户组
  • 格式:groupdel 用户组名

查看用户信息

  • 路径:/etc/passwd
  • 使用方式:
    • cat /etc/passwd
  • 输出具体格式:
    • 用户名:密码(用x占位):UID:GID:用户全名:home目录:shell
  • 查看用户个数:
    • cat /etc/passwd |wc -l
  • 查看每一项用户信息:
    • cat /etc/passwd |awk -F ':' '{print $序号,$序号...}'
      • 用户名 —— 1
      • 密码(用x占位)—— 2
      • UID —— 3
      • GID —— 4
      • 用户全名 —— 5
      • home目录 —— 6
      • shell —— 7
      • 全部 —— (n)

查看用户密码

  • 路径:/etc/shadow
  • 使用方式:
    • cat /etc/shadow
  • 查看指定用户的密码:
    • cat /etc/shadow |grep username
  • 修改用户密码:
    • passwd username

查看组信息

  • 路径:/etc/group
  • 使用方式:
    • cat /etc/group
  • 查看组的最后修改时间
    • ls -al /etc/group

权限

chmod

  • 格式:chmod [选项] 文件或目录
  • 数字方式
    • 选项为三个数字,每个数字都可以选择 0-7
      • 三个数字 表示 三个组的权限
        • 第一个数字 表示 所有者的权限
        • 第二个数字 表示 所属分组的权限
        • 第三个数字 表示 所有用户的权限
      • 0-7 表示 拥有的权限,其本质为 三位的二进制数
        • 0/1(最低位)表示 是否可执行 为1表示有可执行权限,为0表示没有
        • 0/2(第二位)表示 是否可写 为1表示有可写权限,为0表示没有
        • 0/4(最高位)表示 是否可读 为1表示有可读权限,为0表示没有
        • 选择好权限后,将该三位二进制数装变成10进制数,放在对应的组别即可
    • 典型示例
      • chmod 777 1.txt
        • 表示赋予 1.txt 所有权限,即 所有者、所属分组用户、所有用户 都对 1.txt 又有可读,可写,可执行权限
  • 增减方式
    • 选项为 对应组+/-权限
      • 对应组
        • u 代表 所有者
        • g 代表 所属分组
        • o 代表 所有用户
      • 加减
        • + 代表 增加权限
        • 代表 去除权限
      • 权限
        • r 代表 可读权限
        • w 代表 可读权限
        • x 代表 可执行权限
    • 典型示例
      • chmod u-w 1.txt
        • 表示删去 1.txt 所有者 的 可写权限

chown

  • 更改文件的属主
  • 格式:chown [-R] 属主名:属组名 文件或目录
  • 常用命令选项
    • -R: 递归方式更改属主
  • 典型示例
    • chown -R root:root www
    • chown -R apache www
      • 只把 使用者 改为 Apache

计划

crontab

  • 编辑计划任务:crontab -e
    • 在该模式可以设定计划任务
    • 格式:分 时 日 月 周 命令
  • 删除计划任务:crontab -r
  • 查看计划任务:crontab -l

编辑

vi

  • vi 是一个较大的 UNIX 命令,在启动的时候有他自己的选项和参数
  • 进入 vi
    • 基本语法:vi [-option] [+[n]] [file]
    • 常用命令选项:
      • -r: 用于恢复系统突然崩溃时正在编辑的文件
      • -R: 用于以只读方式打开文件
    • +n 用来指明进入 vi 后直接位于文件的第 n 行,如不指定 n,则位于最后一行
  • 文本插入
    • 在命令方式下使用某些命令会导致 vi 马上进入文本插入方式
    • 在这种方式下,用户的任何输入都被当做是文本的内容看待,并将其显示在屏幕上
      命令 作用
      a 在光标后附加文本
      A 在本行行末附加文本
      i 在光标前插入文本
      I 在本行开始插入文本
      o 在光标下插入新行
      O 在光标上插入新行
  • 搜索和替换
命令 作用
/string 搜索光标后的指定字符串
?string 搜索时忽略大小写:set ic
n 搜索指定字符串的下一个出现位置
:%s/old/new/g 全文替换指定字符串
. 光标行
$ 最后一行
:[n1],[n2]s/old/new/g 在n1行到n2行替换指定字符串
  • vi 基本用法
    • .
      • 命令方式
      • 重复上一指令
    • u
      • 命令方式
      • 取消上一指令
    • D
      • 命令方式
      • 从光标删除至行尾
    • [n]dd
      • 命令方式
      • 剪切光标后的 n 行
      • 不输入 n ,相当于 n 取默认值 1
    • p
      • 命令方式
      • 粘贴
    • [n]yy
      • 命令方式
      • 复制 n 次
      • 不输入 n ,相当于 n 取默认值 1
    • r[x]
      • 命令方式
      • 将光标出的字符替换为 x
    • :[n1],[n2] co [nx]
      • 行方式
      • 将 n1 到 n2 间的内容复制到 nx
    • :[n1],[n2] m [nx]
      • 行方式
      • 将 n1 到 n2 间的内容移动到 nx
    • :set nu
      • 行方式
      • 显示行号
    • :w
      • 行方式
      • 保存
    • :q
      • 行方式
      • 退出
    • 😡
      • 行方式
      • 保存并退出
      • 相当于 :wq
    • ZZ
      • 命令方式
      • 😡
    • 如果由于读写权限或是更新方面的问题,导致 vi 拒绝执行保存文件或退出 vi 的命令,那么可以在命令后加一个 ! 表示强制执行。

sed

sed是一种流编辑器,它是文本处理中非常中的工具,能够完美的配合正则表达式使用,功能不同凡响。

1) 去除数字

➜  shell echo "123:abc:789%ABC" | sed 's/[0-9]//g'
:abc:%ABC
  • [0-9]匹配一个数字,
  • s/A/B/ 将A替换为B
  • g表示全局替换为空格

2) 截取ip

➜  shell ifconfig | grep "inet " | sed 's/:/ /g' | awk '{print $3}'
172.17.0.1
192.168.173.128
127.0.0.1

cut

-b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。
-c :以字符为单位进行分割。

-d:自定义分隔符,默认为制表符。

-f:与-d一起使用,指定显示哪个区域。

-n:取消分割多字节字符。仅和-b标志一起使用。如果字符的最后一个字节落在由-b标志的List参数指示的范围之内,该字符将被写出;否则,该字符将被排除。

echo "123abc" | cut -b 2,5  #输出2b
echo "123abc" | cut -b 2,5  #输出23ab
echo "123abc" | cut -c 1-4 #输出123a
echo "123:abc:789%ABC" | cut -d ":" -f 1 #输出123
echo "123:abc:789%ABC" | cut -d \: -f 1  #输出123

awk

语法格式为:awk '条件1{动作1} 条件2{动作2}...' 文件

awk一次读入一整行,默认以tab键或者空格为分隔符将一行分为多个字段,表示为$1、$2、$3…,其中$0表示文件名。

如下实例:

➜  shell ping www.baidu.com -s 1000 -c 5 | grep "time=" | sed 's/=/ /g' | awk '{print $10}'
191
143
101
180
135

网络

hostname

查看或设置当前主机名

ifconfig

  • 查看所有活动网络接口信息
    • ifconfig
  • 查看指定网络接口信息
    • ifconfig 网络接口名
名称 类型
eth0 以太网
lo (虚拟)回环设备
ppp0 使用 PPP 协议的串口设备(通常指调制解调器)
tr0 令牌环(Token Ring)
fddi0 光纤

netstat

  • 查看系统的网络连接状态、路由表、接口统计等信息
    • netstat [选项]
  • 常用选项:
    • -a: 显示所有活动链接
    • -n: 以数字形式显示
    • -p: 显示进程信息
    • -t: 查看 TCP 协议相关信息
    • -u: 查看 UDP 协议相关信息
    • -r: 显示路由表信息
    • | grep :n 查看端口 n
  • 示例:
    [root@rh-6 ~]# netstat -anpt | grep :22
    tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      1678/sshd           
    tcp        0      0 :::22                       :::*                        L

route

查看或设置主机中路由表信息

  • route -n

删除路由表中的默认网关记录

  • 格式:route del default gw IP地址

向路由表中添加默认网关记录

  • 格式:route add default gw IP地址

删除到指定网段的路由记录

  • 格式:route del -net 网段地址

添加到指定网段的路由记录

  • 格式:route add -net 网段地址/24 gw IP地址

启用、禁用网络接口配置

  • 重启 network 网络服务
    • service network restart
  • 禁用、启用 网络接口
    • ifdown eth0 禁用
    • ifup eth0 启用

域名解析配置文件

  • /etc/resolv.conf
    • 保存本机需要使用的 DNS服务器 的 IP地址

网络接口配置文件

红帽系列:/etc/sysconfig/network-scripts/目录下的

  • ifcfg-eth0: 第一块以太网卡的配置
  • ifcfg-eth1: 第二块以太网卡的配置

Debian系列:/etc/network/interface

原创文章,作者:小嵘源码,如若转载,请注明出处:https://www.lcpttec.com/linuxorder/

联系我们

176-888-72082

在线咨询:点击这里给我发消息

邮件:2668888288@qq.com

工作时间:周一至周五,9:00-18:00,节假日休息

QR code