Linux常用基础命令

Linux常用基础命令

腾讯在线文档(优化版): https://docs.qq.com/doc/DQmdRTGhIUXV0Vmxm

1.创建目录,文件:

mkdir -p /root/a/b/c/d/e #递归创建目录
touch /etc/a.sh #创建a.sh文件
which ls #which查找到命令所对应的程序

2.ls命令:

ls -hl /etc/passwd #查看详细信息并以方便读的形式
ll -hd /root #查看root目录本身的详细信息

3.快捷键:

ctrl + a #跳至命令行首
ctrl + e #跳至命令行尾
ctrl + u #清空至行首
ctrl + w #往回删除一个单词(以空格界定)

4.mount挂载:让目录成为设备的访问点

mount /dev/cdrom /dvd #将/dev/cdrom挂载到/dvd下
umount /dvd #卸载【卸载时不要在挂载点的目录下】

5.查看文件的命令:

cat -n /etc/passwd #查看并显示行号
head -3 /etc/passwd #显示头三行
tail -5 /etc/passwd #显示最后五行
grep -i “root” /etc/passwd #显示含有root关键字的行【-i为忽略大小写 , -v为取反】

6.tar命令:

【c-创建, x-释放, f-指定文件名, t-显示文件清单,c-指定释放路径】
tar -cgf /opt/a.tar.gz /opt/b.sh /root/bin
#将/opt/b.sh文件与/root/bin目录打包到/opt/a.tar.gz
【g-gz(速度快) j-bz2(中) J-xz(压缩比例高)】

tar -tf /opt/a.tar.gz
#查看该压缩目录下的文件清单

tar -xf /opt/a.tar.gz -c /mnt
#将/opt/a.tar.gz解压到/mnt下
【将 -c /mnt 去掉,则解压到当前目录下】

zip -r /opt/abc.zip /root/bin

7.重定向与管道:

head -12 /etc/passwd | tail -5 > /opt/passwd_8_12
#将/etc/passwd文件的8-12行重定向到/opt/passwd_8_12
【> -覆盖重定向, >> -追加重定向】

8.find命令:

find /root -name “passwd” -type f
#查找名字有passwd的文件
【name选项官方提示要加双引号,防出错】
【type类型: d-目录, f-文件, l-快捷方式】

find /boot/ -size +10m -user student -mtime -10
#查找/boot/目录下大于10m的文件,且所有者为student的文件
【size大小: k , m ,g +为大于 -为小于 ps:单位前不能只为1(1m,1g不行,1024m可以),否则没有输出】
【user用户: 想查的文件所有者】
【mtime时间: +10表示十天之前的, -5最近五天之内的】

find高级用法:
find /etc -size +10m -exec cp -r {} /mnt ;
#将/etc下大于10m的文件拷贝到/mnt下
【-exec:额外操作的开始 , {}:表示前面find查询的结果 , \; :额外操作的结束】

9.vim高级使用:

a. 命令模式下技巧:

a) 1g=gg        #跳至行首
b) g            #跳至行尾
c) 3yy           #复制3行
d) p            #粘贴刚复制的内容
e) x=delete键          #删除光标处单个字符
f) 4dd               #删除光标处的4行
g) d^                 #从光标处删除至行首
h) d$=d             #从光标处删除至行尾
i) /word            #向后查找字符串“word”,【n跳至后一个,n前一个】
j) u                   #撤销最近一次操作【u 撤销当前行的所有操作】
k) ctrl + r           #取消前一次撤销操作
l) zz                  #保存并退出
m) ctrl + shift + “+”          #字体调大
n) ctrl + “-”              #字体调小

b. 末行模式下技巧:

o) :w                  #保存当前文件
p) :q!                 #放弃已有更改后强制退出
q) :wq或 :x                     #保存已有修改后退出
r)  :w /root/newfile                     #另存为其他文件
s)  :r /etc/filesystems                  #读入其他文件内容
t)  : s/old/new/g              #替换当前行所有的“old” 【不加g,则替换第一个】
u)  :n,m s/old/new/g                  #替换第n-m行所有的“old”
v)  :% s/old/new/g                      #替换文件内所有的“old”
w)  :set  nu                     #显示行号 【nonu-不显示行号】
x)  :set  ai                      #启用自动缩进 【noai- 关闭自动缩进】

10.rpm与yum软件包管理:

a. RPM:

rpm -q[子选项: a,i,l ] [RPM软件名称] #查询已装rpm包的信息【子选项:-a为列出所有已装软件包, -i为查看指定软件详细信息 , -l为查看指定软件的文件安装清单】

rpm -qf [目录或文件路径:/root , /etc/passwd] #查询某个目录/文件时哪个RPM包带来的,即使目标文件呗删除,也可以查询(有数据库的记录)

rpm -q[子选项:pi,pl] [RPM软件名称] #查询未安装的RPM文件【子选项:pi为查看指定软件的详细信息 , pl为查看指定软件的文件安装清单】

rpm -ivh [RPM软件名称] #安装rpm包【-v为显示细节 , -h为显示安装进度 -e为卸载】

rpm --force [RPM软件名称] #强制安装、覆盖安装【–test:测试安装,不做真实操作】 ,所以当某个目录或文件不小心删除了可先-qf查出是哪个包带来的,再—force覆盖安装,将其重装

b. YUM:自动解决依赖包

(epel源为扩展包含有 红帽官方之外的大部分包:
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo)
mount /dev/cdrom /mydvd
vim /etc/yum.repos.d/*.repo
[haha] #仓库标识
name=hehe #仓库描述信息
baseurl=file:///mydvd #指定服务端位置【ftp:// , http://】
enabled=1 #是否启用本文件
gpgcheck=0 #是否检测签名信息

yum repolist #列出所有包的个数
yum -y install [软件包] #安装
yum remove [软件包] #卸载
yum list [软件包 #严格匹配]
yum search [软件包] #模糊查询
yum clean all

11.命令小扩展

a. 查看帮助:

[命令] --help
man [命令]

b. 历史命令:

history #查看历史命令
history -c #清空历史命令
!cat #运行历史命令中最近一条以cat开头的命令

c. 统计空间:

du -sh #统计文件占用的空间【-s:只统计父目录 ; -h: 易读单位】

d. 常用日期:

Date #查看当前时间 【–help: 查看日期一些常用参数】
date -s “2021-12-30 12:00” #重新设置日期

e. 制作链接:

ln -s /etc/sysconfig/network-scrpts/ /network #制作软链接快捷方式
ls -l /network #查看快捷方式/network信息
f. Linux-Windows通用压缩:
Zip -r /opt/abc.zip /home /boot #跨平台归档【将/home /boot压缩到/opt/abc.zip】
Unzip /opt/abc.zip -d /hh #将/opt/abc.zip释放到/hh目录下

12.用户管理,组账号管理

/etc/passwd文件解释
用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell

/etc/group文件解释
组名:组密码占位符:GID:组成员列表

a. 创建用户:

useradd [选项] 用户名 #【-u:指定UID ; -d:指定家目录(所指定的家目录不能已存在,不能多层目录下(/opt/aa/bb/cc)) ; -G:指定附加组 ; -s:指定解释器】
groupadd L1 #添加组
useradd -u 1100 -d /opt/my_zhi01 -G L1 -s /sbin/nologin zhi01 #添加用户并指定UID,家目录,附加组,解释器
id [用户名] #查看用户基本信息

b. 修改用户:

usermod [选项] 用户名 #【-l:更改账户登录名 ; -u:更改UID ; -d:家目录(修改后需要自己创建指定目录并授权) ; -G:重置附加组 ; -s:登录解释器】

c. 删除用户:

userdel [选项] 用户名 #【-r:宿主目录/用户邮件一并删除】

d. 创建组:

groupadd 组名 #添加组

e. 管理组成员:

gpasswd [选项] 用户名 组名 #【-A:定义组管理员列表 ; -a:添加组成员,每次只能一个 ; -d:删除组成员,每次只能一个 ; -M:定义组成员用户列表(重置),可多个(多个用户逗号隔开,双引号引起来)】
gpasswd -M “zhi01,zhi02,zhi03” lzl01

f. 删除组:

groupdel 组名

13.用户初始配置文件

/etc/skel #新建用户时,根据/etc/skel模板目录复制到 新建用户家目录)
~/.bashre #每进入新BASH环境时执行,定义永久别名(家目录下隐藏文件)
/etc/bashrc #全局的配置文件,别名设置文件

14.周期计划任务

crontab -e [-u 用户] #编辑
crontab -l [-u 用户] #查看
crontab -r [-u 用户] #清除

周期性计划任务书写格式:
分 时 日 月 周 任务命令行 (绝对路径)
*/5 * 1,15 * 1-5 每月1号和15号或者周1至周5,每隔5分钟执行一次
【 * : 匹配范围内任意时间】
【 , : 分隔多个不连续的时间点】
【 - : 指定连续时间范围】
【 */n : 指定时间频率,每隔n…】

15.权限管理(RWX,属主,属组,附加)

a. RWX权限

执行 ls -l 或者 ls -ld 命令查看
drwxr-xr-x 19 root root 3940 Mar 6 13:38 dev
-rw------- 1 root root 1149 Jun 2 2019 disk_check.log
lrwxrwxrwx 1 xtjk02 xtjk02 41 Mar 10 11:42 eth0 -> /etc/sysconfig/network-scripts/ifcfg-eth0
首字母:-表示文件;d表示文件夹;l表示软连接
第二列:子目录数(包括隐藏目录)

b. 修改权限(chmod命令)

chmod [ugoa] [±=] [rwx] [文件名]
chmod [0-7][0-7] [0-7] [文件名] # r=4 ; w=2 ; x=1
常用命令选项 【-R】:递归修改权限

c. 组管理(归属关系)

chown 属主:属组 [文件名]
常用命令选项 【-R】:递归修改权限

d. 新建文件/目录的默认权限

  1. 一般文件均默认不给 x 权限
  2. 其他取决 umask 设置(或者umask -S 查看) (0022–第一个数字表示附加权限,)
    a. 新建目录默认权限为 755
    b. 新建文件默认权限为 644

e. 附加权限(粘滞位)(仅修改自己文档)

chmod o+t [文件名]

  1. 占用其他人的 x 位
  2. 显示为 t 或 T,取决于其他人是否有 x 权限(无执行权限时为T)
  3. 适用于目录,用来限制用户滥用写入权
  4. 在设置了粘滞位的文件夹下,即使用户有写入权限,也不能删除或修改其他用户文档

f. SGID权限(新建继承父目录所属组)

chmod u+s [文件名]

  1. 占用属组的 x 位
  2. 显示为 s 或 S,取决于属组是否有 x 权限(无执行权限时为S)
  3. 对目录有效
  4. 在一个具有SGID权限目录下,新建的文档会自动继承此目录的属组身份

g. ACL策略管理(个别用户,个别组添加权限)(setfacl)

1.能够为个别用户,个别组设置独立权限
setfacl [选项] u:用户名:权限 文件名
setfacl [选项] g:组名:权限 文件名
getfacl 文件名 #查看ACL策略
常用命令选项:
-m:定义一条ACL策略
-x:清楚指定的ACL策略
-b:清楚所有已设置的ACL策略
-R:递归设置ACL策略

16.分区模式(MBR与GPT)

a. MBR分区模式

1. MBR/msdos分区模式

i. 分区类型:主分区,扩展分区,逻辑分区
ii. 最多四个主分区
iii. 扩展分区可以没有,至多一个
iv. 1~4个主分区 或者 3个主分区+1个扩展分区(n个逻辑分区)
v. 最大支持容量为2.2TB的磁盘
vi. 扩展分区不能格式化,空间不能直接存储数据
vii. 可以用于存储数据的分区:主分区和逻辑分区

2. fdisk常用交互指令:(fdisk /dev/sdb )

	i. m	列出指令帮助
	ii. p	查看现有的分区表(存放分区信息的表格)
	iii. n	新建分区
	iv. d	删除分区
	v. q	放弃更改并退出
	vi. w	保存更改并退出
	vii.  t	修改分区类型(8e--LVM设备类型)

3. partprobe /dev/sdb #刷新分区表

4. lsblk (查看分区)

5. 格式化【ext4 (RHEL6), xfs(RHEL7) , FAT】

	i. mkfs.(Tab)(Tab)				#查看格式化类型
	ii. mkfs.ext4		/dev/sdb1			#格式化文件系统ext4(可重新格)

6. blkid #查看文件系统类型

7. 挂载使用

	i. mkdir	/mydr1
	ii. mount	/dev/sdb1		/mydr1
	iii. df	-h			#查看挂载点

8. GPT分区模式(最多128主分区,最大18EB容量)

9. parted常用分区命令

	i. -(Tab)(Tab)		#查看常用命令 
	ii. -help				#查看指令帮助
	iii. -mktable	gpt			#建立gpt类型分区表
	iv. --mkpart		[分区名称]		[文件系统类型]		start		end									#指定大小或百分比%作为起始,结束位置
	v. -print				#查看分区表
	vi. -rm	[序号]			#删除指定分区
	vii. -quit					#退出

17.Swap交换空间

a. 用分区制作

mkswap /dev/sdc1 #格式化交换文件系统
swapon #查看交换空间组成成员
swapon /dev/sdc1 #启用交换分区
swapon -s #显示交换分区使用情况
swapon #查看
free -h #查看交换空间大小
swapoff /dev/sdc1 #停用交换分区

b. 用文件制作

c. 生成大文件占用空间(可模拟生产环境空间占用大)

[root ] # dd if=/dev/zero of=/opt/swap.txt bs=1M count=1000
##dd命令:读取文件写入(读完为止); if–要读取的文件路径 ; --/dev/zero:永远都在产生数据且数据基本无意义 ; of–要写入的文件路径 ; bs–每次读写块的大小 ; count–总共读写多少次

d. 格式化交换文件系统,启用

mkswap /opt/swap.txt
swapon /opt/swap.txt

18. 开机自动挂载/etc/fstab

设备路径 挂载点 文件系统类型 参数 备份标记 检测顺序
/dev/sdb1 /mydr1 ext4 default 0 0
/dev/sdb2 /mydr1 xfs default 0 0
i. mount -a #检测/etc/fstab开机自动挂载文件,同步挂载点
/dev/sdb1 swap swap default 0 0
/opt/swap.txt swap swap default 0 0
ii. swapon -a #专门检测交换分区

19.LVM逻辑卷

a. 作用:a-整合分散的空间,b-空间支持线上扩大

b. 过程:将众多物理卷组建成卷组,在从卷组中划分出逻辑卷

c. 命令:pv(Tab)(Tab) vg(Tab)(Tab) lv(Tab)(Tab)

**s —扫描 **create —创建 **display —显示
**remove —删除 **entend —扩展

d. 建立卷组(VG):

格式:vgcreate 卷组名 设备路径…
vgcreate systemvg /dev/sdb[1-2]

e. 建立逻辑卷(LV):

格式:lvcreate -L 卷大小 -n 逻辑卷名 卷组名
lvcreate -L 2G -n testlv systemvg
mkfs.xfs /dev/systemvg/testlv #格式化(然后挂载/mylv下使用)

f. 扩展逻辑卷(扩展卷组)

	i. 卷组剩余空间足够
		1. 扩展逻辑卷的空间
			a. lvextend	-L	5G(+3G)	/dev/systemvg/testlv
		2. 扩展逻辑卷的文件系统(刷新文件系统)
			a. xfs_growfs	/dev/system/testlv	:	刷新xfs文件系统(与前文件系统保持一致)
			b. resize2fs		逻辑卷名			:	刷新ext4文件系统 
	ii. 卷组没有足够剩余空间
		1. 扩展卷组的空间 
			a. vgextend		systemvg		/dev/sdb3		/dev/sdb5
			b. vgs 
		2. 扩展逻辑卷的空间(同上19-f-i-1)
		3. 扩展逻辑卷的文件系统(刷新文件系统)(同上19-f-i-2)

e. 逻辑卷的补充

1. xfs文件系统不支持缩减; ext4文件系统支持缩减

2. 卷组划分空间的单位 PE (默认1个PE大小为4M)

a. vgdisply		systemvg			#查看卷组信息(PE Size	4.00 MiB) 
b. vgchange		-s	1M	systemvg		#修改PE大小
c. lvcreate	-l	250	-n	lvredhat	systemvg		#创建250个PE的逻辑卷即250M(若不改PE大小,则只能得到252M的)

3. 卷组,逻辑卷的删除

a. 删除卷组的前提:基于此卷组创建的所有逻辑卷,要全部删除
b. 删除逻辑卷的前提:不能删除正在挂载使用的逻辑卷 
c. umount	 /mylv
d. lvremove		/dev/system/testlv

20.RAID磁盘阵列

RAID 0:条带模式—同一文档分散存放于不同磁盘–并行写入提高效率–最少两块磁盘–磁盘利用率100%
RAID 1:镜像模式—同份文档复制多份,分别写入不同磁盘–多份拷贝提高可靠性,效率无提升–至少两块磁盘–磁盘利用率50%
RAID 5:高性价比模式—0/1折中方案–至少一块磁盘来存放校验数据–至少三块磁盘–磁盘利用率(n-1)/n
RAID 6:高性价比&可靠模式—5的扩展方案–至少两块磁盘来存放检验数据–至少四块磁盘–磁盘利用率(n-2)/n

21.查看进程(进程控制,pstree, ps,top,pgrep ,干掉进程)

a. 进程控制:

[命令] & #放入后台运行
Ctrl+z #将当前进程暂停放入后台
jobs -l #查看后台进程信息
bg [进程编号] #让后台进程继续运行
fg [进程编号] #让后台进程恢复到前台

b. pstree查看进程

pstree -ap [用户名] #显示完整的命令行(-a),列出对应进程的PID号

c. ps命令

systemd(PID 永远为1):所有进程的父进程
ps -aux #显示当前终端所有进程(a),当前用户在所有终端下的进程(x),以用户格式输出—(用户 进程ID %CPU %内存 虚拟内存 固定内存 终端 状态 起始时间 CPU时间 程序指令)
ps -elf #显示系统内所有进程(-e),以长格式输出(-l),包括最完整的进程信息(-f)—(PPID为父进程PID ,PRI/NI为进程优先级,数值越小优先级越高)

d. top命令

top [-d 刷新秒数] [-u 用户名]
按大写P,进行CPU排序
按大写M,进行内存排序

e. pgrep命令

pgrep [选项] 查询条件 #选项:[-l]–输出进程名,而不仅仅是PID; [-U]–检索指定用户的进程; [-x]–精确匹配完整的进程名

f. 干掉进程

-Ctrl+c 组合键 #中断当前命令程序
-kill [-9] PID… #【-9强制杀(可不加-9,温柔杀)】
-killall [-9] 进程名… #-杀掉所有该进程名的程序
killall -9 -u zhi #杀死用户开启的所有进程(踢出一个用户)

22.NTP网络时间协议

yum -y install ntp #安装Network Time Protocol
sed -i ‘s/0.centos.pool.ntp.org/ntp1.aliyun.com/’ /etc/ntp.conf #设置以阿里云时间服务器同步(或者选其时间服务器)
systemctl restart ntpd
systemctl enable ntpd

23.配置网络参数、网卡IP

a. 主机名

配置永久主机名
方法一:hostnamectl set-hostname liu18 #立即生效,且永久配置
方法二:echo li18 > /etc/hostname #重启生效,永久配置
临时配置主机名
hostname zhi18

b. 网卡

配置网卡命名规则
(不配置会导致网卡名会随机,上一个ens33,下一个可能ens68)
[root@li ]# vim /etc/default/grub #grub内核引导程序
…以上部分配置省略…
GRUB_CMDLINE_LINUX=“crashkernel=auto rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet net.ifnames=0 biosdevname=0”
…一下部分配置省略…
[root@li ]# grub2-mkconfig -o /boot/grub2/grub.cfg #让网卡命名规则生效
[root@li ]# reboot

c、命令行配置网卡IP

[root@li ]# nmcli connection modify ens33 ipv4.method manual ipv4.addresses 192.168.1.90/24 connection.autoconnect yes
[root@li ]# nmcli connection up ens33

d、修改配置文件配置IP

[root@li ]# vi /etc/sysconfig/network-scripts/ifcfg-ens33

Generated by dracut initrd

NAME=ens33 #这个参数对应的值是网卡名,是给用户看的
DEVICE=ens33 #此配置文件应用到的设备#网卡名称
ONBOOT=yes #在系统引导时是否激活此设备
NETBOOT=yes
UUID=9325d7ef-7467-4907-a6cc-3bb3e91898f5 #设备的唯一标识
IPV6INIT=yes
BOOTPROTO=none #获取IP方式
TYPE=Ethernet #网络类型Ethernet(以太网),Bridge(桥)
PROXY_METHOD=none
BROWSER_ONLY=no
IPADDR=192.168.1.10 #指明ip地址
PREFIX=24
GATEWAY=192.168.1.254 #默认网关
DEFROUTE=yes #是否设置默认路由,yes表示该配置
IPV4_FAILURE_FATAL=no #如果ipv4配置失败禁用设备
IPV6_AUTOCONF=yes #是否自动配置IPv6
IPV6_DEFROUTE=yes #是否使用默认路由
IPV6_FAILURE_FATAL=no #如果IPv6配置失败禁用设备

e、查看,删除网卡

nmcli connection show #查看识别网卡的名称
nmcli connection delete ‘ens33’ #删除识别的网卡
nmcli connection add type ethernet ifname eth0 con-name eth0

添加 类型 以太网设备 设备名 eth0 配置文件名 eth0

后续有空在进行更新

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值