/etc/issue:修改登录提示语
/etc/passwd:用户密码文件 依次为 用户名,密码(实际存储在/etc/shadow中),uid,gid,说明,家目录,登录shell
/etc/shadow:存储密码信息(密码是加密过的,且只有管理员可以查看)
/etc/hosts:同Windons下的Hosts文件
date +格式化 例如 date +%Y-%m-%d
who 查看当前系统 用户登录信息
useradd -d 目录 user1 添加用户并设置家目录
usermod -d 目录 user1 修改用户家目录 usermod -L/-U user1 锁定/解锁用户
su user1 切换用户(默认切换到root用户)
at time day(可以使用具体日期,或today,tomorrow) 之后编写逻辑 最后Ctrl+D退出保存
atq 查看添加的任务 atrm id 根据任务id移除任务
crontab -e 编辑定时任务 -l 列出所有定时任务 -r 移除所有定时任务
head/tail -n num 查看指定前/后num行 默认10行
lsattr 文件 查看文件隐藏属性
chattr +/- a/i 文件 添加或移除文件隐藏属性 a无法删除 i无法写入,改名,删除
files 文件 查看文件类型信息
find / -name *.txt 查找可以直接使用通配符
tar -zcvf 目标文件 源文件 tar -zxvf 源文件 -C /temp (使用-C指定目录)
mount 查看所有文件系统挂载情况 也可以使用它进行文件挂载(要想永久挂载必须修改 /etc/fstab文件)
unmount 文件系统/挂载点 取消文件系统的挂载
sort 文件 -n 按数字排序(默认按字母排序例如 11<2) -t ‘分割符’ 指定分割符 -k 1 指定第几列常与-t搭配 -r反向排序
uniq 文件 (输入不重复的) -i 忽略大小写 -c 计算每行出现次数
cut 文件 -d 分割符 -f 1,8-9 常与-d结合使用取其分割后的指定范围部分 -c1,9-10 与-f类似不过 直接取范围内的字符
tr 文件 目标字符 要替换为的字符 (按对应下标替换,可以使用正则) -d 目标字符 删除指定字符(同样可以使用正则)
route -n 查看路由表
host 网址 查看其对应的所有的ip地址
nice -n 10 指令 以10的优先级运行指令(默认优先级为0)
renice -5 -p pid 修改指定pid的优先级为 5
sed 指令 文件 按行处理文本文件(默认只是输出到屏幕并未修改原文件,可以使用i修改原文件并不输出)
d(删除) sed ‘1,3d’ 文件 删除指定行 2d删除第二行 2,$d范围删除 /正则/d 删除匹配正则的行
s(替换) sed ‘s/正则/要替换为的/’ 替换符合条件的内容 默认每行只匹配一个 可以使用 ‘s/r/s/2’ 指定替换2个 g指定全替换
y(字符转换) sed ‘y/abc/ABC/’ 对字符按对应下标转换
sed -f 规则文件 目标文件 对文件按规则文件内的指令逐行处理
规则文件示例
0:关机
1:单用户模式,可以修改root密码
2:多用户,但是没有网络连接
3:完全多用户
4:保留未使用
5:窗口模式
6:重启
默认目录权限:umask遮罩777 文件权限:umask遮罩666
默认一个数据块4kb
主分区+扩展分区最多只能有4个(扩展分区一个硬盘只能有一个)
扩展分区不能写入数据,只能用于分逻辑分区
硬链接共享i节点,删除一个引用数减少1,直到为0,才真正删除
软连接,类似快捷方式
1,先ping 127.0.0.1 判断本机的 TCP/IP 协议栈是否正常
2,ping本机的ip地址 判断是否是网卡或驱动出现问题
3,ping同网段的其他主机,主要判断交换机是否正常
4,ping网关,若能ping通,则本机与本地网络都正常
5,ping公网上的ip,判断是否为本机路由设置问题
6,ping公网的一个域名,判断DNS服务器是否正常
#!/bin/bash # 指定使用的解释器 必须指定在第一行
name='asdasd' # 定义变量必须 挨着定义 使用 $name
eval $name # 执行指定文本
exit # 退出脚本执行 还可以返回一个数字 表示 执行情况
local name='sdfsf' #声明局部变量
read age # 注释读取输入 可以使用-p '提示' 指定提示语
$((age*12)) # 对内容进行运算 基本运算与Java相似
ok(){ # 定义函数 不需要定义形参 与脚本取参数方法一致
echo $FUNCNAME # 获取当前执行的函数名
return 23 # 返回值通过 $?获取
}
ok # 执行函数
echo $? # 获取方法返回值
$0 $num $@ $#
shell文件名 shell指定个参数 shell的全部参数 获取参数的个数
sex="$name" # 双引号会执行内部结果 单引号不会
declare -a arr # 声明数组(只支持一维数组) -r 声明只读变量
arr[0]=12 # 使用数组
len=#arr[*] # 使用*将数组扩展为列表 使用#获取长度
name=$(date) # 保存运行命令输出的内容 也可以使用`` $() 一层是运行指令 两层 直接运算数字
if [ -e $name ];then # 注意;是必须的
fi
if [ exp ];then # 最常用的if-elif-else结构
elif [ exp ];then
else
fi
case $name in # switch结构
value1) command1;;
value2) command2;;
*) command3;; # 注意 本来 就可以使用通配符
esac
for item in `seq 100` # for-in循环
do
done
for((i=1;i<100;i++)) #for-i循环
do
done
while [ 表达式 ] # while循环
do
done
select name in name1 name2 ... # 会依次输入所有可选项 输入数字选择
do # 必须的
break # break 与 continue 与Java中的类似(不过可以使用数字指定跳出层数)
done
bash shell文件 执行shell脚本 -x 单步执行(DEBUG)
export name=aaa 定义暴露变量 子线程可以直接读取到该变量
unset 变量/函数 取消变量/函数
test 表达式 / [ 表达式 ] 判断条件是否满足(推荐使用后者)
-e 文件/目录 判断文件/目录是否存在 同理 -d判断目录 -f判断文件 -x判断是否可执行 -r判断可读 -w可写 -s为空
-z 字符串 判断字符串是否为空 字符串之间可以直接比较(按字典序),或判断是否相等 数字比较需要使用 -eq -lt等
[ ] 中多个表达式 使用 ! 取反 -a and -o or
> 默认是正确输出重定向 可以使用 1 > 文件 显示指定 2 > 文件 错误输出重定向 >> 文件 附加重定向
/dev/null 黑洞输入 < 输入重定向
mysql -uroot -p123456 登录数据库 show databases/tables 显示所有的数据库或表
use 数据库 进入某一个数据库