uname 显示系统信息
ifconfig 查看网络配置信息
date 查看时间信息
ps -ef 查看系统进程信息
ps -ef | grep java 查看系统进程信息并进行过滤 grep过滤 |管道线 由上一个命令产生的结果传递到后面的命令中去
top 查看系统cpu 内存使用情况 swab 缓存 mem内存
grep 过滤以及查找操作 grep sshd 【路径】 查找指定路径下的包含sshd的 grep -r sshd 【路径】在路径下遍历查找
ps -aux查看用户的所有进程
kill -9 强制杀死对应的进程
df 查看系统磁盘使用的情况 -h打印人类能看懂的格式
du 【路径】查看磁盘使用的情况 相当于windows属性看大小, -h 人类看得懂的格式 -s查看总和
mount -t vfat/def/sdb1/media/umnt 挂载U盘磁盘
umount /media/umnt 卸载磁盘U盘
fsck 修复文件系统
超级账户 root uid = 0 普通账户 root创建 uid >= 500 系统账户 uid = 1 - 499
/etc/passwd 保存所有账户的信息 /etc/shadow 保存账户密码信息 /root root用户的家目录 /home/xxx 普通用户xx家目录
useradd 添加普通用户 -G 组名 用户名 创建用户同时把用户添加的到组
gpasswd -a xx groupname 将xx添加到组 -d为删除
userdel 删除用户
groupadd 【组名】创建组
passwd 用户名 修改密码
su 切换账户
cd 进入到某个目录的操作
makedir 创建目录 ./表示当前目录 -p 可以递归创建目录
touch 创建一个空文件 touch ./abc 表示在当前目录下创建一个叫做abc的空文件
vi 或者 vim 创建文件并编辑
echo '1231212' >> ./gh 创建文件gh并追加数据1231212 << 表示追加 < 表示重写
ll ls lh查看文件 ls -a 查看所有文件包括隐藏文件
cat 查看文件 -n 显示行号
tail 查看文件末尾 文本 默认10行 -数字 从后往前 读几行 -f 动态监控文件产生的变化 多用于日志监控查看动态
head 查看文件开头 从前往后看 -数字 从前往后 看几行
more 按照百分比查看文件 不能回看
less 可以回看
cp 【路径1...】【路径2】 从路径1复制到路径2 -r 递归复制 如果目录中有文件也会被一起复制过去 路径1可以有多个
mv 移动文件 重命名文件【路径1...】【路径2】 从路径1移动到路径2 路径1可以有多个
rm 删除 -r 递归删除 每个文件都会询问 -rf强制递归删除 不会询问
tar 压缩包 -z 压缩 -c打包 -x解压缩包 -f必写项 -C指定解包位置 -v输出信息
which 查找可执行命令所在的位置
whereis 查找文件安装目录
updatedb 更新linux自带小型数据库
find 直接查找 【路径】 -name 通过名字来查找 不建议在服务器上使用
locate 文件查找 效率很高
alias 查看系统中设置的别名 oldname = newname 设置别名 设置只是临时有效 重启后无效
unalias newname 取消别名
vi ~/.bashrc 永久设置别名 设置完成后 source ~/.bashrc 别名就会永久有效
pwd 查看当前目录
~ 表示用户home目录
- 表示上一次所在的位置
.. 上一级目录 cd ..
. 当前目录
service iptables status 查看防火墙当前状态 stop 关闭 start开启
chkconfig iptables --list 查看系统以对应方式开启时防火墙是否自动开启
chkconfig iptables off 将所有方式启动系统时都不开启防火墙 on开启
service network status 查看当前网卡的状态 start 启动 restart 重启 stop停止
visudo -f /etc/sudoers 给普通用户添加root权限读写文件
vi /etc/profile linux下的环境变量在这里面配置
source /etc/profile 修改完成环境变量后需要刷新修改
rpm 安装rpm安装程序 -ql 查询 -ivh 安装 i 安装 v 显示信息 h 用#号表示进度 -e 删除
yum info 查看应用的安装信息
yum list 查看所有已经安装的应用程序 +package 查看这个应用的安装情况
yum install 在线安装 -y 不需要确认
yum groupinstall 在线安装整个组的应用 -y 不需要确认
yum update/upgrade + package 升级指定包名的应用程序
yum clean 清除缓存 yum makecache 构建yum缓存 一般用在切换yum源的时候
yum remove 卸载应用程序 -y
使用源码安装的时候 首先解压源码包,然后找到源码包解压后的路径 之行configure 检查环境 之后执行make 编译源码 最后使用make install 安装
网络配置 /etc/host 下添加ip 主机名 域名 /etc/sysconfig/network-scripts/ifcfg-eth0 相当于在桌面上配置eth0网卡信息 链接公网需要增加dns
#! + 解释器路径 例如 #! /bin/bash 使用/bin/bash 作为shell的解释器
运行shell 方式 chmod 744 ./shell 改变权限运行shell /bin/bash ./shell 解释器执行 这时候优先使用 这个解释器
echo 输出语句
获取变量需要 使用$ $变量名 ${变量名}
在变量中使用expr 表达式 需要用 `` 包裹 expr 表达式 `expr 3 + 3`
readonly 标识符 定义只读变量
onset 标识符 删除变量
shell 中的单引号 不会识别转义符 只会把字符原封不动的打印出来 双引号会识别转义字符
shell 中使用反引号 `` shell会认为被反引号括起来的内容是linux下的命令 例如 expr date 需要放在反引号中
拼接的时候不要用+号 ,号 直接拼接
{#变量名}获取字符串长度
{变量名:startindex:length}截取字符串 将变量名从startindex(包括startindex)开始截取length个长度
(反引号)`expr index "$变量名" 要查找的字符串` 用于查找字符串第一次出现的位置 下标从1开始计算
创建数组使用()包裹,不要求数据类型一致,有点像python的元组
获取数组 echo ${arr1[*]} *或者&号表示获取所有的元素 下标从0开始 越界不会报错 会返回空
获取数组长度 {#array[*]} 或者& 用来获取数组长度
乘法符号 * 直接用做乘法会报错,需要在*前面加上转义符反斜杠 \
-eq 检测两个数是否相等,相等返回true [$a -eq $b]
-ne 检测两个数是否不相等, 不相等返回true [$a -ne $b]
-gt 检测左边的数是否大于右边的数 是返回true [$a -gt $b]
-lt 检测左边的数是否小于右边的数,是返回true [$a -lt $b]
-ge 检测左边的数是否大于等于右边的数,是返回true [$a -ge $b]
-le 检测左边的数是否小于等于右边的数,是返回true [$a -le $b]
if then fi 为条件控制语句格式
-o 或者 相当于or
-a 并且 相当于and
字符串的运算 = 等于 [$a = $b] != 不等于[$a != $b] -z 长度是否为0,为0返回true [ -z $b ] -n长度是否为0,不为0返回true [ -n $b] [$a] 检查a是否为空,切记每个运算符都要有空格
文件操作 -r 文件是否可读 [ -r $file ] -w 文件是否可写 -x 文件是否可执行 -f 文件是否是文件 -d 文件是否为目录 -s 文件是否为空 -e 文件是否存在
流程控制语句:if [] then cmd fi if [] then cmd elif [] then cmd fi if [] then cmd else cmd fi 转为1行 要使用;
循环语句:for i in 循环 do cmd done while condition do cmd done
反引号 `seq 1 20` 表示从1到20逐个输出
read 表示等待接受控制台的一个输入 read 变量 变量来接受用户的输入的值
case 语句的结构 case $变量 in a) cmd ;; b) cmd ;; c) cmd ;; *) cmd ;; esac *表示其他
breake 和 continue 用法和其他语言一样
求表达式的值也可以使用 $(( $a + $b )) 计算 a+b
shell 取有返回值函数的 方式为 在调用的下一行紧接着 使用 $? 来获取
shell 传参数给函数 直接在函数后面 空格 加 参数
shell中对有参数的函数 取函数值的方法为 $1 取第一个参数 $2 取第二个参数 超过10的需要${10}来取 $* 取所有参数 $# 取参数的个数
给shell脚本传参数和获取参数的方式与函数一样
shell 引入文件 source 绝对路径 或者 . 绝对路径
sh -n 文件名 表示调试shell脚本定位到错误地方
sh -x 文件名 能展示每一句的输出结果,详细的调试信息
sleep 时间 表示睡眠几秒
中断调试的方法,在关键位置增加sleep睡眠时间,在程序运行时 按 ctrl+z执行中断,按下fg回车即可继续运行
还有一种for循环的方式 for((i=0;i<max;i++))
使用bashdb 调试shell代码 bashdb --debugger shell路径 调试时的命令: l列出当前行的上下各5行共10行 q退出 h帮助 /for/向后搜索字符串for ?for?向前搜索字符串for x 1+2计算表达式的值 !! ls -laRt执行shell命令 n执行下一条语句 s 4单步执行4次,如果遇到函数就进入函数里面 b 4在行号4处设置断点 del 4删除行号为4的断点 c 10一直执行到行号10处 R|run重新执行当前脚本 finish执行到程序最后