美文网首页
linux 学习笔记

linux 学习笔记

作者: ZekeLyon | 来源:发表于2023-03-20 23:03 被阅读0次

ls 文件查看

ls 查看当前目录下的文件
ls [选项, 选项] 参数
常用选项:
-l 长格式显示文件
-a 显示隐藏文件
-r 逆序显示
-t 按照时间顺序显示
-R 递归显示
例:ls -l /root 显示root目录下的文件,并且长格式化显示
注:可使用多个选项如 ls -l -a -r 等同于 ls -lar

cd 移动操作目录。cd是shell的内置命令,通过man cd显示的是命令解释器shell的帮助信息,可通过help cd获取真正的帮助信息。

cd 更改当前的操作目录
cd [选项] 参数
常用选项
- 返回上一次移动的目录
例:cd /usr/local/... 绝对路径。cd usr/local/... 相对路径

mkdir 创建目录

mkdir
mkdir [选项] 参数
常用选项
-p 创建多级目录
例:mkdir a 在当前目录下创建目录a。mkdir /a 在根目录/下创建目录a。mkdir -p /a/b/c/d/e/f 创建多级目录

rmdir 删除目录。此命令用的较少,一般用rm

rmdir 默认只可删除空目录

rm 删除目录或者文件

rm
rm [选项] 参数
常用选项
-r 递归删除,同时删除子目录
-f 忽略删除提示
例:rm -r a 删除当前目录下的a目录及其所有子目录。rm -rf a 删除a目录及其所有子目录,并且忽略删除询问。
注:可使用 Ctrl + C 快捷键取消操作。

cp 复制文件或目录

cp
cp [选项] SOURCE... DIRECTORY ...
常用选项
-r 复制目录
-v 显示复制过程
-p 保留用户、权限、时间等文件属性
-a 等同于 -dpR
例子:cp -r a a1 复制a文件夹到a1。cp -v file* /home 移动所有file开头的文件到/home目录下。
cp -v file? /home ?只通配一个字符,*通配多个字符。
注:常用通配符 * 匹配到任何字符;
? 匹配任意1个字符;
[xyz] 匹配xyz任意1个字符;
[a-z] 匹配a到z之间任意1个字符;
[!xyz]或[^xyz] 不匹配xzy任意1个字符

touch 创建文件

touch
touch [选项] FILE

mv 移动文件或目录,重命名目录

mv
mv [选项] SOURCE... DIRECTORY ...
例:mv a a2 移动当前目录的a文件夹到当前目录并重命名为a2。

文本查看命令

cat 显示文本内容到终端
head 从文件开头查看,默认显示开头10行
例:head -5 a.txt 显示a.txt文件中开头5行内容
tail 从文件结尾查看,默认显示结尾10行
常用参数-f 文件内容更新后,同步显示到终端
wc 统计文本内容
wc anaconda-ks.cfg 统计文内容行数、单词数、字节大小
more 分页查看文本内容,用空格键翻页

打包、压缩、解压命令

tar 打包命令
-c 打包
-x 解包
-f 指定操作类型为文件

tar cf /tmp/etc-backup.tar /etc 打包/etc目录下的所有文件到etc-backup.tar文件中
ls -l /tmp/etc-backup.tar 查看打包后的文件大小
ls -lh /tmp/etc-backup.tar 查看打包后的文件大小,文件大小以M为单位显示。
tar czf /tmp/etc-backup.tar.gz /etc 打包并压缩/etc目录下的所有文件到etc-backup.tar.gz文件中(使用gzip压缩算法)
tar cjf /tmp/etc-backup.tar.bz2 /etc 打包并压缩/etc目录下的所有文件到etc-backup.tar.gz文件中(使用bzip2压缩算法)

tar xf /tmp/etc-backup.tar -C /root 解包etc-backup.tar到/root目录。
同理 tar jxf ... 或 tar zxf ...
注:网上常见的后缀 .tbz2 和 .tgz,其实就是 tar.bz2 和 tar.gz 的缩写
注:mac上传文件 scp dlib.tgz root@172.16.11.146:/home/zeke

vi 文本编辑器

vi四种模式
正常模式(Normal-mode)
插入模式(Insert-mode)
命令模式(Command-mode)
可视模式(Visual-mode)

vim vi的加强版
模式切换
i 进入插入模式
I 进入插入模式,并将光标移动到所在位置的行头
A 进入插入模式,并将光标移动到所在位置的行尾
O 进入插入模式,并将光标移动到所在位置的下一行,相当于起新行
shift + O 进入插入模式,并将光标移动到所在位置的上一行

正常模式下的快捷操作
HJKL H左移 L右移 J下移 K上移动
yy 复制一整行 3yy 复制3行 y复制当前位置到行尾 dd 剪切当前行 (其他同理) p 粘贴 u 撤销 ctrl+r 重做(撤销撤销) x 删除单个字符 r 替换单个字符 gg 移动到第一行 4gg 移动到第4行 G 移动到最后一行 ^ 移动到当前行的开头 移动到当前行的结尾

命令模式下的快捷操作
:set nu 显示行号
:set nonu 不显示行号
:wq 保存并退出
:q 退出不保存
:q! 强制退出不保存
:! 执行其他命令
:/ 查找内容,光标自动移动到首个匹配字符,n跳到下一个,N跳到上一个。
:s s/x/X 替换x为X。只替换当前行的第一个匹配。
:%s %s/x/X 替换全局所有行的x为X。只替每行的第一个匹配。
%s/x/X/g 替换x为X。全局操作,多次替换。
3,5s/x/X 3到5行替换x为X
注: 可以在 /etc/vimrc文件内容最后新起一行加 set nu,每次打开vim都默认显示行号

可视模式
v 单词可视化模式
V 行可视化模式
ctrl+v 块可视化模式
例:进入可视化模式选中内容,shift+i进入插入模式并输入内容,按两次esc,输入内容就全部复制到选中块每行的前面
进入可视化模式选中内容,按d删除块内容

用户管理

useradd 增加用户。useradd zhangsan
passwd  设置用户密码。passwd zhangsan
userdel 删除用户。userdel zhangsan (会保留用户家目录)。userdel -r zhangsan (删除留用户家目录)
usermod 修改用户属性。usermod -g group1 zhangsan 将张三移动到group1组中
chage   修改用户属性。 

注:id root 查看root是否存在,su - zhangsan 切换到张三目录,- 表示连同环境一起切换
用户配置文件 /etc/passwd

用户组管理

groupadd 增加用户组。
groupdel 删除用户组。

用户切换

su 切换用户
su - username 使用login shell 方式切换用户
sudo 以其他用户身份执行命令
visudo 设置需要使用sudo的用户(组)

文件类型

  • 普通文件
    d 目录文件
    b 块特殊文件
    c 字符特殊文件
    l 符号链接
    f 命名管道
    s 套接字文件

文件权限表示方法

r 读
w 写
x 执行

数字权限的表示方法

r=4
w=2
x=1

修改权限命令

chmod 修改文件、目录权限
chmod u+x /tmp/testfile
chmod 755 /tmp/testfile
chown 修改文件属主、属组
chown user1:group1 test.txt

特殊权限

SUID 用于二进制可执行文件,执行命令时取得文件属主权限
如 /usr/bin/passwd
SGID 用于目录,在该目录下创建新的文件和目录,权限自动更改为改目录的属组
SBIT 用于目录,该目录下新建的文件和目录,仅root和自己可以删除
如 /tmp

网络管理

网络状态查看工具

1. net-tool (centos7以下)
    ifconfig
    route
    netstat
2. iproute2(centos7以上主推)
    ip
    ss

ifconfig(安装: yum install net-tools)
    eth0第一块网卡(网络接口)
你的第一个网络接口可能叫做下面的名字
    eno1 板载网卡
    ens33 PCI-E网卡
    enpOs3 无法获取物理信息的PCI-E网卡
    CentOS7 使用了一致性网络设备命名,以上都不匹配则使用eth0
    网卡名称统一修改为eth0(方便统一管理):
    ① 编辑/etc/default/grub文件,在GRUB_CMDLINE_LINUX行增加配置 biosdevname=0 net.ifnames=0
    ② 更新grub, 执行命令:grup2-mkconfig -o /boot/grub2/grub.cfg
    ③ 重启系统 reboot
        注:网卡名称配置对照表
              biosdevname   net.ifnames   网卡名
           默认     0             1         ens33
      组合1     1             0         em1
      组合2     0             0         eth0
查看网卡物理连接情况(网线有没插好)
mii-tool eth0
查看网关(配置路由)
route -n
网络配置命令
ifconfig <网卡接口> <IP地址> [netmask 子网掩码]
ifconfig <网卡接口> up
    ifconfig <网卡接口> down
添加网关:
    route add default gw <网关ip>
    例:route add default gw 172.16.11.2
    route add -host <指定ip> gw <网关ip>
    route add -net <指定网段> netmask <子网掩码> gw <网关ip>
网络故障排除命令(从上到下,从粗到细)
ping
traceroute
mtr
nslookup (检测域名对应ip,安装yum install bind-utils) 
telnet (检测端口)
tcpdump
    例:tcpdump -i any -n port 80  捕获任何网卡上的80端口数据包,以ip形式显示
    例:tcpdump -i any -n host 10.0.0.1  捕获任何网卡上与主机交互的数据包,以ip形式显示
    例:tcpdump -i any -n host 10.0.0.1 and port 80 -w /tmp/file/  捕获并保存到本地
netstat
    例:netstat -ntpl 。 n ip形式展示、t tcp、p 进程、l tcp状态
ss
网络服务管理程序,SysV和systemd
service network start|stop|restart
chkconfig -list network
systemctl start|stop|restart NetworkManager
systemctl enable|disable NetworkManger

软件安装包管理器

rpm包

rpm包格式
vim-common-7.4.10-5.el7.x86_64.rpm
  软件名称     版本 系统版本 平台
rpm -qa  查询所有已安装的软件
rpm -q [软件包名]  查询指定软件包
rpm -e [软件包名]  卸载指定软件包

yum命令

常用选项
    install 安装
    remove 卸载
    list|grouplist 查看软件包
    update 升级

源代码编译安装

###以安装openresty举例
wget https://openresty.org/download/openresty-1.15.8.1.tar.gz
tar -zxf openresty-VERSION.tar.gz
./configure --prefix=/usr/local/openresty
     注:可能提示缺少cc编译器,yum install gcc gcc-c++
        可能提示缺少pcre库,yum install pcre-devel (devel一般指开发包)
    可能提示缺少OpenSSL库,yum install openssl-devel
make -j2 使用两个逻辑内核编译,编译结果在 build目录中
make install

升级内核

rpm格式内核

   uname -r 查看内核版本
   yun install kernel-3.10.0 升级内核版本
   yum update 升级已安装的其他软件版本

源代码编译安装内核

    安装依赖包
    yum install gcc gcc-c++ make ncurses-devel openssl-devel elfutils-libelf-devel
    下载并解压缩内核
    https://www.kernel.org
    tar xvf linux-5.1..10.tar.xz -C /usr/src/kernels 

grub位置文件

grub是什么,可以通过grub配置文件充值root密码,SELinux
grub位置文件
/etc/defalut/grub 默认配置文件
/etc/grub.d/ grub配置文件集

进程管理

进程的概念与进程查看

进程开始,从int main(int argc, char *argv[])
进程终止,分正常终止和异常终止
正常终止分从main返回、调用exit等方式
异常终止分为调用abort、接收信号等
查看命令
ps  例 ps -eLf | more
pstree 
top 了解各项指标的意义
结论:

进程的控制命令

调整优先级
nice 范围从-20到19,值越小优先级越高,抢占资源就越多
    例:nice -n 10 ./a.sh
renice 重新设计优先级
    例:renice -n 15 20675
进程的作业控制
加 & 进行后台运行
jobs 查看后台运行的进程
fg [jobs编号] 将后台运行的集成调回前台运行
ctrl z 暂存运行在前台的进程
bg [jobs编号] 将暂存的进程放到后台运行

进程间通信方式-信号

kill -l 查看进程间通信支持的信号

守护进程和系统日志

使用nohup与&符号配合运行一个命令
nohup命令使进程忽略hangup(挂起)信号。即不受重终端关闭影响
注:cd /proc/[进程id] 进入进程目录空间
守护进程

使用screen命令
screen 进入screen模式
ctrl + a d 退出screen模式
screen -ls 列出所有screen会话
screen -r [screenID] 恢复指定screen

服务管理工具systemctl

service (centos6及以下常用)
脚本目录:/etc/init.d/
systemctl (centos7以后版本常用)
脚本目录:/usr/lib/systemd/system/
常见操作
    systemctl start|restart|reload|enable|disable 服务名称
    软件包安装的服务单元 /usr/lib/systemd/system

SELinux

MAC(强制访问控制)与DAC(自主访问控制)。生产linux大部分都是关闭的
查看SELinux的命令
关闭SELinux

内存与磁盘管理

内存和磁盘使用率查看

内存常用命令
free
top
磁盘分区和文件大小查看
fdisk -l 查看磁盘设备信息
df -h  查看磁盘分区、文件、挂载信息
du -h [filename] 查看文件实际大小
    例:使用 dd if=/dev/zero bs=4M count=10 seek20 of=bfile 创建存在空洞文件
       比较 ls -lh bfile 和 du -h bfile 统计结果的区别

i节点和数据块操作

使用mv移动文件如果移动到不同分区,i节点和数据块会变化,移动较为缓慢。
echo > [filename] 只对block数据库进行改变i节点不变,vim会对i节点进行改变
rm命令更专业的理解是,让i节点与文件名的链接断开
ln afile bfile 将bfile链接到afile的i节点上
ln -s afile afile2 创建软连接afile(i节点不同)

硬盘分区和挂载

插入新硬盘设备后

创建分区:
    fdisk /dev/sdb 根据提示操作 (m菜单)
格式化分区
mkfs.ext4 /dev/sdb1  将分区格式化成ext4格式
使用分区(挂载目录)
    ① 创建挂载目录 mkdir /mnt/sdb1
② 挂载 mount /dev/sdb1 /mnt/sdb1

    注:如果硬盘设备大于2T,则无法使用fdisk分区,需要使用parted
   mount挂载只是临时挂载,重置之后会无效
   解决:固化挂载 vim /etc/fstab 增加配置:/dev/sdb1 /mnt/sdb1 ext4 defaults 0 0

用户磁盘配额

quota

交换分区

交换分区swap的查看与创建
    mkswap [分区名] 格式化成swap
mkswapon [分区名] 打开交换分区 
    mkswapoff [分区名] 关闭交换分区
使用文件制作交换分区
dd if=/dev/zero bs=4M count=1024 of=/swapfile
固化配置: /swapfile swap swap defaults 0 0

RAID与软件RAID技术

硬件RAID
    RAID0
    RAID1
    RAID5
    RAID10
软件RAID
mdadm

逻辑卷管理

逻辑卷和文件系统的管理
即逻辑硬盘,/根目录就是一个大的逻辑卷,
为Linux创建逻辑劵(前提插入新硬盘并分好区)
pvcreate /dev/sd[b,c,d]1 创建物理卷
pvs 查看
vgcreate /dev/sdb1 /dev/sdb2 创建物理卷组(拼在一起)
vgs 查看卷组
lvcreate -L 100M -n lv1 vg1 创建逻辑卷。-L大小 -n名字。(接下来可以挂载使用了)
挂载:mkdir /dev/test -> mkfs.xfs /dev/vg1/lv1
lvs 查看逻辑卷
注:流程 fdisk /dev/sd?? -> pv -> vg1 -> lv1 -> xfs -> mount
逻辑劵挂载使用,例: mkfs.ext3 /dev/vg1/lv1 mount /dev/vg1/lv1 /mnt/lv1
动态扩容逻辑劵
例:扩展root lv逻辑卷。 root lv属于cnetos vg,cnetos vg已经用完了,所以要先拓展cnetos vg
步骤: ① 扩充vg: vgextend centos /dev/sdd1。将没有添加到vg的pv加入到centos卷组中
② 扩充lv: lvextend -L +15G /dev/centos/root。为centos卷组的root逻辑卷增加15G
③ 通过 df -h 发现文件系统仍未扩大,需要通知文件扩大
执行:xfs_growfs /dev/centos/root 告诉文件系统centos下的root逻辑卷已扩大
或执行:resize2fs /dev/vg1/lv1

系统综合状态查询

使用sar命令查看系统状态
使用第三方命令查看网络流量
yum install epel-release
yum install iftop
iftop -P

Shell篇

Shell是命令解释器,用于解释用户对操作系统的操作

Shell有很多

Linux的启动过程

BIOS->MBR->BootLoader(grub)->kernel->systemd->系统初始化->shell

相关文章

网友评论

      本文标题:linux 学习笔记

      本文链接:https://www.haomeiwen.com/subject/ajbprdtx.html