Linux 常用基础命令(巨全)
@[toc]Linux 系统下,以.开头的都是隐藏文件 Linux 中..表示上一级目录,.表示当前目录长格式引导:-- 引导单词短格式引导:- 引导字母
- 表示普通文件可执行文件 绿色 压缩文件红色 d 表示目录 蓝色 l 表示链接文件 浅蓝色 b 表示块设备文件 黄色 c 表示字符设备文件 黄色 s 表示套接字文件 紫色 p 表示管道文件 紫色
绝对路径:从根目录开始写的路径叫绝对路径相对路径:从当前目录开始写的路径相对路径
❀ls 命令
1.ls (list) 列出目录下的内容
❀cd 命令
❀pwd 命令
❀date 命令
%H 小时(以 00-23 来表示)。 %I 小时(以 01-12 来表示)。 %K 小时(以 0-23 来表示)。 %l 小时(以 0-12 来表示)。 %M 分钟(以 00-59 来表示)。 %P AM 或 PM。 %r 时间(含时分秒,小时以 12 小时 AM/PM 来表示)。 %s 总秒数。起算时间为 1970-01-01 00:00:00 UTC。 %S 秒(以本地的惯用法来表示)。 %T 时间(含时分秒,小时以 24 小时制来表示)。 %X 时间(以本地的惯用法来表示)。 %Z 市区。 %a 星期的缩写。 %A 星期的完整名称。 %b 月份英文名的缩写。 %B 月份的完整英文名称。 %c 日期与时间。只输入 date 指令也会显示同样的结果。 %d 日期(以 01-31 来表示)。 %D 日期(含年月日)。 %j 该年中的第几天。 %m 月份(以 01-12 来表示)。 %U 该年中的周数。 %w 该周的天数,0 代表周日,1 代表周一,异词类推。 %x 日期(以本地的惯用法来表示)。 %y 年份(以 00-99 来表示)。 %Y 年份(以四位数来表示)。 %n 在显示时,插入新的一行。 %t 在显示时,插入 tab。 MM 月份(必要) DD 日期(必要) hh 小时(必要) mm 分钟(必要)ss 秒(选择性)
❀创建、删除文件和目录命令
{1..100} 表示 1 到 100
❀alias 命令
alias 别名(例如:a=”rm -r“好比如 rm -r)
alias 取消别名(unalias 别名)
设置永久可参考👉Linux设置永久别名alias的方法👈
❀复制、移动、重命名、查看(文件、目录)命令
mv 原路径 目标路径
mv 原文件名 要修改的文件名
cp【选项】 原路径 目标路径
tail -f 文件名 【一般用来持续查看文件,比如查看日志或者是启动一个程序输出的结果】
简化:tailf 文件名
❀find 查找、wc 统计命令
find 按条件查找文件
find 查找范围(默认是当前目录) 条件
删除系统中所有 a.txt 文件 rm -rf $(find / -name "a.txt") find / -name "a.txt" -exec rm -rf {} \ find / -name "a.txt" |xargs rm -rf
删除/application/log/下的一天前的日志并设置为每周一删除,类型为目录 0 0 * * 1 find /application/log/ -mtime +0 -type d | xargs rm -rf
❀vi/vim 命令
vi/vim 进入编辑模式
编辑模式::
i:在光标显示的地方直接编辑;
I:在光标显示的行首编辑;a:在光标显示的后一个编辑;A:在光标显示的行尾编辑;o:在光标显示的下一行编辑;O:在光标显示的上一行编辑;s:删除光标所在的位置并进行编辑;S:删除光标所在的行进行编辑;
编辑模式-->Esc 键-->命令模式
跳转:gg 跳转到文件第一行 G 跳转到文件最后一行数字 gg 跳转到指定行 home 或^ 跳转到行首 end 或 $ 跳转到行尾 w 每次跳过一个单词
删除或剪切:dd 删除光标所在行 D 删除光标所在位置到行尾数字 dd 删除光标所在行下指定的行数 dG 删除光标所在行到文件结束位置 x 或 delete 删除光标所在的字符
复制与粘贴:yy 复制光标所在的一行数字 yy 复制光标下指定的行 p 粘贴到光标的下一行 P 粘贴到光标的上一行
u 撤销 ctrl+r 恢复
末行模式:
/ 查找 :w 保存(文件路径)另存为 :q 退出 :wq 保存并退出 :q! 强制退出 :w! 强制保存 :wq! 强制保存并退出:r 文件路径 将另一个文件读入光标下一行 %s#old#new#g 替换:%s/old/new/g 替换(加 g 是全部替换,old 是原内容要换成 new,new 是要换成的内容 #代表分割; /也代表分割):set number /set nu 显示行号:set nonumber /set nonu 取消显示行号:set nohlsearch 取消高亮显示
可视模式:
ctrl+v 可视块模式 shift+v/V 可视行模式 v 可视模式
❀压缩与解压缩
gzip 与 gunzip
1-9 9 最大 生成文件小,速度越慢 gunzip=gzip -d
压缩:gzip 原文件 文件名 解压缩:gunzip 原文件 文件名
bzip2 与 bunzip2
bunzip2=bzip2 -d
压缩:bzip2 原文件 文件名 解压缩:bunzip2 原文件 文件名
tar 的压缩与解压缩
--exclude=“”指定排除不需要传输的文件模式 比如:tar -cvzf bash.tar.gz /dir1 --exclude="*.txt" 排除所有以.txt 为后缀的文件不传输
一般常用的压缩与解压缩压缩:tar cvf 原文件 文件名解压缩:tar xvf 原文件 文件名
file(压缩包名)可以查看这个文件是否是压缩包和类型
❀grep sed awk 命令以及正则表达式
grep:
语法:
grep 【选项】 '内容' 文件名
正则表达式:
基础正则表达式 -->grep 可以直接使用 $ 以...结尾^ 以...开头. 匹配任意一个字符- 匹配前一个字符或子表达式任意次(例如:grep "g.d" a.txt(过滤 a.txt 文件中的以 g 开头以 d 结尾可以代表有任意多个字符或没有字符))[A-Z] [a-z] [0-9] [A-Za-z0-9][^a-z] 取反
扩展正则表达式 egrep =grep -E{n,m} 匹配前一个字符或子表达式 n 到 m 次{n, } 匹配前一个字符或子表达式最少 n 次{ ,m} 匹配前一个字符或表达式最少 m 次{n} 匹配前一个字符或子表达式 n 次
+ 匹配前一个字符或子表达式 1 次以上(*包括 0+不包括,至少)? 匹配前一个字符或子表达式 0 次或 1 次以上| 或 () 分组(例如:(g|f)ood)
\ 转义,取消一个字符的特殊含义
想要查看更多的正则表达式就去👉正则表达式(全)👈
查找/root 这层目录有多少个普通文件? find ./ -maxdepth 1 -type f ! -name ".*" | wc -l | ll | grep -c "^_"
sed:
语法:
sed [选项] ‘[操作地址]sed 内置操作’ 文件
常用选项
操作地址
内置操作
awk:
语法:
awk [选项] ‘BEGIN{command}匹配模式{command}END{command}’ 文件
内置操作
which 文件名查找命令的绝对路径、
❀制作模板机
👉制作模板机👈
xshell 连接慢如何解决:
进入 vi /etc/ssh/sshd_config 再找到 UseDNS 吧 yes 改成 no,前面“#”符号也要删,保存退出
重启 ssh 服务:systemctl restart sshd
防火墙与 selinux 的关闭及开启和永久生效 :
查看防火墙详情请看:👉Linux防火墙命令👈
systemctl stop firewalld 关闭防火墙服务 start
systemctl disable firewalld 禁止防火墙开机自启动 enable
firewall-cmd --state 查看防火墙状态
systemctl status firewalld
systemctl is-enabled firewalld 查看防火墙是否开机自启动
getenforce 查看 selinux 的状态 setenforce 设置 selinux 的状态
vi /etc/selinux/config vi /etc/sysconfig/selinux SELINUX=disabled 重启系统生效
挂载磁盘:
查看磁盘信息:fdisk -l 查看
创建目录:mkdir /media/cdrommount /dev/sr0 /media/cdrom 挂载磁盘
df -Th 挂在完查看挂载信息
配置本地 yum 仓库:
yum 源文件存在 /etc/yum.repos.d 中
创建一个文件(local.repo):vi local.repo[local]name=localbaseurl=file:///media/cdromenabled=1gpgcheck=0
配置完成之后
yum clean all 清除 yum 缓存 yum makecache 建立新的 yum 缓存 或者直接用:yum makecache fast 加载未加载的缓存安装 vim 和 man 命令: yum -y install vim man
设置永久挂载:
进入 fstab:
vim /etc/fstab/dev/sr0 /media/cdrom iso9660 defaults 0 0 第一段:挂载的设备 (dev/sr0)第二段:挂载的目录 (/media/cdrom)第三段:文件系统类型(iso9660)第四段:挂载的参数 defaults 默认参数(defaults )第五段:是否使用 dump 备份 0 不备份 1 备份(0)第六段:是否使用 fsck 检测 0 不检测(0)
注解:
1.系统中只有一块硬盘,sda,分区 sda1,sda2 ;2.根目录是整个系统目录的顶点,/mnt 也在根目录下;3.如果知道根目录对应的是哪个硬盘分区,可以判断出 a.txt 存到哪个设备上;
mount /dev/sr0 /media/cdrom mount /dev/sdb4 /mnt
扩展:格式化磁盘
重启系统的命令:reboot、init 6、shutdown -r
❀软件包管理
在 CenOs 系统中,卸载 gcc 的软件包时,可以使用命令 rpm -e gcc
使用 rpm 命令强制卸载软件包时要加选项 --nodeps
FHS 文件系统标准第一层:定义了跟目录下的目录存放相应的文件第二层:/usr 和/var 目录的划分
部署 nginx(使用源码包部署)
tar 包(源码包)
1.解包物理机向虚拟机传文件: (1.利用 U 盘,挂载 (2.lrzsz 包提供的命令 rz 物理机-->虚拟机 sz 虚拟机-->物理机 (3.xftp 大文件 2.配置 (1)sz 先把 nginx 压缩包复制到虚拟机 (2)解压 nginx 压缩包:tar xf nginx-1.6.0.tar.gz -C /usr/src/ (3)切换到 nginx 目录下:cd /usr/src/nginx-1.6.0 (4)./configure --prefix=/usr/local/nginx && make && make install 指定安装路径然后编译在安装
报错 1:./configure: error: C compiler cc is not found 没有编译环境解决:yum -y install gcc gcc-c++
报错 2:./configure: error: the HTTP rewrite module requires the PCRE library. You can either disable the module by using --without-http_rewrite_module option, or install the PCRE library into the system, or build the PCRE library statically from the source with nginx by using --with-pcre=option. 缺少 pcre-devel 库解决:yum -y install pcre-devel 问题 3:./configure: error: the HTTP gzip module requires the zlib library. You can either disable the module by using --without-http_gzip_module option, or install the zlib library into the system, or build the zlib library statically from the source with nginx by using --with-zlib=option.缺少 zlib-devel 解决:yum -y install zlib-devel
echo $? 通过其返回值,判断上一条命令是否执行成功(0 表示执行成功;非 0 表示执行失败)
make 编译 make install 安装
❀用户、用户组管理
超级用户 root UID=0 普通用户 /bin/bash UID!=0 程序用户 /sbin/nologin
在 Linux 系统中创建用户后,会以目录 /etc/skel/ 为模板复制文件到用户家目录/etc/passwd 存放的是用户信息/etc/shadow 存放的是用户密码 root: x :0:0:root:/root:/bin/bash 第一段:用户名第二段:密码占位符第三段:UID 第四段:GID 第五段:描述信息第六段:用户家目录第七段:用户登录的 shell/bin/bash/sbin/nologin 创建一个名为 mysql 用户,并禁止登录系统(统称:程序用户)useradd -s /sbin/nologin mysql
用户管理:
新增用户语法:
useradd [选项] 用户名
在创建用户时,默认会从/etc/skel 目录下复制内容到用户家目录下
su 用户名 切换用户 su - 用户名 系统环境变化 ctrl+d 或 exit 退出登录
修改用户信息语法:
usermod [选项] 用户名
passwd 修改或设置用户密码 passwd root 密码更改 root 的密码 echo “123123”|passwd --stdin test 不交互设置命令,给 test 用户设置一个密码 passwd -lpasswd -upasswd -s
删除用户语法:
userdel [选项] 用户名
用户组管理:
举例:
gpasswd -a test root 将用户 test 加入到 root 组里
查看用户信息:/etc/passwd 存放的是用户信息查看用户密码信息:/etc/shadow 存放的是用户密码查看用户组信息:cat /etc/gshadow
主要组附加组
附加命令:
id 查看用户的 id 和组 users 查看当前登录的用户 groups 查看用户属于哪个组 whoami 查看当前登录的用户 who 查看用户登录信息 w 查看用户登录信息
❀文件权限管理
详情请看:👉文件权限管理--权限掩码👈r 读 w 写 x 执行
查看文件权限:rw-r--r--第一组用户权限第二组用户组权限第三组其他用户权限 chmod 修改文件权限 chmod [选项] “u/g/o/a+/-/=rwx”文件(u 代表第一组 uid,g 代表第二组 gid,o 代表第三组其他用户权限,a 代表全部(a 会给每一组加一个))r=4 w=2 x=1 -=0
文件的归属:属于哪个用户 属主 属于哪个用户组 属组
语法:
chown [选项] 用户:用户组 文件名-R 递归修改/dir1/ a.txt b.txt c.txtchown -R root:root /dir1
find ./ -maxdepth 1 -type f ! -name ".*" -exec chown xiaoming:xiaomimg{ } ;查找深度为 1 的名字、为.*结尾的文件再给他修改用户和用户组
权限掩码-->默认文件和目录的权限
umask 022 创建一个文件默认权限是 644=666-022,目录时 755=777-022
文件的 ACL(访问控制列表)
getfacl 获取文件的 ACLsetfacl 设置文件的 ACLsetfacl -m 用户:权限 文件名 设置用户权限-x 删除指定文件的 ACL(setfacl -x 用户名 文件名)-b 清空文件的 ACL(setfacl -b 文件名)
默认情况,文件给定用户的 ACL 要考虑到 ACL 中的 mask 值
特殊权限:rws/s rws/S rwt/T4 2 1 大小写取决于执行位是否有执行权限
特殊属性:
lsattr 查看特殊属性 chattr 设置特殊属性 i 不能修改不能追加 a 只可以追加,不能修改 只有 root 用户可以设置
用法:
chattr -i 文件名 chattr +i 文件名
❀磁盘管理
详情查看:Linux磁盘管理
fdisk:
磁盘管理-->块设备文件 b 开头-->/dev/对于 linux 系统磁盘命名:IDE 接口的硬盘为 hda hdbSAS,SATA,SCSI 接口的硬盘 sda 分区 sda1 sda2 sdb
主引导记录(MBR):位于磁盘的第一个扇区 521 字节=446 字节 引导程序 记录 4 个分区表,每个 16 字节,64 字节 还有 2 个校验字节
最常用的查看磁盘分区:fdisk -l
MBR 中只可以划分 4 个主分区,或者时 3 个主分区+1 个扩展分区扩展分区后,可以划分逻辑分区
1.fdisk 划分分区 2.创建文件系统 mkfs.xfs /dev/sdb1(划分) 文件系统:组织和管理文件的 FAT16 FAT32 exFAT u 盘使用-->不支持单个超过 4G NTFS -->windows 使用 ext4/ext3/ext2 -->centos6 默认 XFS -->centos7 默认 centos6 和 centos7 的区别:默认系统不同 mkfs 创建文件系统-f 强制覆盖因为系统中主分区加扩展分区占用 1-4 的分区号,所以第一个逻辑分区为 5
常用的是:df -Th 查看挂载文件
gdisk:
gdisk -->划分容量超过 2T 磁盘分区 GPT 128 个 parted
交换分区 swap
作用:当内存不够时,使用交换分区代替内存;
mkswap 创建交换分区 swapon 开启交换分区 -s 查看系统中的交换分区 -p 设置优先级 -a 开启所有的交换分区 swapoff 关闭交换分区
查看内存:
free -m 查看内存 free 查看系统内存使用情况 -m 以 M 为单位
查看文件、目录大小:
du 文件名 查看文件或目录占用磁盘大小 -m -h 以人类可读方式显示 -m -s 仅显示目录或文件的总计数值
LVM 逻辑卷管理:
作用:动态调整区分大小缺点:在性能上有所降低
pv 物理卷 -->直接对磁盘操作 vg 卷组 -->将所有的物理卷组合 lv 逻辑卷 -->在卷组中划分出一定的空间
xfs_growfs 路径 刷新 xfs 文件系统 resize2fs 路径 刷新 ext4 文件系统
cache 缓存:
cache data LV 数据卷,用来缓存数据 cache metadata LV 元数据卷,用来缓存元数据 cache pool LV 缓存池,包含 data+metacache LV 缓存卷,包含真时的 LV 卷+缓存池
SSD 固态硬盘 HDD 机械硬盘
lsblk 列出块设备信息
创建缓存数据 lvcreate -L 10G -n cache_data /dev/vg0 /dev/sde1 创建元数据 lvcreate -L 100M -n cache_meta /dev/vg0 /dev/sde1 创建缓存池 lvconvert --type cache-pool --poolmetadata vg0/cache_meta vg0/cache_data 把缓存池里的放到逻辑卷下: lvconvert --type cache --cachepool vg0/cacha_data vg0/lv0
创建一个新的文件系统:mkfs.xfs /dev/vg0/lv0 在跟目录下创建 test 挂载根目录下的 test:mount /dev/vg0/lv0 /test
snapshot 快照:
-s 快照-L 值 要设置的大小-n 名字 要写的名字创建快照卷:lvcreate -L 2G -s -n lv_snapshot vg0/lv0 测试快照卷速度: dd if=/dev/sda of=/test/mbr.bak bs=512 count=1(dd 测试,if 源路径,of 要复制到哪路径,bs 一次复制多少 M,count 复制多少次) dd if=/dev/zero of=/test/mbr.bak bs=10M count=100(dd 测试,if 源路径,zero 代表 0,of 要复制到哪路径,bs 一次复制多少 M,count 复制多少次)在跟目录下创建/snapshot 目录挂载:mount -o nouuid /dev/vg0/lv_snapshot /snapshot/(uuid 相同用-o nouuid)
UUID 设备的唯一标识:blkid 查看磁盘的 UUIDnmcli conn show 查看网卡的 UUID
❀RAID 独立磁盘冗余阵列 数据安全性
硬 RAID 软 RAIDRAID 0 条带模式优点:提高数据的读写速度缺点:数据安全性低,一旦 RAID 中有磁盘损坏,RAID 组不可用 RAID 1 镜像模式 需要 2N 快盘优点:数据完全冗余(备份),安全性高(读效率相对提高)缺点:磁盘利用率低,成本高(50%)(写性能有所降低)RAID 5 分布式奇偶校验模式 至少使用少 3 块硬盘优点:数据相对安全,允许有一块磁盘损坏(校验数据) 读性能相对有提升缺点:如果两块盘损坏,RAID 不可用,写性能相对较低(做校验数据)使用率:"[(n-1)/n]*100"RAID 10RAID 50
软 RAID 实现通过 mdadm
降级与重构
cat /proc/mdstat
❀linux 系统启动流程
1.BIOS 加电自检(BIOS 基本输入输出系统)2.MBR 引导(MBR 主引导)全称( Master Boot Record)3.GRUB 菜单(可以让你选择用哪个系统内核)4.加载内核 5.初始化进程 init(切换系统运行的级别) systemd
uname(uname -s) 显示 linux 内核名称【Linux】|
查看系统版本:cat /etc/redhat-release
CentOs 6 默认的文件系统是 ext4CentOs 7 默认的文件系统是 xfsCentOs 6 内核版本使用的是 2.6CentOs 7 内核版本使用的是 3.10
linux 系统的运行级别
0 关机 1 单用户(不要密码就可以进入,主要是用于做调试)2 无网络的字符界面多用户 3 完整的字符界面多用户 4 未启用 5 图形界面 6 重启
centos 7systemctl get-default 查看系统默认的运行级别 systemctl set-default 级别 设置系统图默认的运行级别 multi-user.target 字符 3graphical.target 图形 5
破解 root 用户密码 CentOS 6:e2e 空格 1 回车再按 b passwd rebootCentOS 7:
❀重定向
详细文章在:Linux中的重定向以及标准输入输出、混合输出和标准错误输出
标准输入:
在页面直接显示 << (cat <<eof)[> ss,>aa,> eof,ss,aa] 输入追加 cat <> /a.txt (> asa,> asfs,> afo,> efo)[asa,asfs,afo] 输入覆盖 cat </a.txt
标准输出:> 重定向覆盖(echo "abcabcabc" > /a.txt )[abcabcabc]>> 重定向追加(echo "liuchenyang" >> /a.txt)[abcabcabc liuchenyang]
混合输出:混合输出 ls &>>a.txt(把 ls 查到的目录下所有的内容追加的 a.txt 文件里)
标准错误:标准错误 2> (LS 2> /a.txt)[-bash: LS: 未找到命令]
举例:
yum -y install bind bind-utils &> /dev/null && echo "ok" || echo "not ok"(安装一个 bind 和 bind-utils 把安装时候输出的内容全部放到/dev/null,[/dev/null 相当于一个回收站,输出到这里面就直接清空]然后如果安装成功就输出 ok,安装失败就输出 not ok)
❀周期性计划任务和任务调度
详情请看:Linux周期性计划任务和任务调度以及举例一次性计划任务:at
启动:systemctl start atd
周期性计划任务:crond
设置永久的周期性计划任务:vim /etc/crontab 进入 vim /etc/crontab 编辑,保存退出即可;
重点:
语法:
分 时 日 月 周 用户 要执行的命令* * * * * root 命令
举例:
1.每周三清空一下/var/ftp 目录 0 0 * * 3 root rm -rf /var/ftp/*2.每月的第一个周一凌晨 2 点 30 对/var/www/html/进行打包 30 2 1-7 * 1 root tar -cvzf backup.tar.gz /var/www/html3.每月 1 日,重启一次 httpd 服务 0 0 1 * * root systemctl restart httpd4.每一分钟删除一个文件* * * * * root rm -rf /root/abc.txt5.每两分钟删除一个目录*/2 * * * * root rm -rf /appliaction/ceshi6.每 2 周查找目录并删除* * * * */2 root find / -name test -type d | xargs rm -rf
补充:uid 用户的唯一标识 gid 用户组的唯一标识 uuid 设备的唯一标识 pid 进程的唯一标识
任务调度:
❀进程管理
详情请看:Linux进程管理
程序:存放在磁盘中的静态代码(文件)进程:在内存中允许运行的程序,动态的状态进程是资源调度最小的单位线程:线程是存在在进程中的线程(thread)是任务执行的最小单位
进程间资源隔离,线程间资源共用
ps 命令:
使用方法:
查看进程过滤出 nginx 的进程:ps -ef | grep nginx
netstat 命令:
使用方法:
查看端口,并过滤出自己想找的端口 netstat -anput | grep 8099
top 命令:
top 动态查看进程信息 uptime 查看 top 第一行 lscpu 查看 cpu 负载的核数 load average: 0.00, 0.01, 0.05 系统 1 分钟,5 分钟,15 分钟平均负载 %Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 stCPU 使用情况进程需要占用系统资源(cpu,内存,磁盘,网络,显卡)CPU 密集型 IO 密集型 us 用户态 CPUsy 内核态 CPUni 优先级 id 空闲的 CPUwa 等待输入输出设备的 CPUhi 硬中断 si 软中断 st 虚拟化占用 CPU 资源 KiB Mem : 995896 total, 487280 free, 121580 used, 387036 buff/cachebuff 写缓冲 解决空间问题 cache 读缓存 解决速率问题
renice 优先级:renice 调整运行进程的优先级 renice -n 优先级等级 pid 进程优先级命令/程序只有 root 用户可以设置负值
nice 设置进程运行时的优先级
linux 系统中进程状态:
僵尸进程:
什么是僵尸进程:
子进程结束,父进程没有回收子进程
解决僵尸进程:
1.重新启动系统 2.杀死父进程,将僵尸进程变为孤儿进程,此时孤儿进程由系统中的 systemd 接管,会自动清理。kill -9 pid 根据进程的 pid 强制杀死某个进程
父进程派生子进程
pstree 查看进程树
yum provides pstree 直接下载不了 pstree,就可以利用这个命令找到 pstree 是哪个包
结束(杀死)进程:
kill PID 杀进程 killall 进程名 根据进程名杀进程 pkill 根据条件杀进程
常用的杀进程是:
kill -9 进程 pid
pgrep 命令:
pidof 进程名 根据进程查进程号
❀用户提权
详情请看:👉Linux su命令 – 切换用户、用户提权👈
su 切换用户 sudo - 随用户更改环境变量
语法格式:
su [选项] [用户名]
常用参数:
参考实例:
切换到 linuxcool 用户,但环境变量仍然是 root 用户的:
[root@linuxcool ~]# su linuxcool
切换到 linuxcool 用户,并改变为 linuxcool 用户环境变量:
[root@linuxcool ~]# su - linuxcool
变更帐号为 root 并传入 -f 参数给新执行的 shell:
[root@linuxcool ~]# su root -f
用户提权:
visudo 编辑 sudo 配置文件 root 用户(用户不带 %)%wheel 用户组(组带 %)
sudo -i 切换到 root 用户
❀文件系统-软连接、硬链接
详情请看:👉Linux文件系统ln-软连接、硬链接👈
ln 命令是 linux 系统中一个非常重要命令,英文全称是“link”,即链接的意思,它的功能是为某一个文件在另外一个位置建立一个同步的链接。 一种是 hard link,又称为硬链接;另一种是 symbolic link,又称为符号链接。
通俗一点理解,可以把硬链接当成源文件的副本,他和源文件一样的大小,但是事实上却不占任何空间。符号链接可以理解为类似 windows 一样的快捷方式。
inode:文件元数据-->权限 归属 时间 类型·block 位置 block:磁盘 IO 的最小单位 默认 4K=8 个扇区一个文件占用一个 inode,至少占用一个 block
目录本身就是特殊的文件目录的 block 存放的是目录下文件和目录的名字
硬链接与软链接(符号链接)ln
ll 命令查看结果,其中-rw-------1 后面有个 1 就是硬链接数硬链接是文件的另一个入口软连接类似于 windows 的快捷方式
硬链接与软连接的区别:
1.硬链接的 inode 号相同,软连接 inode 不同 diff 比较两个文件是否相同(返回信息是不同,不返回信息是相同) vimdiff 比较两个文件是否相同 2.删除或重命名源文件对硬链接没有影响,软连接不可用。3.硬链接不能跨文件系统;软链接可以跨文件系统。4.目录不能创建硬链接;目录可以创建软链接 5.创建硬链接是 ln; 创建软连接是 ln -s
语法格式:
ln [参数] [源文件或目录] [目标文件或目录]
常用参数:
参考实例:
为源文件 file.txt 创建硬链接 file_1:
[root@linuxcool ~ ]# ln /root/dir/file.txt ./file_1
使用 ln 命令的“-s”参数来创建目录的符号链接,并使用 ls 命令来查看链接文件的详细信息:
[root@linuxcool ~]# ln -s dir file[root@linuxcool ~]# ls -l 总用量 4-rw-------. 1 root root 1138 3 月 11 14:48 anaconda-ks.cfgdrwxr-xr-x. 2 root root 36 4 月 3 08:47 testlrwxrwxrwx. 1 root root 4 4 月 3 08:54 file -> dir
使用 ln 命令的“-v”参数来输出命令的详细执行过程:
[root@linuxcool ~]# ln -v /root/dir/file.txt ./file_1 './file_1' => '/root/dir/file.txt'
使用 ln 命令的“-b”命令来创建目标文件的备份文件,并使用 ls 命令来查看:
[root@linuxcool]# ln -b /root/dir/file.txt ./file_1[root@linuxcool ~]# ls anaconda-ks.cfg file_1 file_1dir
相关命令:
1.df -Th 查看磁盘空间 2.df -Thi 查看 inode 情况 inode 耗尽引发的故障
1.删除不用的小文件 2.备份后,重新创建文件系统
tune2fs 文件路径 查看文件系统的信息 dumpe2fs 文件路径 查看文件系统的信息
❀日志管理
详情请看:👉Linux中的日志管理👈
日志:记录系统中相关的信息 系统日志 程序日志
/var/log 一般都存在这里面/var/log/messages 系统日志
从 CentOs6 开始,日志由系统中的 rsyslog 服务管理日志存放在/var/log 目录下
相关命令:
dmesg 查看内核和硬件相关的日志 last 查看用户登录的记录 lastlog 查看用户最后一次登录的时间 lastb 记录用户登录失败的信息 logrotate 实现日志轮割
日志的级别(9 个):
参考实例:
在周期计划性任务里写(crontab -e)cp file1 file1-$(date +%Y%m%d) && >file1【在周期计划性任务中,实现把当前目录下的 file1 复制一份重新创建一个叫 file1-时间(注意 date 里面的年月日..要加转义\)然后重定向清空 file1】在 crontab 中 %是有特殊含义的,表示换的意思。如果要用的话,必须进行转义 %,如经常用的 date
+%Y%m%d
在 crontab 中是不会执行的,应该换成 date+\%Y\%m\%d
syslog 管理:
系统的日志由服务 rsyslog 管理日志集中系统:
服务端 :
客户端:
. 记录包含该等级及以上级别的信息.= 只记录当前等级的信息! 除了该等级都记录
❀网络管理
ifconfig 命令:
详情请看:👉Linux网络管理之ifconfig命令 – 显示或设置网络设备👈
ifconfig 查看或管理网络信息 ifconfig ens33 查看 ens33 信息 ifconfig ens33 192.168.2.100/24
语法格式:
ifconfig [参数]
常用参数:
参考实例:
显示网络设备信息:
启动关闭指定网卡:
为网卡配置和删除 IPv6 地址:
用 ifconfig 修改 MAC 地址:
配置 IP 地址:
ip 命令:
详情请看:👉Linux网络管理之ip命令 – 显示与操作路由👈
ip 网络管理命令 ip a 查看网卡信息 ip l 查看网络连接情况
语法格式:
ip [参数]
常用参数:
参考实例:
用 ip 命令显示网络设备的运行状态:
使用-s 参数输出更详细的信息:
显示核心路由表:
显示邻居路由表:
ss 命令:
详情请看:👉Linux网络管理之ss命令– 显示活动套接字信息👈
ss 查看网络链接
语法格式:
ss [参数]
常用参数:
参考实例:<./font>
显示 TCP 套接字:
显示 UDP 套接字:
显示套接字使用概况:
netstat 命令:
详情请看:👉Linux网络管理之netstat命令– 显示网络状态👈
netstat 查看网络连接情况
语法格式:
netstat [参数]
常用参数:
参考实例:
显示详细的网络状况:
显示当前户籍 UDP 连接状况:
显示 UDP 端口号的使用情况:
显示网卡列表:
显示组播组的关系:
hostname 命令:
详情请看:👉Linux网络管理之hostname命令 – 显示和设置系统的主机名👈
语法格式:
hostname [参数]
常用参数:
参考实例:
查看主机名:
修改主机名:
查看主机 ip 地址:
使用-a 参数显示主机别名:
使用-i 参数显示主机的 ip 地址:
使用-y 参数显示 NIS 域名:
route 命令:
route 路由管理命令
详情请看:👉Linux网络管理之route命令 – 显示并设置路由👈
语法格式:
route [参数]
常用参数:
参考实例:
显示当前路由:
添加一条路由记录:
删除路由记录:
添加和删除默认网关:
tcpdump 命令:
详情请看:👉Linux网络管理之tcpdump命令 – 监听网络流量👈
语法格式:
tcpdump [参数]
常用参数:
参考实例:
监视指定网络接口的数据包:
监视指定主机的数据包:
截获主机 192.168.10.10 和主机 192.168.10.20 或 192.168.10.30 的通信:
抓取 80 端口的 HTTP 报文,以文本形式展示:
traceroute 命令:
详情请看:👉Linux网络管理之traceroute命令 – 追踪数据包在网络上的传输时的全部路径👈
traceroute 跟踪路由
语法格式:
traceroute [参数] [域名或者 IP]
常用参数:
参考实例:追踪本地数据包到www.linuxprobe.com的传输路径:
跳数设置:
显示 IP 地址,不查主机名 :
把探测包的个数设置为值 4:
把对外发探测包的等待响应时间设置为 3 秒:
ifup 开启网卡-激活网络接口
详情请看:👉Linux网络管理之网卡、网络接口开关设置👈
ifup 命令用于激活指定的网络接口。ifup 命令会去读取/etc/sysconfig/network-scripts/目录下的相关网络接口的配置文件,并根据配置文件的内容来激活该网络接口。
注意:网络接口名称必须是/etc/sysconfig/network-scripts/目录配置文件中设置的才可以。如果使用 ifconfig 命令改变了网络接口后,ifup 命令就不会识别了。因为 ifup 命令会对比当前网络的参数与/etc/sysconfig/network-scripts/中配置文件的内容是否相符。
语法格式:
ifup [网络接口]
参考实例:
激活网络接口 eth0:
ifdown 关闭网卡– 禁用网络接口
详情请看:👉Linux网络管理之网卡、网络接口开关设置👈
ifdown 命令用于禁用指定的网络接口。该命令会去读取/etc/sysconfig/network-scripts/目录下的相关网络接口的配置文件,并根据配置文件的内容来关闭该网络接口。
注意:网络接口名称必须是/etc/sysconfig/network-scripts/目录配置文件中设置的才可以。如果使用 ifconfig 命令改变了网络接口后,ifdown 命令就不会识别了。因为 ifdown 命令会对比当前网络的参数与/etc/sysconfig/network-scripts/中配置文件的内容是否相符。
语法格式:
ifdown [网络接口]
参考实例:
禁用网络接口 eth0:
arp 地址解析协议
详情请看:👉Linux网络管理之arp命令 – 操纵系统arp缓存(地址解析协议)👈
语法格式:
arp [参数] [IP]
常用参数:
参考实例:
显示本机 arp 缓存中所有记录:
以数字方式显示指定主机 arp 缓存条目:
删除接口 eth1 上的 192.168.60.1 的 arp 表中的项:
使用 eth1 的 MAC 地址回答 eth0 上的 192.168.60.2 的 arp 请求:
journalctl 命令
详情请看:👉Linux—journalctl命令 – 查看日志👈
journalctl 查看所有日志
语法格式:
journalctl [参数]
常用参数:
参考实例:
查看所有日志:
查看内核日志:
查看系统本次启动的日志:
查看 httpd 的日志:
查看最近发生的 20 条日志:
追踪日志:
nmap 网络探测工具和安全和端口扫描器
详情请看:👉Linux—nmap、nc命令 –网络探测工具和安全和端口扫描器👈
语法格式:
nmap [参数]
常用参数:
参考实例:
扫描主机并跟踪路由:
使用-p 参数探测 80、443 端口:
探测服务器的 1-10000 端口范围:
使用-A 参数进行高级扫描:
nc 端口扫描 – 设置路由
详情请看:👉Linux—nmap、nc命令 –网络探测工具和安全和端口扫描器👈
语法格式:
nc [参数]
常用参数:
参考实例:
扫描 80 端口:
扫描 UDP 端口:
扫描 TCP 端口:
history 查看历史记录
详情请看:👉Linux—history命令 –– 查看与操纵历史命令👈
语法格式:
history [参数] [目录]
常用参数:
参考实例:
查看所有的历史记录:
显示最近的 10 条命令:
将本次登录的命令写入历史文件中:
将命令历史文件中的内容读入到目前 shell 的 history 记忆中 :
将当前 Shell 会话的历史命令追加到命令历史文件中:
清空当前历史命令列表:
执行已经执行过又想执行的命令:
补充:
chage -d 0 用户名 首次登录设置密码
版权声明: 本文为 InfoQ 作者【A-刘晨阳】的原创文章。
原文链接:【http://xie.infoq.cn/article/b8ca925ac34691f335660941f】。未经作者许可,禁止转载。
评论