前端工程师需要掌握的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 杀掉指定名称的所有进程