一、文件与目录操作
1.目录切换查看
1)pwd: 打印当前所在绝对路径;
2)cd: 切换目录;
例如 cd /etc #进入 /etc cd ~ #回到家目录 cd .. #上一级目录 cd - #切换上次目录
3)ls: 列出目录内容;
例如 ls -l #详细信息(权限、属主、大小、时间) ls -a #显示隐藏文件(.开头) ls -lh #人性化显示文件大小(K/M/G) ls -lt #按修改时间排序 ls -R #连同子目录的内容一起列出(递归列出),等于该目录下的所有文件都会显示出来
2.增删改目录/文件
1)mkdir: 创建目录;
例如 mkdir <目录名> #创建目录 mkdir dir1 dir2 #同时创建两个目录 mkdir -p /tmp/dir1/dir2 #递归创建目录树
2)rmdir: 删除空目录;
3)rm: 删除文件/目录;
例如 rm file.txt #删除文件 rm -r dir #删除文件夹 rm -rf dir #强制递归删除
4)touch 创建空文件、更新文件时间戳;
5)cp: 复制文件,还可以把多个文件一次性地复制到一个目录下;
例如 cp a.txt /tmp/ #复制文件 cp -r dir1 dir2 #复制文件夹 cp -i #覆盖前询问 cp -r dir/* . #复制子目录及其内部所有文件到当前目录
6)mv: 移动/重命名
例如 mv old.txt new.txt #改名 mv file /home/ #移动
7)ln: 软硬链接
例如 ln file link #硬链接 ln -s file softlink #软链接(快捷方式)
3.文件查看与编辑
1)cat: 一次性读取全部内容;
例如 cat file1 #从第一个字节开始正向查看文件的内容 cat -n file1 #显示文件的行数
2)more/less: 分页查看大文件;
3)head/tail: 快速预览/实时盯防;
例如 head -n 10 file #前 10 行 tail -n 20 file #最后 20 行 tail -f log #实时跟踪日志
4.文件查找、筛选
1)find: 全磁盘深度查找;
例如 find /home -name "*.log" #查找所有log文件 find . -size +100M #查找大于100M文件 find . -type d #只查目录
2)grep: 文本过滤搜索
例如 grep "error" log.txt #匹配 error 行 grep -i #忽略大小写 grep -v #反向匹配(排除) grep -r "key" /etc #递归搜索目录下所有文件
3)which: 查找命令可执行文件路径;
4)whereis: 查命令源码、手册、二进制;
5)locate: 快速检索数据库找文件(需updatedb 更新库);
5.文件权限、属主
1)chmod: 修改文件权限;
例如 chmod 777 文件名 #修改文件权限(最高权限)
2)chown: 修改所有者、用户组;
例如 chown user1 file1 #改变一个文件的所有人属性 chown -R user1 dir1 #改变一个目录的所有人属性并同时改变改目录下所有文件的属性 chown user1:group1 file1 #改变一个文件的所有人和群组属性
6.压缩解压
1)tar: 万能打包;
例如 tar zcvf test.tar.gz dir/ # 压缩 tar zxvf test.tar.gz # 解压 tar jcvf test.tar.bz2 dir # bz2压缩
2)zip/unzip、gzip/gunzip、xz。
二、用户与权限管理
1.useradd/userdel: 添加/删除用户;
2.groupadd/groupdel: 用户组管理;
3.passwd: 修改用户密码;
4.su/sudo: 身份切换;
5.id: 查看当前用户UID/GID;
6.chgrp: 修改文件所属组。
三、系统信息查看命令
1.uname: 系统内核信息;
例如 uname -a #完整内核、主机、版本 uname -r #查看内核版本 uname -m #查看处理器架构
2.hostname: 显示当前登录系统的用户;
3.who/w: 查看当前登录用户;
例如 who am i #显示登录时的用户名 whoami #显示当前用户名
4.env: 出所有系统环境变量;
5.cat /proc/version: 查看linux版本信息;
6.cat /proc/cpuinfo: 查看CPU信息;
7.cat /proc/interrupts: 查看中断;
8.cat /proc/meminfo: 查看内存使用情况;
9.cat /sys/block/mmcblk0/size: 查看扇区总大小(单扇区512字节)。
四、进程管理命令
1.ps: 静态查看进程快照;
例如 ps aux #全部进程完整信息 ps -ef #标准全格式 ps aux | grep nginx #过滤进程
2.kill: 发送信号终止进程;
例如 kill 1234 #正常终止 PID1234 kill -9 1234 #强制杀死
五、网络操作命令
1.ifconfig: 网络接口配置和查看;
例如ifconfig -a #查看所有接口(包括未激活/关闭的) ifconfig eth0 #只查看特定网卡 ifconfig eth0 up # 激活网卡 ifconfig eth0 down # 关闭网卡 fconfig eth0 192.168.1.200 netmask 255.255.255.0 #设置IP和子网掩码 ifconfig eth0 hw ether 00:11:22:33:44:66 #修改MAC地址
2.netstat -lntp: 查看所有监听端口;
3.ping: 网络连通性测试;
例如 ping 192.168.1.100 #最简单的用法(默认会一直发送,按Ctrl+C 终止) ping -c 4 192.168.1.100 #发完4个包后自动退出 ping -i 0.5 192.168.1.100 #指定发送间隔(默认 1 秒),比如改成0.5秒 ping -s 1000 -c 4 192.168.1.10 #发送1000字节的数据包(不含 ICMP 头),共发 4 次
4.route -n: 查看路由表。
六、磁盘和分区命令
1.fdisk: 磁盘分区表操作;
例如 fdisk -l #查看所有磁盘、分区 fdisk -l /dev/mmcblk0 #单独查看eMMC fdisk /dev/mmcblk0 #交互式操作,修改分区表 内部常用按键 p:打印分区表 n:新建分区 d:删除分区 t:修改分区类型 w:保存分区表并退出 q:不保存退出
2.df: 查看磁盘分区空间使用情况;
例如 df -h #查看磁盘使用情况及挂载点 df -hl #查看磁盘使用情况及挂载点 du -sh /dir #查看指定某个目录大小
3.mkfs: 创建文件系统(格式化);
例如 mkfs -t ext4 /dev/sdb1#用-t指定需格式化文件系统类型 mkfs.ext4 /dev/sdb1 mkfs.vfat /dev/sdb1 mkfs.fat -F 32 /dev/sdb1 # 明确指定 FAT32
4.mount: 将存储设备(或分区)挂载到Linux目录树上;
例如 mount -t vfat /dev/sdb1 /mnt/boot #挂载/dev/sdb1到/mnt/boot(FAT32 必须加 -t vfat) mount -t ext4 /dev/sdb2 /mnt/rootfs mount -o loop xxx.img /mnt/testDir #挂载镜像文件
5.umount: 卸载设备;
例如 umount /dev/sdb1 #通过设备名卸载 umount /mnt/boot #通过挂载点卸载
七、管道、重定向、基础Shell符号
1.| 管道: 前命令输出传给后命令;
例如 ps aux | grep mysql
2.重定向: 改变数据流的默认流向;
1)>: 将输出覆盖写入文件(如果文件存在,先清空再写入);
2)>>: 将输出追加到文件末尾(保留原有内容);
例如 ls -l > filelist.txt #将ls的结果写入filelist.txt(覆盖) date >> app.log #将当前时间追加到日志末尾 make > build.log #将编译错误信息保存到build.log(覆盖)
3.;: 顺序执行多条命令;
4.&&: 前成功才执行后;
5.|| 前失败才执行后。
八、其他命令
1.history: 查看历史执行命令;
2.man/info/--help: 命令帮助文档;