linux的命令太多,记不住是正常的,但是记录下来以后需要的时候可以直接在这里找

文件或目录处理命令

ls

  • ls list 文件列表
  • ls -a a:all 包含隐藏文件的列表(linux里隐藏文件名是点开头的)
  • ls -l 别名:ll l:long 包含文件详细信息的列表
  • ls -lh h:human 人性化显示详细信息的列表
  • ls -ld d:directory 当前目录详细信息的列表
  • ls -i i:inode i节点信息

mkdir

  • mkdir make directory 创建目录 
    • eg:mkdir /temp/japan /temp下创建目录/japan
  • mkdir -p 递归创建目录 
    • eg: mkdir /temp/japan/cangjing /temp下创建目录/japan,再在/japan下创建/cangjing
    • eg:mkdir /temp/japan/cangjing/temp/japan/boduo /temp/japan目录下一次性创建两个目录/cnagjing、/boduo

cd

  • cd change directory 切换目录
  • cd .. 切换到上一级目录(注意:中间有个空格)

pwd

  • pwd print working directory 显示当前工作目录

rmdir

-rmdir remove empty directory 删除空目录

cp

  • cp copy 复制文件 语法格式:cp [复制文件] [复制文件] [存放目录]
  • cp -r 复制目录
  • cp -p 复制的时候保存属性 (例如创建时间不变等)

clear 或 ctrl+l 清屏

mv

  • mv move 剪切或改名

rm

  • rm remove 删除文件
  • rm -r 删除目录
  • rm -f f:force 强制删除
  • rm -rf 强制删除目录

ctrl+c 终止命令

touch

  • touch 创建文件

cat

  • cat 查看文件内容
  • cat -n n:number 查看文件信息+行号
  • tac 逆序查看文件内容

more

  • more 分页显示文件内容 
    • 空格或f 翻页
    • enter 换行
    • Q或q 退出

less

  • less 分页显示文件内容时向上翻页 
    • 空格或f 翻页
    • enter 换行
    • Q或q 退出
    • pgup 向上翻页
    • 上箭头 向上换行
    • /关键词 搜索并高亮显示 -n n:next 继续搜索
  • head 查看文件前10行(默认)
  • head -n +number 查看文件前number行

tail

  • tail 查看文件后10行(默认)
  • tail -n +number 查看文件后number行
  • tail -f 动态显示文件内容

ln

  • ln link 创建文件硬链接(默认)和源文件一模一样,类似于cp -p + 同步更新 
    • 硬链接:不能跨分区;inode相同
  • ln -s s:soft 创建软链接 ,类似于windows的快捷方式 
    • 软链接的权限为777

权限管理命令

chmod

  • chmod change the permissions mode of the file 改变文件或目录权限
  • chmod [ugoa][+-=][rwx] 
    • [u:user所有者 g:group所属组 o:others其他人 a:all所有人]
    • [+增加权限 -减少权限 =强行重写权限]
    • [ r:read读 w:write写 x:excute执行]
  • 最常用:数字表示权限 421-rwx [r:4 w:2 x:1]
  • chmod -R 递归修改
  • file: 
    • r:cat/head/tail/more/less
    • w:vim
    • x:script command
  • directory: 
    • r:ls
    • w:mkdir/rmdir/touch/rm
    • x:cd

groupadd 添加用户组

chown

  • chown [用户][文件或目录名] change owner 改变文件或目录的所有者 
    • 只有root可以执行

chgrp

  • chgrp [用户组][文件或目录名] change group 改变文件或目录的所属组

umask the user file-creation mask

  • mask 显示、设置文件缺省权限 
    • umask -S 以rwx的形式显示新建文件的缺省权限
    • u=rwx g=rx o=rx
    • 新建的文件没有可执行权限x 即 u=rw- g=r– o=r–
  • umask 显示权限掩码 
    • 0022 第一位(特殊权限)不用看
    • 后三位对应 rwx = 755 - 022
    • umask + 权限掩码 改变为你想要的权限值

linux 严格区分大小写

文件搜索命令

find

  • find [搜索范围][匹配条件] 文件搜索 
    • -name 根据文件名查找 
      • 精准搜索 eg:find /etc -name init 在/etc目录下按文件名init搜索
      • 模糊搜索 eg:find /etc -name init
      • ?匹配单个字符 eg: find /etc -name init??? 查找init+3个字符为名称的文件
    • -iname 根据文件名不区分大小写查找
    • -size 根据文件大小查找 
      • +n大于 -n小于 n等于
      • n以数据块(0.5k 512b)为单位
      • eg:find / -size +204800 在整个盘里查找大于100M的文件
    • -user 根据所有者查找
    • -group 根据所属组查找
    • -amin a:access 访问时间
    • -cmin c:change 文件属性改变
    • -mmin m:modify 文件内容改变 
      • eg: find /etc -cmin -5 在/etc目录下查找5分钟内被改变过属性的文件或目录
    • -a and 两个条件同时满足
    • -o or 两个条件满足一个
    • -type 根据类型(文件或目录)查找 f:文件 d:目录 l:软链接文件
    • -exec/-ok {} \; 固定格式 查找并显示详细信息 
      • -ok 比 -exec多了一个询问确认的环节,适用于删除操作
      • eg: find /etc -name inittab -a -type -f -exec {} \;在/etc下查找名为inittab的文件并查看详细信息
    • -inum 根据i节点查找 
      • eg: find . -inum 31531 -exec rm {} \;在当前目录(.)下查找i节点为31531的文件并删除

locate 快速查找

  • locate 在文件资料库中查找文件 原理类似于软件everything 
    • updatedb 更新文件资料库 在资料库收录的目录(eg:/root)下创建的文件可以通过该命令更新,即可locate查找到;而在别的目录下的文件该命令无效
  • -i 不区分大小写快速查找

which

  • which 查找命令所在目录或别名 
    • eg:which ls
  • whereis 查找命令所在目录和对应帮助文档所在目录

grep

  • grep -iv [指定字串][文件] 在文件中搜索指定子串并输出匹配的行 
    • -i 不区分大小写
    • -v 排除指定字串
    • eg: grep -v ^# /etc/inittab 在/etc/inittab中查看不以#开头的行

man

  • man [命令或配置文件] 获得帮助信息 
    • f或空格翻页
    • enter 换行
    • q 退出
    • /+关键词 搜索
    • n 继续匹配查看
    • 1:命令的帮助;5:配置文件的帮助
    • eg: man 5 passwd 查看passwd配置文件的帮助文档
  • whatis [命令] 查看命令的name描述信息
  • apropos [配置文件] 查看配置文件的name描述信息
  • [命令] –help 只查看命令的选项

info 类似于man命令,一些操作对应的键不同而已

help

  • help [shell内置命令] 查看shell内置命令的帮助信息 
    • shell内置命令:一般通过which无法定位到目录的命令

用户管理命令

useradd 添加用户

  • useradd eg:useradd yangmi 添加用户yangmi
  • passwd 用户名 设置用户密码 
    • eg:passwd yangmi 给用户杨幂设置密码或更改密码
  • who 查看登录用户信息 
    • tty本地终端 pts远程终端
  • w 查看登录用户的详细信息
  • whoami 查看当前登录用户名

su切换用户

  • root下输入su - yangmi 在root下切换成用户yangmi,不需要输入密码 
    • 输入ls,显示无权限,使用sudo ls ,输入yangmi密码还是无权限,需要提前设置/etc/sudoers配置文件,将sudo赋权给yangmi才行
  • 在普通用户yangmi下输入su 直接切换成root,需要输入root密码
  • 在普通用户yangmi下输入su - 直接切换成root,并初始化root用户配置,需要输入root密码
  • 在root下输入

压缩解压命令

gzip 只针对文件,对目录不生效 不保留源文件

  • gzip 文件名 压缩文件 文件后缀.gz
  • gunzip 或 gzip -d 文件名 解压文件

tar 打包目录 生成.tar.gz格式 保留源文件

  • 格式:tar 选项[cvfz] [打包后文件名] [被打包的目录] 
    • -c c:compress 打包
    • -v 查看打包的文件信息,包含哪些文件等
    • -f f:file 指定打包文件
    • -z z:zip 打包的同时进行压缩 .gz格式
    • -j 压缩成.bz2格式 
      • eg: tar -cjf boduo.tar.bz2 boduo
  • 格式:tar 选项[xvfz] [待解包的文件名] 
    • -x 解包
    • -v 查看解包文件信息
    • -f 指定解压文件
    • -z 解压缩 .gz格式
    • -j 解压缩 .bz2格式 
      • eg:tar -xjf boduo.tar.bz2

zip 压缩文件或目录 保留源文件 .zip 压缩能力比gzip差很多

  • 格式:zip 选项[-r] [压缩后文件或目录名] [文件或目录] 
    • -r r:directoty 压缩目录
  • eg: zip boduo.zip boduo 压缩文件
  • eg: zip -r japan.zip japan 压缩目录

unzip 解压缩 不区分文件或目录

  • eg: unzip japan.zip

bzip2 压缩文件 .bz2 gzip的升级版:压缩能力增加 可以保留源文件

  • bzip2 [-k] [文件] 
    • -k 压缩保留源文件 
      • eg: bzip2 -k boduo

bunzip2 解压文件 参数格式同上面bzip2

  • eg: bunzip2 -k boduo.bz2

网络命令

虚拟机下centos和window互相ping通:

  • 关闭linux防火墙:service iptables stop
  • 关闭linux的selinux:vim /etc/selinux/config 
    • 将SELINUX=enforcing改为SELINUX=disabled
    • 可以查看当前selinux状态验证关闭:getenforce
  • 关闭windows防火墙

write 给在线用户发送消息

  • 格式:write <用户名>
  • eg: write yangmi
  • Ctrl + D 保存
  • Ctrl + 回格 删除、回退

wall 发广播消息

  • wall [message] wall: write all

ping 检测网络的连通性 linux会一直ping ctrl+c强制终止

  • ping 选项 ip地址 
    • -c c:count ping的次数
  • eg: ping -c 3 172.18.216.28 ping ip地址3次

ifconfig 查看和设置网卡信息

  • ifconfig 查看网卡信息 类似于windows下ipconfig 
    • eth0:本地真实网卡 lo:回环网卡
  • ifconfig 网卡 ip地址 临时设置网卡信息 
    • ifconfig eth0 +ip 给第一个网卡配置ip地址

mail 查看发送电子邮件

  • mail [用户名] 
    • h 查看邮件列表 
      • 邮件序号 查看邮件信息
    • d + 邮件序号 删除邮件
    • q 退出

last 列出目前和过去所有登录系统的用户信息

lastlog 查看用户最后一次登录的信息

  • lastlog -u 用户id 查看特定用户最后一次登录的信息

traceroute 显示数据包到主机间的路径(可以访问网络的前提下)

netstat 显示网络相关信息

  • netstat [选项] 
    • -t : tcp协议
    • -u : udp协议
    • -l : 监听listen
    • -r : 路由 route
    • -n : 显示ip地址和端口号
    • eg:netstat -tuln 查看本机监听的端口信息
    • eg:netstat -an a:all 查看所有的监听信息(包含正在连接的)
    • eg:netstat -rn 显示本机路由表

setup 配置网络 redhat专有命令

  • service network restart 重启网络服务

mount 挂载命令

  • mount [-t 文件系统] 设备文件名 挂载点
  • eg:mount [-t iso9660] /dev/sr0 /mnt/cdrom

umount 取消挂载

  • eg: umount /dev/sr0

关机重启命令

shutdown

  • 格式:shutdown [选项] 时间 
    • -h 关机 h:halt
    • -r 重启
    • -c 取消前一个关机命令 
      • eg:shutdown -h now 马上关机

其他关机命令

  • halt
  • poweroff
  • init 0

其他重启命令

  • reboot
  • init 6

系统运行级别 通过cat /etc/inittab 命令可以查看

  • #### 0 关机
  • 1 单用户
  • 2 不完全多用户,不含NFS服务
  • 3 完全多用户
  • 4 未分配
  • 5 图形界面
  • #### 6 重启

runlevel 查询系统运行级别

logout 退出登录命令

vim基本命令

  • vim 文件名 进入文件的命令模式(默认)
  • 命令模式 
    • a i o 进入插入模式
    • Esc 从插入模式回到命令模式
    • set nu 显示行号 nu:number
    • set nonu 不显示行号
    • gg 到第一行
    • G 到最后一行
    • nG 到第n行
    • $ 移动到行尾
    • 0 移动到行首
    • x 删除字符
    • nx 删除光标所在处后面的n个字符
    • dd 删除/剪切行
    • ndd 删除/剪切多行
    • yy 复制光标所在行
    • nyy 向下复制多行
    • p 向下粘贴
    • P 向上粘贴
    • u 取消上一步操作
    • :n 到第n行
    • :q 退出
    • :q!不保存退出
    • :wq 保存退出
    • ZZ 快捷键 保存退出
    • :w 保存文本
    • :w new_filename 另存为
  • 编辑模式 
    • : 进入编辑模式
    • a 在光标所在字符后插入 a:append
    • A 在光标所在行尾插入
    • i 在光标所在字符前插入
    • I 在光标所在首插入
    • o 在光标下插入新行
    • O 在光标上插入新行

文件系统管理

  • df [选项] [挂载点] 查看文件系统 
    • -h h:human 人性化显示文件系统
    • -a a:all 显示所有文件系统信息,包括隐藏的特殊文件系统
  • du [选项] [文件或目录名] 统计目录或文件大小(一般不用于文件) 
    • -a 显示子目录信息
    • -h 人性化显示
    • -s 显示总共占有量
  • df 面向文件系统:文件大小+系统进程等大小
  • du 面向文件或目录:文件大小
  • df查看到的剩余空间才是真的剩余空间
  • fsck [选项] 分区设备文件名 文件系统修复命令 一般系统自动执行,无需手工操作
  • dumpe2fs 分区设备文件名 显示磁盘状态命令

查询与自动挂载

  • mount [-l] 查询系统中已经挂载的设备,-l会显示卷标
  • mount -a 根据配置文件/etc/fstab,自动挂载
  • mount [-t 文件系统] [-L 卷标名] [-o 特殊选项] 挂载文件名 挂载点 
    • eg: mount -t iso9660 /dev/cdrom /mnt/cdrom 将光盘类型iso9660 的/dev/cdrom 挂载到/mnt/cdrom上,挂载点类似于windows中的盘符
    • eg:mount /dev/cdrom /mnt/cdrom 同上,默认光盘类型可以省略,光盘的设备文件名固定
  • fdisk -l 查看u盘设备文件名
  • 挂载u盘 
    • mount -t vfat /dev/sdb1 /mnt/usb 将u盘中的文件系统挂载到/mnt/usb
  • linux默认不支持NTFS格式,即不支持移动硬盘,可以通过编译内核,添加NTFS格式或直接使用第三方软件

fdisk分区

  • 按照帮助提示操作: 
    • -p 显示分区
    • -n 新建分区(新建扩展分区之后才会出现逻辑分区的选项)
    • -l显示分区类型id号
    • -w 保存退出
  • partprobe 强制重新读取分区表
  • 格式化分区: mkfs -t ext4 /dev/sdb1
  • 挂载分区同上 mount /dev/sdb1 /disk1

自动挂载

  • 在/etc/fstab 中添加挂载信息:vim /etc/fstab
  • /etc/fstab文件修复:
  • 修复fstab:(根分区/正常的前提下)以读写权限重新挂载 mount -o remount,rw / 再vim修改

分配/swap空间

  • free 查询内存和swap空间大小
  • cache(缓存):加速数据的读取;buffer(缓冲):加速数据的写入
  • 手动分配swap,操作步骤如下: 
    • fdisk /dev/sda
    • n
    • l
    • 新建了分区sdb6之后,默认是Linux(83)格式的,要改成swap格式的,即82,需要修改分区id:t
    • 格式化swap:mkswap /dev/sdb6 
      • 格式化报错,目录不存在,需要重启,让分区生效
    • 加入swap分区:swapon /dev/sdb6 
      • 取消swap分区:swapoff /dev/sdb6
  • swap分区开机自动挂载:vim /etc/fstab 
    • 加入一行:/dev/sdb6 swap swap defaults 0 0 保存退出即可

Linux系统管理

ps查看系统中所有进程

  • ps aux unix格式显示系统所有进程信息
  • ps -le l:long e:所有的进程 Linux格式显示系统所有进程信息

top 查看系统健康状态

  • top [选项] 
    • -d 秒杀:指定top命令每隔几秒更新,默认是3秒
    • 在top命令的交互模式下可以执行的命令: 
      • ?或h 显示帮助
      • P(大写) 以cpu占有率降序,默认
      • M 以内存的占有率降序
      • N 以pid降序
      • q 退出top
  • pstree [选项] 查看进程树 
    • -p 显示进程的pid
    • -u 显示进程的用户

kill [pid] 终止进程

  • kill -l 查看可用的进程信号 
    • 常用信号代号如下:
    • -1(数字1)重启
    • -9 强制终止
    • -15 正常终止,默认
    • eg: kill -1 22354 重启进程22354
    • eg: kill -9 22354 强制终止进程22354
  • killall [选项][信号] 进程名 按照进程名杀死进程
  • pkill [选项][信号] 进程名 按照进程名杀死进程 
    • -t t:终端号 按照终端号踢除用户
    • eg: pkill -9 -t tty1 强制踢除从本地终端tty1登录的用户

把进程放入后台

  • 命令后+& 
    • eg:tar -zcf etc.tar.gz /etc &
  • 命令结束+快捷键ctrl+z
  • 两者区别:前者放入后台后,继续执行;后者放入后台后,暂停执行

jobs [-l] 查看后台的工作

  • -l 显示工作的pid 
    • +代表最后一个放入的进程,默认优先恢复,-代表倒数第二个放入的进程

pg %工作号 将后台暂停的工作恢复到前台

fg %工作号 将后台暂停的工作恢复到后台

  • 注意:和前台有交互的进程,是不能恢复到后台执行的,eg:top、vim等

vmstat 监控系统资源

  • vmstat 间隔时间 监控刷新次数
  • eg:vmstat 2 3 每隔2秒共监控显示3次系统资源

dmesg 开机时内核检测信息

  • dmesg | grep CPU 查询CPU相关的内核检测信息
  • dmesg | grep eth0 查看网卡信息

free 查看内存使用状态

  • free [-b|-k|-m|-g] 
    • -b 以字节为单位统计
    • -k 以KB为单位显示,默认
    • -m 以MB为单位显示
    • -g 以GB为单位显示

查看CPU信息

  • cat /proc/cpuinfo

uptime 得到top命令的第一行:平均负载等;也即w命令第一行的内容

uname 查看系统和内核相关信息

  • uname [选项] 
    • -a a:all 内核所以信息
    • -r 内核版本
    • -s 内核名称

判断当前系统位数:32 或 64

  • file /bin/ls

查看当前系统的发行版本:redhat、centos、ubuntu等

  • lsb_release -a

列出进程调用的文件

  • lsof [选项] 
    • -c 显示字符串开头的进程调用的
    • eg: lsof -c init 查看init调用的文件
    • -u 显示某个用户调用的
    • -p 用pid查询
    • eg:lsof -p 1732

系统定时任务

crond 服务管理和访问

    • service crond restart 启动命令
    • chkconfig crond on 变为自启动命令
    • 用户的crontab设置 
      • crontab [选项] 
        • -e 编辑定时任务:进入vim界面
        • 格式:* * * * * command 这里的* * * * * 分别代表时间:分钟、小时、天、月、星期
        • eg:* / 1 1,2,3 * * 1-5 echo ‘test’ >> /tmp/test 在每周1-5的凌晨的1、2、3点里,每隔1分钟在/tmp/test里写入test
        • -l 查看定时任务
        • -r 删除所有定时任务,删除单个的话,直接进入vim编辑即可