Linux的常用命令
umask 指定在建立文件时预设的权限掩码
文件(或目录)的初始权限 = 文件(或目录)的最大默认权限 - umask权限
root:0022 用户:0002 文件(默认无执行权限) 666 - 022 = 644 -rw-r--r-- 666 - 002 = 664 -rw-rw-r-- 目录 777 - 022 = 755 drwxr-xr-x 777 - 002 = 775 drwxrwxr-x
source 可以使用.替代
bash 快捷键: ctrl+A/E 快速移动到命令开头/结尾, ctrl+L 清屏
命令 >> 文件 2>&1 也可以简化为 命令 &>> 文件
多个命令同时执行 ; && ||
判断命令是否成功执行: 命令 && echo yes || echo no
read -t 30 -p "Please input filename: " filename
$(): 调用系统命令给变量赋值, 也可以使用``
$(()): 进行数值计算
shell变量用等号连接值,等号左右不能有空格(和命令格式有关)
set/env 查看变量 declare -p
unset 删除变量
PS1 命令提示符设置
cut -f 列号, -d 分隔符, 没法处理空格分隔的
cut -d ":" -f 1,3 /etc/passwd
awk '条件1 {动作1} 条件2 {动作2}' 文件名
df -h | awk '{print $5}'
cat /etc/passwd | awk 'BEGIN{FS=":"} {print $1}'
sed [选项] '[动作]' 文件名
选项: -n 经过处理才打印, -e 允许多条命令, -i 修改结果直接修改源文件
动作: -a 追加, -i 插入, -d 删除, -p 打印, -s 字符串替换, -c 行替换
sed -n '2,3p' /etc/passwd
sed 's/旧字符串/新字符串/g' 文件名
sed -i 's/^M//g' filename
sort 排序, -n 按照数字排序, -r 反向排序, -t 分隔符, 默认为制表符, -k n[,m] 按照指定的字段范围排序
sort -n -t ':' -k 3,3 /etc/passwd
-e 该文件是否存在
-f 该文件是否存在, 且是普通文件
-d 该文件是否存在, 且是目录
-s 该文件是否存在, 且是否为非空
-a 多个条件and
-o 多个条件or
----------------------------------------------------------------------------------------
echo $PATH 输出环境变量
tree 显示当前目录树
ls --help 查看帮助
man ls 查看帮助: b/f 回滚/前滚一屏; q 退出; /word 搜索
history 历史命令: !数字,重新执行
ls 查看文件: -a 所有; -l 详细; -h 人性化文件大小; ls *a.txt
ll ls -al
>/>> 输出重定向: >>为追加
cat 查看文件内容
more 查看文件内容(分屏显示)
| 管道: 一个命令的输出可以通过管道作为另一个命令的输入
clear 清屏: 类似DOS的cls清屏
cd 切换工作目录: ~用户主目录 .当前目录 ..上级目录 -上次目录
pwd 显示当前目录
mkdir 创建目录: -p 递归创建目录
rmdir 删除目录: 目录必须为空
rm 删除文件: 删除后不能恢复,可以使用-i逐个确认要删除的文件
-i 交互方式, -f 强制删除,忽略不存在提示, -r 递归删除
ln 创建文件链接: 默认硬,-s 软链接(快捷方式),ln -s 源文件 链接
cat 查看或合并文件内容
grep 文本搜索: grep -选项 "正则内容串" 文件名
-v 显示不匹配内容, -n 显示行号, -i 忽略大小写
find 查找文件 find ./ -name "*.sh", -size +2M, -perm 0777
cp 复制文件: 类似dos下的copy命令, cp 源目标
-a 复制目录时保留链接,文件属性并递归复制
-f 已经存在目标文件时,不提示
-i 交互方式
-v 显示进度
-r 递归复制
mv 移动文件,修改文件名 -f 已有不提示,-i 交互方式,-v 显示进度
tar 归档管理(结合gzip和bzip2实现压缩和解压)
tar -cvf test.tar * 归档所有文件到test.tar
tar -zcvf test.tar.gz * 归档并压缩所有文件test.tar.g2
tar -jcvf test.tar.bz2 * 归档并压缩所有文件test.tar.bz2
tar -xvf test.tar 解开归档文件
tar -zxvf test.tar.gz 解压归档文件
tar -jxvf test.tar.bz2 解压归档文件
tar -zxvf test.tar -C 目录解压归档文件到指定目录
tar -cf test.tar 查看档案中的文件
-c 生成归档
-v 列出归档解档的详细过程
-f 指定名称,f后面一定是.tar文件,所有必须放在最后
-t 列出档案中包含的文件
-x 解压档案文件
7z 7za x 186-LOG.7z -r -o./
x 代表解压缩文件,并且是按原始目录树解压
-r 表示递归解压缩所有的子文件夹
-o 是指定解压到的目录,-o后是没有空格的,直接接目录
7za a -t7z -r test.7z /opt/186-LOG/*
a 代表添加文件/文件夹到压缩包
-t 是指定压缩类型,这里定为7z,可不指定,因为7za默认压缩类型就是7z
-r 表示递归所有的子文件夹
zip/unzip 压缩文件: zip [-r] 目标文件(没有扩展名) 源文件
解压文件: unzip -d 解压后目录文件压缩文件
which 查看命令位置
whoami 查看当前用户
who/w 查看当前所有登录系统的用户信息
exit 退出登录用户
useradd 添加用户账户 sudo useradd -m oralce
-m 在home自动创建目录
-g 指定组名称
passwd 为用户设置密码 sudo passwd oracle
不加用户名则为修改自己的口令
userdel 删除用户: -r 删除用户的同时删除用户主目录 userdel -r oracle
su 切换用户(su oracle,su - oracle)
不加用户名表示切换到root用户
加-切换后目录跳转到新用户主目录
sudo -s 切换到root
groupadd 添加用户组
groupdel 删除用户组
usermod 修改用户所在组 usermod -g 用户组用户名
为普通用户添加sudo权限 sudo usermod -a -G adm 用户名
-g 指定用户的默认值
-G 和-a配合使用,完成添加其他组
groups + 用户名查看用户所在组
cat /etc/group 查看有哪些用户组
groupmod + 3Tab 查看所有用户组
usermod + 3Tab 查看所有用户
chmod 修改文件权限: 字母法和数字法
字母法: chmod u/ g/o/a +/-/= rwx 文件
数字法: r4,w2,x1,-0
chmod u=rwx,g=rx,o=r filename
= chmod u=7,g=5,o=4 filename
= chmod 754 filename
所有要递归所有目录加上相同权限,需要加上参数 -R
chmod 777 test/ -R 递归test目录下所有文件777权限
chown 修改文件所有者:
chown 用户文件
chown 用户:用户组文件
chgrp 修改文件所属组: chgrp 用户组文件
cal 查看系统日历
date 显示或设置时间(date "+%Y-%m-%d %H:%M:%S")
ps 查看进程信息
top 动态显示进程(htop)
kill 杀掉指定进程(如果不成功加-9信号,绝对终止)
reboot 重启
shutdown 关机/重启
-r now 重启
-h now 立刻关机
-h 20:25 今天的20:25关机
-h +10 十分钟后自动关机
init 关机/重启(init 0 关机, init 6 重启)
poweroff 立刻关机
df -h 检测磁盘空间(-h 人性化单位)
du -h 检测目录或文件所占磁盘空间
ifconfig 显示或设置网卡信息
sudo ifconfig ens33 192.168.180.100
ping 查看连通性
为新创建的普通用户添加root权限(添加组adm和sudo即可)
sudo usermod -a -G adm 用户名
sudo usermod -a -G sudo 用户名