美文网首页基础
linux 入门笔记

linux 入门笔记

作者: 字字经心 | 来源:发表于2022-07-24 20:09 被阅读0次

linux 是后端项目运行的环境,很多开发者都是在windows 下编写代码,后部署到linux 上运行。所以linux 是很重要的基础,是开发人员需要了解的。学习资料参考

  1. 建议用centos---下载 bin-DVD1
  2. 鸟哥私房菜第三版

linux 起源

Unix、GUN、Linux起源, 追求先求有且能运行,再求进一步改善。linux 的版本是指内核版本。linux 版本分为两类,一种使用RPM 方式安装软件系统,包括Red Hat、Fedora、SuSE、CentOS; 另外一种 dpkg 方式安装软件,包括 Debian、Ubuntu、B2D。linux 多用户、多任务,与Windows系统不同。文件的属性可分为可读,可写,可执行,属性可分为文件拥有者、文件所属用户组、其他非拥有者与用户组者。

linux的缺点是没有特定的支持厂商,游戏支持度不够、专业软件的支持度不够(如:绘图软件)。

文件权限

linux 是多人多任务的, 用户的配置信息在etc/xx 下面。进入文件夹要x 权限,r 只能查看文件夹的文件列表。linux 下面全部都是文件,文件没有后缀,也有一些常见的 .sh、 .tar.gz 只是为了启动见名知义, linux 各个目录存放的规范详见这里,比如安装软件一般放在usr/local 或者 opt

常用操作命令

# 查看环境变量
echo PATH

# 把目录添加到系统环境变量,并保存
echo 'export PATH=/usr/local/wkhtmltox/bin:$PATH' >> /etc/profile
source /etc/profile

# which 在环境变量中查找文件, whereis 寻找特定文件速度快
which php
whereis php

# 删除目录下修改时间超过150天的文件
find /backup/backup -mtime +150 -name "dev_all_databases.*.sql.gz" -exec rm -f {} \;


# touch创建文件, mkdir 创建一级目录,-p 连续创建a/b/c 目录
touch test.php
mkdir a
mkdir -p a/b/c

# 查看文件
cat a.php

# 移动,第一条是改名,第二条移到b目录下
mv a.php  b.php
mv a.php b/

# 复制
cp a.php b.php
cp a.php b
cp -r a b/

# scp [A] [B] 把A机器的文件考到B机器上面,r把目录a 拷贝得/web/dev 目录下,直接覆盖
scp P22 ~/Desktop/a.php  ~/work@192.168.1.88:/web/dev/
scp -rP22 ~/Desktop/a  ~/work@192.168.1.88:/web/dev/

# 删除命令,生产环境慎用
 rm -rf a.php
 rm -rf a/*
  
# 修改文件或者目录的拥有者和操作权限
chmod 755 a.php
chmod -R 755 a/
chown work:work php
chown -R work:work php 

# 添加用户、组
groupadd work
useradd -g work work
passwd work
            

文件的压缩与打包

压缩,文件用0,1 存储后还有很多空间未填满或者有很多重复数据,将这些空间填满或者减少空间就是压缩技术的目的。比如数字1,由于 1byte = 8bits,其他7bits 默认为0,第一位为1;比如重复有100 个1, 并不需要真正存储100个1,标记100个1,减少空间。

常用的压缩命令有zip/tar,不同的压缩命令用了不同的压缩规则,所以解压也要用相对应的命令。

# z 代表用gzip 算法压缩,c create 创建压缩包,v view 是否显示压缩过程(一般不带该参数),f代表文件
tar -zcvf a.tar.gz a/

# x 代表extract 提取,就是解压到当前目录
tar -zxvf a.tar.gz 

# -C 解压到b目录下
tar -zxvf a.tar.gz -C b/

项目中常用命令

# 查看进程是否运行
ps -aux | grep nginx

# 查看端口号被那个进程占用
netstat -anp | grep 9000
# mac 下的命令
lsof -i:9000

# 监听日志
tail -f a.log

# 前十条命令
history  | head -n 10

# 分析当前目录各文件大小,并排序。在打包迁移目录是非常常用
# a all 全部文件,h human-readable 对人友好的方式展示 
du -ah --max-depth=1 | sort -h

# 观察分区大小,在清理磁盘是很常用
df -ah

# a.php文件软连接到b标识
ln -s a.php b

# mount 这样直接操作b目录就能操作分区
mount [磁盘分区]  b

查看系统参数的命令

# 查看内核/操作系统/CPU信息 
uname -a 

# 查看操作系统版本 
head -n 1 /etc/issue 
lsb_release -a

# /proc 目录下面很多系统属性文件,查看CPU信息 
cat /proc/cpuinfo 

# 查看计算机名 
hostname 

# 查询当前系统的centos版本号$releasever、cpu指令集$basearch,在安装软件时很常用
rpm -qi centos-release

安装软件

在linux 下安装软件是必须掌握的技能,安装方式一般有yum install,直接安装rmp包,编译安装源码包等方式。yum install 原理。先查看当前yum 源有没有可用的安装包。

# 列出可用的 rpm 包
yum list | grep 包名
yum rearch 包名

# 删除
yum remove xx

以安装Nginx 为例子展示一下过程

# 比如增加yum repo,安装nginx version: nginx/1.21.0
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

# 当前系统的centos 版本号$releasever、cpu指令集$basearch
rpm -qi centos-release 

#  地址换成,并加到 /etc/yum.repos.d/nginx.repo
baseurl=http://nginx.org/packages/centos/7/x86_64
# 如果有缓存就清除缓存
yum clean all

# 查看该yum repo 能安装的Nginx 版本有那些
yum list nginx --showduplicates
# 选择想安装的版本
yum install nginx-1.10.2

nginx -v 
# 解压 .tar.xz 或者 .tar.gz
tar -Jxvf git-2.9.5.xz -C .

# 源码安装先配置安装目录,有助后期卸载、迁移
./configure prefix=/usr/local/git-2.9.5

# 编译安装
make && make install 

# 一般再设置一个git 软连接,安装软件的习惯
ln -s git-2.9.5 git 

# 添加环境变量
export "PATH=/usr/local/git/bin:$PATH" >> /etc/profile
source /etc/profile

文本处理技巧

在linux 编辑文本是很常见的操作,比如修改配置文件、查看项目日志、处理文件数据、编写shell script 等等,这些都要用文本处理。编写文本一般用vim 编辑器,vim 有三种状态,点击esc 普通模式,i 进入编辑模式,冒号进入命令行模式。

:q! 放弃修改
:wq 或者 :x 保存文件并退出vim 。

# 撤销、恢复,普通模式下
u 点击一次恢复上一步
ctr+r 恢复

# 显示取消行号
:set number
:set nonumber

# 复制,删除。普通模式下
yy 复制当前行至存储缓冲区
nyy 复制n行到缓冲区
p 在当前行之后黏贴缓冲区中的内容
dd 删除行,并把改行放在暂存区
dnd 删除n行
dG  删除当前行到最后一行

# 移动光标,普通模式下
^ 首
$ 尾
G 最后一行 

# 查找,普通模式下输入/a  (a 是想搜索的内容)
n 下一个
N 上一个

# 替换
# 检索第一个 “a” 字符串并将其替换成 “b”,g代表检索并将所有
:%s/a/b 
:%s/a/b/g
# 检索出所有的 “a” 字符串,在替换成 “b” 前,先询问是否替换
:%s/a/b/gc

# 注释
# v模式多行编辑
1. Ctrl+v进入v模式
2. 上下方向键选中要注释的行
3. shift+i(即大写的I)行首插入
4. 输入注释符//
5. 按esc返回

# 反注释
1. Ctrl+v进入v模式
2. 上下方向键选中要注释的行,左右键选择要删除的字符//
3. 按d删除

crontab 定时任务

任务列表有用户属性,不用reload crontab,它本身每分钟就会读取一下任务列表。

# 针对当前用户,如work/root
# 编辑当前用户的定时任务列表
crontab -e

# 输出当前用户的定时任务
crontab -l

# crontab 基本语法
*/10 * * * *                        每隔10分 执行

比如用定时任务调整服务器时间

# 借助定时任务调整时间
*/10 * * * * /usr/sbin/ntpdate -u  ntp5.aliyun.com

性能分析命令

补充

文本三剑客grep/sed/awk

补充

欢迎大家给我留言,提建议,指出错误,一起讨论学习技术的感受!

相关文章

网友评论

    本文标题:linux 入门笔记

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