Linux学习笔记汇总

93 阅读8分钟

Linux学习笔记 之 Linux常识知识

  1. 演化过程 UNIX -> Minix -> Linux

  2. Linux内核

主要作者 Linus Torvalds

Linux内核源码

  1. Linux发型版本

主要有:RedHat、CentOS、Deepin、Fedora、openSUSE、Debian、Ubuntu、ArchLinux

  1. 查询服务器

www.netcraft.com/

  1. Linux常识
  • 1.严格区分大小写
  • 2.一切皆文件
  • 3.文件不依赖扩展名
  1. 服务器版本为什么安装字符界面的版本?
  • 1.字符界面比图形化界面占用的资源更少;
  • 2.减少出错的可能,减少被攻击的可能;

Linux学习笔记 之 vi编辑器

vi (Visual Interface 可视化接口)

升级版 vim

  1. 模式
  • 命令模式 - 立即生效的命令
  • 输入模式 - 命令模式时按 i 键进入输入模式;按Esc键进入底行模式
  • 底行模式 - 可以输入:开头的命令对文件进行操作
  1. 底行模式常用指令
  • :w 保存
  • :q 退出
  • :q! 强制退出
  • :/26 光标定位到第 26 行
  • :n 打开多个文件时,可以进行切换文件,往下切换
  • :N 往上切换
  • /abc 往后搜索abc字符串(以当前光标位置开始)
  • ?abc 往前搜索abc字符串
  1. 命令模式常用指令
  • k j h l 上下左右移动光标
  • Ctrl + b 向上翻页
  • Ctrl + f 向下翻页
  • Ctrl + u 向上翻半页
  • Ctrl + d 向下翻半页
  • dd 删除光标所在行
  • o 在光标下一行插入一行,随即进入输入模式
  • yy 复制当前行
  • p 在光标下一行粘贴
  • P 在光标上一行粘贴

Linux学习笔记 之 基本权限管理

  1. 认识权限 

在使用linux系统初期,经常会使用 ll (即 ls -l)命令查看目录下的文件,如下

ll

drwxr-xr-x 12 root root      4096 Nov 21  2016 zookeeper  
-rw-r--r--  1 root root 166072320 Nov 18  2016 zookeeper.tar.gz

文件信息分为:权限、链接数、所属用户、所属用户组、文件大小、最后修改时间、文件名

  • 其中第一列即是权限信息,权限信息由10个字符组成
    • 第1位:文件类型
    • 第2-4位:u 即 所有者权限
    • 第5-7位:g 即 所属组权限
    • 第8-10位:o 即 其他人权限
  • 权限的构成 rwx
    • r 读权限 对应数字4
    • w 写权限 对应数字2
    • x 执行权限 对应数字1
    • 没有某种权限时用 - 代替
  • 文件类型:
    • d:文件夹
    • -:普通文件
    • l:链接(类似Windows的快捷方式)
    • b:块设备文件(例如硬盘、光驱等)
    • p:管道文件
    • c:字符设备文件(例如猫等串口设备)
    • s:套接口文件/数据接口文件(例如启动一个MySql服务器时会产生一个mysql.sock文件)
  1. 权限的作用
  • 权限对文件的作用
    • r权限:读取文件内容
    • w权限:编辑文件内容,不可删除
    • x权限:可执行(文件的最高权限)
  • 权限对目录的作用
    • r权限:查询目录下文件名
    • w权限:修改目录结构(在目录下新建文件或子目录,删除目录下文件或子目录,对目录下的文件或子目录进行重命名等)(目录的最高权限)
    • x权限:进入目录
  1. 默认权限

查看文件默认权限

umask

0022
  • 第1位:文件特殊权限
  • 第2-4位:文件默认权限
  • 文件默认权限
    • 1.文件默认不能建立成可执行文件,必须手动赋予执行权限;
    • 2.文件默认权限最大为 rw-rw-rw- (666)
    • 3.文件真实默认权限 = 赋予的默认权限 - umask值
    • 如 rw-rw-rw- 减去 ----w--w- 得到 rw-r--r-- 即 644
  • 目录默认权限
    • 1.目录默认权限为 rwxrwxrwx (777)
    • 2.目录真实默认权限 = 赋予的默认权限 - umask值
    • 如 rwxrwxrwx 减去 ----w--w- 得到 rwxr-xr-x 即 755
  • 设置umask
    • 临时生效 : umask 0033
    • 永久生效 : 修改配置文件/etc/profile
  1. 赋予权限

chmod [选项] [模式] [文件]

  • 选项
    • -R 递归(对目录)
  • 模式
    • [u g o a] [+ - =] [rwx]
    • [421]
  • 案例
    • chmod u+x abc.sh
    • chmod g+w,o+w abc.sh
    • chmod u=rwx,g=r-- abc.sh
    • chmod 755 abc.sh
    • chmod 644 abc
  • 注意
    • 普通文件权限 644
    • 执行文件权限 755

修改文件所有者和所属组

chown [用户] [文件]

chgrp [用户组] [文件]

注意:分配文件基础权限的原则是-在最小权限下能够实现要求即可;

Linux学习笔记 之 压缩命令

  1. zip格式

压缩文件

zip abc.zip abc.txt

压缩目录

zip -r zk.zip /home/zk/

解压缩

unzip abc.zip

  1. gz格式

压缩文件

gzip abc.txt

注意:压缩完成后自动删除源文件,压缩文件自动命名为abc.txt.gz

压缩目录

gzip -r home/

注意:此命令并不会压缩目录,而是将目录及其子目录下的所有文件进行压缩

解压缩

gzip -d abc.txt.gz

gunzip abc.txt.gz

注意:解压缩完成后自动删除压缩文件

  1. bz2格式

压缩文件

bzip2 源文件

注意:压缩完成后自动删除源文件,若要保留源文件,加 -k

解压缩

bzip2 -d xxx.bz2

bunzip2 xxx.bz2

  1. tar格式
  • tar
    • -c 打包
    • -x 解压
    • -f 指定名称
    • -v 过程显示
    • -z gz格式 *.tar.gz
    • -j bz2格式 *.tar.bz2
  • 示例
    • tar -cvf abc.tar abc/
    • tar -xvf abc.tar
    • tar -cvzf abc.tar.gz abc/
    • tar -xvzf abc.tar.gz
    • tar -jcvf abc.tar.bz2 abc/
    • tar -jxvf abc.tar.gz2

查看压缩包里的文件

tar -tvfz abc.tar.gz

Linux学习笔记 之 环境变量配置文件

  1. 分类
  • 环境变量 
  • 预定义变量
  • 位置参数变量
  • 用户自定义变量
  1. 重新加载环境变量

source [配置文件]

. [配置文件]

  1. 用户登录后配置文件加载顺序:

5668275018014095692ac54875892720f98.webp

  • /etc/profile
    • 初始化 PATH、HOSTNAME、HISTSIZE 等配置
    • 初始化 umask
    • 加载 ~/.bash_profile
  • ~/.bash_profile
    • 加载 ~/.bashrc
    • 加载 $HOME
  • ~/.bashrc
    • 给命令定义别名
    • alias rm='rm -i'
    • alias cp='cp -i'
    • alias mv='mv -i'
  • /etc/bashrc
    • 定义 PS1、umask、PATH 等配置
    • 定义 SHELL
  • /etc/profile.d/*.sh
    • -rw-r--r-- 1 root root  841 Nov 20  2015 256term.sh
    • -rw-r--r-- 1 root root  660 Jun 10  2014 bash_completion.sh
    • -rw-r--r-- 1 root root  201 Apr 29  2015 colorgrep.sh
    • -rw-r--r-- 1 root root 1609 Sep 12  2015 colorls.sh
    • -rw-r--r-- 1 root root 2703 Nov 20  2015 lang.sh
    • -rw-r--r-- 1 root root  121 Jul 31  2015 less.sh
    • -rw-r--r-- 1 root root  269 Jun 10  2014 vim.sh
    • -rw-r--r-- 1 root root  169 Jan 28  2014 which2.sh
  1. PATH 系统环境变量

  2. umask 系统默认权限

可以认为是系统准备丢弃的权限

umask=0022 即 ----w--w-

则 文件最高权限(666) rw-rw-rw- 减去 ----w--w- 等于 rw-r--r--

目录最高权限(777) rwxrwxrwx 减去 ----w--w- 等于 rwxr-xr-x

  1. PS1 终端命令提示符

echo $PS1

[\u@\h \W]$

  • 详解:
    • \d :代表日期,格式为weekday month date,例如:"Mon Aug1"
    • \H:完整的主机名称。例如:我的机器名称为:fc4.linux,则这个名称就是fc4.linux
    • \h :仅取主机的第一个名字,如上例,则为fc4,.linux则被省略
    • \t :显示时间为24小时格式,如:HH:MM:SS
    • \T :显示时间为12小时格式
    • \A :显示时间为24小时格式:HH:MM
    • \u :当前用户的账号名称
    • \v :BASH的版本信息
    • \w :完整的工作目录名称。家目录会以 ~代替
    • \W :利用basename取得工作目录名称,所以只会列出最后一个目录
    • # :下达的第几个命令
    • $ :提示字符,如果是root时,提示符为:# ,普通用户则为:$
  1. 其他配置文件:
  • ~/.bash_logout  注销时生效的配置文件
  • ~/bash_history  用户历史操作命令,用户退出时写入此文件,使用 history -c 可以清楚历史命令
  • /etc/issue      本地终端欢迎信息(登录前)
  • /etc/issue.net  远程终端欢迎信息(登录前),是否显示此信息由 /etc/ssh/sshd_config 进行配置
  • /etc/motd       登录后环境信息

Linux学习笔记 之 磁盘管理基础命令

  1. 查看磁盘分区使用情况
  • df [选项]
    • -a 所有
    • -h 以1024单位转换
    • -H 以1000单位转换(工业标准)
    • -T 显示磁盘分区类型
    • -t 显示指定文件系统的分区
    • df -k
    • df -m 以MB为单位查看
    • df --help

df -hT

Filesystem     Type   Size  Used Avail Use% Mounted on
/dev/vda1      ext4    79G   19G   56G  26% /
tmpfs          tmpfs  3.9G     0  3.9G   0% /dev/shm
  • du [选项]
    • -b 以byte为单位
    • -k KB
    • -m MB
    • -h 1024进制
    • -H 1000进制
    • -s 指定统计文件或目录

du -hs /home

du -hs zookeeper.tar.gz 

du -k /home 列出目录下所有文件大小

Linux 命令之查看内存

free

top

通过进程号查看内存占用情况

pmap -d 5647

Linux 命令之查看程序占用内存

  1. 查看PID

ps aux | grep nginx

  1. 查看占用资源情况

pmap -d 3531

top -p 3531

apt-get是deb系列Linux发行版本的软件包管理工具

服务器端SSH服务

sudo apt-get install openssh-server

Linux学习笔记 之 定时任务crontab

crontab 是一个用于设置周期性被执行的任务的工具

  1. 安装

yum install vixie-cron

yum install crontabs

  1. 启动

service crond start

  1. 检查任务列表

crontab -l

  1. 编辑任务

crontab -e

说明:和vi操作类似

*/1 * * * * date >> /tmp/log.txt

tail -10f /tmp/log.txt

  1. 基本组成

crond   系统服务    从配置文件中刷新定时任务

常用操作:  
service crond start  
service crond stop  
service crond status

6. 配置文件    

  • 配置定时任务
    • 如:/etc/crontab
    • /etc/cront.d/*
    • /etc/cront.d/sysstat
Example of job definition:  
.---------------- minute (0 - 59)  
|  .------------- hour (0 - 23)  
|  |  .---------- day of month (1 - 31)  
|  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...  
|  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat  
|  |  |  |  |  
*  *  *  *  * user-name command to be executed

crontab 配置工具    调整定时任务

  1. 日志 /var/log/cron*

  2. 定时任务案例

每天2:30重启apache  
30 2 * * * service httpd restart

每个月的1号10号20号的1:30  
30 1 1,10,20 * * service httpd restart

每个月的1号到10号的1:30  
30 1 1-10 * * service httpd restart

每个月的1号到10号和20号到23号的1:30  
30 1 1-10,20-23 * * service httpd restart

每隔2分钟  
*/2 * * * * service httpd restart  
1-59/2 * * * * service httpd restart  
(0、2、4、6···)  
(1、3、5、7···)

晚上23点到7点之间每隔1小时  
0 23-7/1 * * * service httpd restart

每天18点到23点每隔30分钟  
0,30 18-23 * * * service httpd restart  
0-59/30 18-23 * * * service httpd restart

9. 总结

  • *   任意时间
  • A,B,C   A 或  B或 C
  • A-B     A 到 B
  • */A     每隔A时间