linux基础+常用命令

时间:2024-05-21 16:03:48

Linux系统基本操作
linux基础+常用命令

Shell
linux基础+常用命令
linux基础+常用命令
linux基础+常用命令

linux命令的分类
linux基础+常用命令

Linux命令行的格式
linux基础+常用命令
linux基础+常用命令

编辑linux命令行
linux基础+常用命令

获得命令帮助的方法
linux基础+常用命令

Linux目录结构
linux基础+常用命令
linux基础+常用命令

目录结构介绍
linux基础+常用命令
#常用命令
1.查看系统版本:
cat /etc/redhat-release
或安装redhat-lsb-core
yum -y install redhat-lsb-core
lsb_release -a
注:查看系统内核
uname -a
2.查看CPU:
cat /proc/cpuinfo
3.查看内存信息
cat /proc/meminfo
4.关机
poweroff
shutdown -h now/shutdown -h +3 3分钟后再关机,取消是shutdown -c
init 0
5.重启
shutdown -r now/shutdown -r +2 2分钟后再重启,取消是shutdown -c
reboot
init 6
注:
字符界面切换到图形化界面:init 5
图形化界面切换到字符型界面:init 3
6.vi编辑器的使用方式
vi xxx
vim xxx
!vi/!vim 回退且自动打开上次编辑的文件
1】插入内容
a:当前光标后插入内容
A:光标所在的行尾插入内容
i:当前的光标位置前插入内容
I:光标所在的行头插入内容
o:在光标所在行的后面插入一个新行
O:在光标所在行的前面插入一个新行
2】移动
^/0/Home 移动到行首
KaTeX parse error: Expected 'EOF', got '#' at position 32: … 移动到末行 #̲G 移动到指定行 … 删除当前光标到行尾的所有字符
4】复制
yy 复制当前行
#yy 复制从光标处开始的若干行
5】粘贴
p 粘贴到光标处后
P 粘贴到光标处前
6】查找
/xxx n向下找
N向上找
7】撤销
u 撤销最近一近操作
U 撤销对当前行做的所有编辑
8】显示行号
:set nu
9】替换
:【替换范围】 s/旧内容/新内容/g
%:全文范围
n,m:从n行到m行
/g:每一行的所有匹配结果都替换,若没有/g则代表只替换这行的首个匹配旧内容
7.退出
:q
:q!(强制退出)
8.保存退出
:wq
:x
ZZ
9.修改主机名
vi /etc/hostname
xxx
hostnamectl set-hostname xxx
10.网页主页的编辑
1)创建主页结构体

111 2) -标签-类似文章标题(网页左上角显示) 3)-标签-描述网页具体的摘要信息 4)<h1>一级标题....<h6>六级标题 5)<p></p>段落符 6)<br/>强制换行 7)<img src=""/>图片链接 8)<a></a>超链接标签 11.系统命令帮助信息 help xxx xxx --help 12.查看目录或文件属性信息 ls -l 显示权限、大小、最后更新时间等详细信息。(可缩写成ll) -h 以更人性化的方式显示出目录或文件的大小(带单位的)。 13.统计目录及文件的空间占用情况 du -a 统计每个文件占用大小 -h 统计以kB为单位的占用空间大小 -s 统计占用空间总大小 14.创建空文件 touch xxx 15.创建目录 mkdir -p xx/xx/xx 嵌套创建若干目录(目录之间的关系是父子) mkdir {a,b,c} 一次性创建若干平级的目录 16.复制 cp -f 强制(不用做确认) -i 需要确认 -p 保持源文件权限、属主、时间标记不变 -r 递归 17.删除 rm -r 递归 -f 强制 -i 提示 18.移动 mv 源文件 目文件 若源目位置完全相同,效果即为重命名。 19.查找用户所执行的命令文件存放目录 which xxx(命令) 20.查找文件或目录 find 【查找范围-目录】 -size +100k -a(并且)/-o(或者) -name "xxx" 21.显示文件内容 cat 文件(需要它的绝对路径) 22.分页查看文件内容 more/less 文件 23.查看开头的部分内容 head [-n] 文件(默认10行,可指定行数) 24.查看末尾的部分内容 tail [-n] 文件(默认10行,可指定行数) 25.统计文件内容中的单词、行数等 wc -c 字节数 -l 行数 -w 单词个数 26.检索、过滤文件内容 grep -i 忽略大小写 文件 -v 过滤查询 ps:^xxx以xxx开头,^$空行 ,xxx$以xxx结尾 27.压缩 gzip [-9] xxx (xxx.gz) bzip2 [-9] xxx (xxx.bz2) 28.解压缩 gzip -d xxx.gz /gunzip xxx.gz bzip2 -d xxx.bz2 /bunzip2 xxx.bz2 29.归档文件 tar zcvf xxx.tar.gz /etc /root tar jcvf xxx.tar.bz2 /opt 30.释放文件 tar zxvf xxx.tar.gz -C 目录 (指定目录的释放) tar jxvf xxx.tar.bz2 -C 目录 31.查询rpm软件包信息 rpm -q xxx 查询软件包是否安装 rpm -qa | grep xxx 查询xxx是否被安装过 rpm -i 安装 -e 卸载 -U 升级 -F 只有软件安装过,才给升级 --force 强制 --nodeps 不检查与其他软件包的依赖关系 -v 显示过程信息 -h 在安装或升级过程中以#显示进度 32.编译安装的基本过程 1)tar 解包 tar zxvf/jxvf xxx.tar.gz/xxx.tar.bz2 -C 目标路径 2)配置 ./configure --prefix=目标路径(此软件安装到哪里去) 3)编译 make 4)安装 make install 33.查询用户账户 cat /etc/passwd 全部列出 head 【-5】 /etc/passwd 列出前5个(省略的话,默认列出前10个) tail 【-5】 /etc/passwd 列出后5个(省略的话,默认列出后10个) 34.查询用户密码(密文) cat /etc/shadow head -5 /etc/shadow tail -3 /etc/shadow 35.添加用户 useradd -u 指定uid 用户名 -d 指定宿主目录 -e 指定账户失效时间 -g 指定用户基本组 -G 指定用户附加组 -M 不建立宿主目录 -s 指定用户登录shell 36.设置用户密码 passwd 用户名 passwd -d 清空密码 -l 锁定用户 -S 查询用户状态 -u 解锁用户 echo "123456" > passwd --stdin 用户名 给用户初始化密码为123456 37.修改用户账号属性 usermod -u 修改用户uid 用户名 -d 修改宿主目录 -e 修改用户账户失效时间 -s 指定用户登录shell -l 更改用户登录名 -L 锁定用户 -U 解锁用户 -g 修改用户所属的基本组 -G 修改用户所属的附加组 38.删除用户 userdel 用户名 -r 删除用户时将宿主目录也连带删除 39.添加组账户 groupadd 用户名 -g 指定组id 40.查询组账户 grep "用户名" /etc/group 41.删除组账户 groupdel 用户名 42.将用户加入指定组中 gpasswd -a 用户名 组名 (用户要已存在) 43. 查询账户信息 id 用户名 查询用户的uid和gid,所属的基本组,附加组信息 groups 用户名 查询用户所属的组 finger 用户名 查询用户详细信息 w 查询当前主机用户登录情况 44.将用户从指定组中移除 gpasswd -d 用户名 组名 45.指定多个用户同时加入某个组 gpasswd -M xxx1,xxx2,xxx3,xxx4 adm(组名) 46.修改文件的属主和属组 chown 属主:属组 文件 修改该文件的属主和属组 chown 属主 只修改该文件的属主 chown :属组 只修改该文件的属组 47.修改目录/文件的权限 chmod -R(递归) +/-x 目录 755 chmod nnn 文件 4 2 1 读 写 执行 备注:权限755代表的对象分别是u(属主),g(属组),o(其他用户) 48.修改当前用户权限默认值 umask 006(771) 49.硬盘的常用接口类型:ide接口、sata3接口、iscsi接口、m.2接口、nvme m.2接口 50.硬盘的初始化分区格式:mbr、gpt 51.linux中常用的文件系统类型:ext4(一般linux)、xfs(centos默认)、swap 52.检测并确认新硬盘 fdisk -l 53.规划硬盘中的分区 fdisk /dev/sdx n 新建分区 p 列出分区 d 删除分区 t 改变分区类型 w 保存 q 退出 54.格式化硬盘分区 mkfs -t ext4/xfs /dev/sdx1 mkfs.ext4/xfs /dev/sdx1 55.创建swap分区 mkswap /dev/sdx1 55.挂载swap分区用作交换分区 swapon /dev/sdx1 56.卸载swap分区 swapoff /dev/sdx1 57.挂载文件系统 临时: mount /dev/cdrom(源文件) /mnt(挂载点) 永久: vi /etc/fstab /dev/cdrom /mnt iso9660 defaults 0 0 mount -a (启用/etc/fstab中的配置信息进行挂载) 58.卸载文件系统 umount /dev/cdrom(源文件) umount /mnt(挂载点) 59.查看本地挂载情况/磁盘使用情况 df -Th 60.逻辑卷创建过程: 1.准备两块以上硬盘连接到主机上 2.重启系统检测识别这几块硬盘 3.管理硬盘并给这些硬盘分区并保存 4.格式化各硬盘分区 5.挂载使用 6.创建物理卷 7.将多块物理卷组合成一个卷组 8.将卷组分割成若干逻辑卷 命令:2.fdisk -l 3. fdisk /dev/sdb 、 fdisk /dev/sdc (-t成8e)4.mkfs -t ext4 /dev/sdb1 、 mkfs -t ext4 /dev/sdc1 5.mount /dev/sdb1 /b1 、 mount /dev/sdc1 /c1 --》df -Th检测效果 6.pvcreate /dev/sdb1 /dev/sdc1 7.vgcreate lvm /dev/sdb1 /dev/sdc1 8.lvcreate -L 50G -n xin(lvm名称) lvm(卷组名称) 61.创建RAID卷 RAID卷的比较 级别 磁盘数量 容错性 扩展性 可用磁盘空间 带区卷(RAID-0) 2块以上 无 无 多块磁盘容量的总和 镜像卷(RAID-1) 2块 有 无 2块磁盘的容量总和的1/2 RAID-5 3块以上 有 无 多块磁盘容量的总和的(n-1)/n RAID-6 4块以上 有 无 多块磁盘容量的总和的(n-2)/n RAID-10 4块以上 有 无 多块磁盘容量的总和的n/2 mdadm -C 创建磁盘 -n # 使用#块盘创建raid -l # raid级别# -a {yes/no}:是否自动创建目标raid设备的设备文件 -c chunk_size 指明块大小,单位为k -x # 指明空磁盘的个数(备份) 例: mdadm -C /dev/md0 -a yes -l 5 -n 3 -x 1 /dev/sd{b,c,d,e}1 用4块硬盘建raid5,3块使用 ,1块备份 mdadm -D /dev/md0 显示raid 详细信息 mdadm -S /dev/md0 停止设备 mdadm -D -s /dev/md0 >> /etc/mdadm.conf 生成配置文件 mdadm -A -s /dev/md0 **设备 mdadm -R /dev/md0 强制启动 mdadm /dev/md0 -f /dev/sdb1 设置sdb1为坏盘 mdadm /dev/md0 -r /dev/sdb1 移除坏盘 mdadm /dev/md0 -a /dev/sdb1 raid里添加硬盘 删除RAID mdadm -S /dev/md5 停止raid mdadm --zero-superblock /dev/sdb1 删除sdb1信息 mdadm --zero-superblock /dev/sdc1 删除sdc1信息 mdadm --zero-superblock /dev/sdd1 删除sdb1信息 mdadm --zero-superblock /dev/sde1 删除sdb1信息 ****永久挂载RAID****** 1.获取该RAID的UUID mdadm --detail /dev/md0 | grep -i uuid UUID : 8a0dc71c:91c3baf3:00f998c9:b9d87a0f(此uuid是设备向系统注册的uuid) 2.开始设置mdadm.conf vim /etc/mdadm.conf ARRAY /dev/md0 UUID=8a0dc71c:91c3baf3:00f998c9:b9d87a0f 3.获取测试信息 blkid /dev/md0(此uuid是全局uuid,用来唯一的代表这个设备) /dev/md0: UUID="6047a66b-4ceb-4322-8dc8-bcec29a81a09" TYPE="ext4" 4.设置开机自启动 vi /etc/fstab UUID=6047a66b-4ceb-4322-8dc8-bcec29a81a09 /data ext4 defaults 0 0 5.让/etc/fstab配置生效 mount -a 6.测试 df -Th </h6></h1>

62.centos引导过程
1.开机自检 2.mbr引导 3.GRUB菜单供用户选择 4.加载linux内核 5.init进程初始化
63./sbin/init 是内核第一个加载的程序 ,进程号永远是1.
64.修复MBR扇区故障
故障原因:病毒、木马等造成的破坏,不正确的分区操作,磁盘读写操作
故障现象:找不到引导程序,启动中断,无法加载操作系统,开机后黑屏
应对思路:应提前做好备份文件 以安装光盘引导进入紧急急救模式,重备份文件中恢复。

操作步骤模拟MBR扇区实验
加一块硬盘做实验
进系统查看磁盘
fdisk -l ##看是否有sdb
mkfs -t ext4 /dev/sdb ###格式化sdb
挂载mount /dev/sdb /opt
1、备份MBR扇区数据
dd if=/dev/sda of=/opt/mbr.bak bs=512 count=1
2、模拟MBR扇区故障
dd if=/dev/zero of=/dev/sda bs=512 count=1
重启后观察系统是否有问题

出现

operating system not found

上述就是有故障了MBR挂了
光盘引导,进入急救模式,提示操作
从备份文件中恢复MBR扇区
步骤如下
1.装入光盘,在光盘引导界面选择troubleshooting:
2、进入troubleshooting菜单 选择Rescue a centos system
3、进入引导可以按回车,或者等待
按1 在按回车进入sh-4.2#
4.急救模式下sdb的挂载
mkdir /sdd
mount /dev/sdb /sdd
cd /sdd 查询下该备份文件是否存在
5.dd if=/sdd/mbr.bak of=/dev/sda count=1 bs=512
6.重启reboot 进入系统测试是否正常。
65.grub修复
cd /boot/grub2 ###进入grub2
rm -rf grub.cfg ###删除grub2.cfg 模拟故障
init 6 重启
####出现故障,如下####
grub>
###修复如下###
1.引导急救模式,加载系统镜像
chroot /mnt/sysimage/
2.重新建立加载sda分区
grub2-install /dev/sda
3.重新构建grub菜单配置文件
grub2-mkconfig -o /boot/grub2/grub.cfg
4.退出bash环境
exit
5.重启
reboot
66.忘记root密码
sh-4.2#chroot /mnt/sysimage 加载系统镜像
bash-4.2#passwd root
new:
retry:
退出bash环境 exit
重启 reboot
67.chkconfig工具的作用
用于查询或设置系统服务的默认启动状态。
chkconfig --list 查询系统服务的默认启动状态
chkconfig mysqld 35 on 在init 3和5中开启mysqld服务
68.systemd的作用
为了将更多的服务并发启动,从而提高系统启动速度。
69.启动服务
systemctl start xxx
service xxx start
70.关闭服务
systemctl stop xxx
service xxx stop
71.开机自动启动
开启 systemctl enable xxx
关闭 systemctl disable xxx
72.查看系统默认的target(界面)
systemctl get-default
73.设置系统默认的target
systemctl set-default multi-user.target/graphical.target
74.语言设置
查看 localectl
设置 localectl set-locale LANG=zh_CN.UTF-8(可改)
75.时间设置
查看 timedatectl
设置 timedatectl set-time YYYY-MM-DD
timedatectl set-time HH:MM:SS
timedatectl set-timezone time_zone
76.查看进程
ps a 显示当前终端下的所有进程信息
u 显示以用户为主的格式显示进程信息
x 显示当前用户在所有终端下的进程信息
-e 显示系统内的所有进程信息
-l 使用长格式显示进程信息
-f 使用完整格式显示进程信息
例:ps aux
ps -elf
77.查看进程动态信息
top
78.查询进程信息
pgrep -l “xxx” 输出进程名中包含xxx的进程及进程号(pid)
-U aaa 输出由用户aaa运行的进程及进程号(pid)
-t tty1 输出tty1终端上运行的进程及pid号
79.查看进程树
pstree -aup
a 完整命令信息
u 列出对应的用户名
p 列出其对应的pid号
80.调入后台进程
cp 1.gz /opt/2.gz &
81.挂起当前进程并放入后台
wget ftp://www.baidu.com/httpd.bz2 (例) 在下载过程中按ctrl+z组合键
82.查看后台进程
jobs -l
83.将后台进程调入前台
fg 1(1是后台进程号)
84.终止进程
kill 【-9】 5124(pid号) -9是强制 (需要提前知道进程号)
killall 【-9】 vi 将多个进程名为vi的进程都终止(有效率的终止)
pkill 【-9】 -U lisi 将用户lisi启动的进程终止(有条件的终止时用pkill)
85.一次性任务
date
at 10:20 2019-12-17
at>cp -r /var/log/httpd/* /opt/httpd
at>
EOT:文字结束符号 另EOF:文件结尾的符号(后面shell会用)
#atq 查询at任务计划
#atrm 2(任务号)删除一次性任务计划
86.任务计划
crontab -e 编辑任务计划
分钟 时 日期 月份 星期 绝对路径的命令(操作)
/ 代表每间隔的意思 【/3 每隔3】
* 代表任意的意思
- 代表连续的意思
, 代表不连续的间隔
crontab -l 查看任务计划
crontab -r 清空任务计划
#crontab -l -u 用户名 root用户可以查看普通用户做的任务计划,但是普通用户没有
权限查看root用户做的计划
用户任务计划存储路径 /var/spool/cron/用户名
87.锁定文件
chattr +i /etc/passwd /etc/shadow
88.解锁文件
chattr -i /etc/passwd /etc/shadow
89.设置密码有效天数
vi /etc/login.defs
PASS_MAX_DAYS 30 适用于新用户
#chage -M 30 lisi 适用于已存在用户
#chage -d 0 zhangsan zhangsan下次登录时必须修改密码
90.命令历史记录
vi /etc/profile
HISTSIZE=200 新登录用户有效
#export HISTSIZE=200 现已登录的用户有效
vi ~/.bash_logout 当退出已登录bash环境后,所记录的历史命令将自动清空
history -c
clear
vi /etc/profile
export TMOUT=600 适用于新登录用户,设置其终端的超时时间为600s
#export TMOUT=600 适用于当前登录用户
#unset TMOUT 取消TMOUT变量设置
91.用户切换
su 用户 切换用户
默认是所有用户都允许使用su命令,如果限制wheel组用户使用su
vi /etc/pam.d/su

auth required pam_wheel.so use_uid 将#去掉的话代表只允许wheel组用户使用su命令

92.提升执行权限
visudo
user MACHINE=COMMANDS
例:
visudo
zhangsan localhost=/sbin/ifconfig
%wheel ALL=ALL
查看用户的权限
su 用户名 进入此用户
sudo -l 查看用户的权限
93.pam认证类型
1)认证管理(authentication management)
2)账户管理(account management)
3)密码管理(password management)
4)会话管理(session management)
94.禁止普通用户登录
touch /etc/nologin 在服务器进行备份或调试过程时用
95.弱口令的检测
tar zxvf john.tar.gz
cd john-1.8.0
cd src
make clean linux-x86-64 执行编译文件
ls …/run/john 查看是否生成john程序
cp /etc/shadow /root/shadow.txt 复制密码文件
cd …/run
./john /root/shadow.txt 破译账户弱密码
./john --show /root/shadow.txt 查看已破译出的账户列表
使用密码字典文件
[[email protected] run]# :> john.pot //清空已**出的账户列表,以便重新分析
[[email protected] run]# ./john --wordlist=./password.lst /root/shadow.txt
[[email protected] run]# ./john --show /root/shadow.txt

96.网络扫描
rpm -ivh /mnt/Packages/nmap-xxxx.rpm 安装nmap软件包
nmap -sT (tcp连接扫描) 127.0.0.1、192.168.4.0/24、192.168.4.100-200
-sU (udp扫描)
-sP (icmp扫描)
-sS (tcp syn扫描)
-sF (tcp fin扫描)
-p (指定端口扫描) 21,20(扫描多个端口用逗号进行分隔)
97.linux操作系统的文件权限、文件属性会放入inode中,内容放入block中。一个文件必须占用一个inode,
至少占用一个block。
inode中的内容:
文件的字节数
文件的拥有者的用户id
文件的组id
文件的读、写、执行权限
文件的时间戳

98.查看inode节点占用情况
df -i /data 查看/data目录下i节点占用情况
注:若节点耗尽,可以转移或删除一些占用i节点数比较多的文件。
99.硬链接
ln 源文件 目标文件
源文件与目标文件的inode号码相同,都指向一个inode,当一个文件拥有多个硬链接时,对文件内容修改,
会影响到所有文件,若删除一个文件,不会影响另一个文件的访问。
100.软链接
ln -s 源文件 目标文件
源文件与目标文件的inode号码不同,但目标文件依靠源文件存在而存在,删除源文件后,目标文件也无
法访问。注:若目标文件发生改变,源文件也会跟着改变,这点和硬链接一样。
101.日志文件的分类
/var/log/message 记录linux内核消息及各种应用程序的公共日志信息
/var/log/cron 记录crond计划任务产生的事件信息
/var/log/dmesg 记录linux系统在引导过程中的各种事件信息
/var/log/maillog 记录进入或发出系统的电子邮件活动
/var/log/lastlog 记录每个用户最近的登录事件
/var/log/secure 记录用户认证相关的安全事件信息
/var/log/wtmp 记录每个用户登录、注销及系统启动和停机事件
/var/log/btmp 记录失败的、错误的登录尝试及验证事件
102.日志级别
0 EMERG(紧急) 会导致主机系统不可用情况
1 ALERT(警告) 必须马上采取措施解决的问题
2 CRIT(严重) 比较严重的情况
3 ERR(错误)运行出现错误
4 WARNING(提醒)可能影响系统功能,需要提醒用户的重要事件
5 NOTICE(注意)不会影响正常功能,但是需要注意的事件
6 INFO(信息)一般信息
7 DEBUG(调试)程序或系统调试信息
103.查询用户登录的历史记录
last 查看成功登录到系统的用户记录
lastb 查看登录失败的用户记录