文件或目录处理命令
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
- 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的文件并删除
- -name 根据文件名查找
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
- -k 压缩保留源文件
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 退出
- h 查看邮件列表
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编辑即可
- crontab [选项]