前端工程师需要掌握的linux基础命令


有点标题党啊,就是个总结,要是真的一行一行看下去了,相信你会收获很多的

基本命令

  • sleep 500 暂停
  • ctrl + z 暂停
  • progress & 后台运行
  • jobs\bg\fg 查看后台任务
  • file 查看文件类型
  • cd - 上一个工作目录
  • pwd 查看当前工作目录
  • touch 创建文件或者更新文件创建时间
  • rm -i 交互式删除

时间相关

  • date 查看时间
  • date +%Y—%m—%d 格式化显示
  • date -s “20:20:16” 修改时间
  • hwclock 查看硬件时钟
  • cal 查看日历
  • uptime 查看系统运行时间

输出查看

  • echo 输出指定的字符到标准输出
  • cat 输出指定文件到标准输出
  • head -n 指定行数
  • tail
    • -n 显示行数
    • -f 实时更新
  • more 只能向下翻页
  • less 上下翻页

查看硬件信息

  • lspci -v 查看pci设备
  • lsusb -v 查看use设备
  • lsmod 查看加载的驱动

关机重启

  • shutdown -h 关机
  • shutdown -h +10 10分钟后关机
  • shutdown -r 重启
  • shutdown -r now 现在重启
  • shutdown -h 20:30 20点30分关机
  • poweroff 关机
  • reboot 重启

归档、压缩

  • zip xxx.zip myfile

  • unzip xxx.zip

  • tar -xvf out.tar

  • tar -cvf out.tar myfile

  • tar -zcvf out.tar.gz myfile

查找

  • locate keyword 在数据库里查找

  • updatedb 更新数据库

  • find . -name “aa” 查找文件名带aa的文件

  • find / -name *.conf 查找conf目录

  • find / -perm 777 查找文件模式为777的

  • find / -type d 查找文件夹

 find . -name "*a*" -exec cat {} \;

查找名字里带a的文件,并且cat出来,注意后面的{} ;是必须的,且中间必须有空格

  • 查找条件
  • -name
  • -perm
  • -user
  • -group
  • -ctime
  • -type
  • -size

常见目录及功能

  • /opt 目录安装大型软件
  • /proc 系统实时信息,虚拟目录
  • /sbin 超级用户才能执行的命令
  • /usr 一般的软件安装
  • /var 经常变化的信息

BASH

  • !! 重复执行前一个命令

  • !字符 重复前一个命令以『字符』开头的命令

  • !num 按历史纪录重复执行

  • !?ea 重复执行之前包含ea的命令

  • !-n 重复执行n个命令之前的那个命令

  • ctrl + r 在历史命令中搜索

  • esc . 按个esc然后再按一下. 使用上一个命令的参数

  • ? 匹配任意一个字符

    • 任意一个字符
  • [0-9] 数字

  • [abc] 任意字符

  • [^abc] 除列表以外的字符

VIM

:sh 到BASH环境中

ctrl+d 回到VIM

分区

  • fdisk -l 列出硬盘信息

  • fdisk /dev/sdb 进行交互式分区

    • m 帮助
  • partprobe 更新一下分区表

分区机制有MBR和GPT两种 MBR 使用BIOS引导方式的PC设备,目前不支持2T以上,支持分区数量有限

分区表只有256字节信息

MBR最多只能创建4个主分区,主分区可以直接使用, 更多分区使用扩展分区和逻辑分区

一个扩展分区会占用一个主分区位置,扩展分区不能直接用

基于扩展分区创建逻辑分区

最多支持63个IDE分区,15个SCSI分区

GPT EFFI引导方式

文件系统

操作系统通过文件系统管理文件及数据,磁盘或者分区需要创建文件系统后才能被操作系统使用

  • mke2fs 创建文件系统

  • mke2fs -t ext4 /dev/sda3 创建文件系统类型

    • -b 文件块大小,4k
    • -c 建立的时候检查坏损块
    • -L 建立卷标
    • -j 建立文件系统日志
  • dumpe2fs 查看分区的文件系统信息

  • fsck 检查并且修复损坏的文件系统

带有日志的文件系统有较强的恢复性

## 挂载分区

  • mount /dev/sdb1 /mnt/ 挂载到指定的位置
  • mount 查看已经挂载的分区
  • lsof 查看哪些文件被使用,被谁打开
  • fuser -m /dev/sdb1 被谁使用

配置/etc/fstab 自动挂载

帮助信息

  • ls —help
  • ls -h
  • man ls
  • man -k 关键字查找命令
  • info 更详细

用户

root 用户 0

系统用户 1-499

普通用户 500以上

相关文件

  • /etc/passwd 密码
  • /etc/shadow 用户密码
  • /etc/group 保存组

当前用户命令

  • whami 当前登录用户
  • who 哪些用户
  • w 有哪些用户在干什么

用户操作

  • useradd 添加用户
  • usermod 修改用户
  • userdel 删除用户

同时还有另外一个添加用户的命令:adduser,推荐使用adduser,它会帮你创建用户目录及一些默认的配置,同时最后还会提示输入密码;用上面的useradd,添加用户后,需要再使用passwd来添加用户密码

用户组操作

  • groupadd 用户组添加
  • groupmod 用户组修改
  • groupdel 用户组删除

权限

限制对特定文件的读、写、执行,每一个文件都有特定的权限 进程权限与运行它的用户权限相关

目录必须有x权限,否则不能查看内容

UGO: user group other

每三个一组r w x

rwxrwxrwx 三个一组

修改权限

  • chown 修改拥有者

  • chgrp 修改所有组

  • chmod 修改权限

  • u\g\o代表用户、组其它

  • a代表所有

  • +-增加或者删除

  • r\w\x 三种权限

chmod g-x xxxxx 减去xxxxx的用户组执行权限

网络

32bit分为网络部分和主机部分 子网掩码用来确定网络部分的位数

  • ifconfig -a 查看所有接口

  • ifconfig eth0 查看特定接口

  • ifup eth0 启用接口

  • ifdown eth0 禁用接口

  • setup 配置网络信息

网络排查相关命令

  • host 查看域名对应ip
  • dig 查看域名信息
  • ip route 查看路由表
  • traceroute 查看到达目标地址经过的路由
  • mtr 网络质量测试

管道和重定向

  • STDIN 0
  • STDOUT 1
  • STDERR 2
> STDOUT 重定向到文件【覆盖】
>> STDOUT 重定向到文件,追加
2> STDERR 重定向到文件
2>&1 STDERR与STDOUT结合
<  重定向到STDIN
| 一个命令的STDOUT作为另一个命令的STDIN
2>/dev/null 把错误重定向到null设备

安装删除包

  • rpm -i xxx.rpm 安装

  • rpm -e xxxx 卸载

  • rpm -U xxx 升级

  • rpm -ivh http://xxxx 网络安装

  • rpm -qa 安装的列表

  • rpm -ql xxx 安装的东西

  • yum search

  • yum list all/installed/updates

  • yum info packagename

查看特定软件的所有可用版本:

yum search nodejs -b current --showduplicates

文本处理工具

  • grep

    • -i 忽略大小写
    • -n 显示行数
    • -v 不带关键字的行
    • -Ax 之后的x行
    • -Cx 之前之后的x行
    • -Bx 之前的x行
  • cut

    • -d 切分符号
    • -f 显示的列
    • -c 基于字符进行切割
cut -d: -f1 xxx 对xx文件进行
cut -c2-6 xxx 基于2到6进行切割
  • wc

    • -l 只计行数
    • -w 只讲单词
    • -m 字符
    • -c 只计字节数
  • sort 排序

    • -r 倒序
    • -u 删除重复行
    • -tc 使用c进行分割为列进行排序
  • uniq 删除重复相邻行

  • diff 比较文件

    • -b 忽略空格数量改变
    • -u 生成patch文件
  • aspell 拼写检查

实际例子

tr -d 'apple' < hosts 删除hosts文件里的apple
tr 'a-z''A-Z' < hosts 大小写转换

sed 's/str/newstr/g' hosts 替换hosts中的str
sed '1,50s/str/newstr/g' hosts 只替换1到50行
sed -e 's/linux/unix/g' -e 's/xxx/xsdjlfsjdf' hosts  连续处理两个替换

sed -f command hosts 把替换的命令放到command文件里

ps aux | grep xxx  查看某个进程

lsof -i:portnum 查看端口被哪个进程占用

kill -9 pid 杀掉某个进程

killall program 杀掉指定名称的所有进程

推荐文章