Linux学习笔记 之 Linux常识知识
-
演化过程 UNIX -> Minix -> Linux
-
Linux内核
主要作者 Linus Torvalds
- Linux发型版本
主要有:RedHat、CentOS、Deepin、Fedora、openSUSE、Debian、Ubuntu、ArchLinux
- 查询服务器
- Linux常识
- 1.严格区分大小写
- 2.一切皆文件
- 3.文件不依赖扩展名
- 服务器版本为什么安装字符界面的版本?
- 1.字符界面比图形化界面占用的资源更少;
- 2.减少出错的可能,减少被攻击的可能;
Linux学习笔记 之 vi编辑器
vi (Visual Interface 可视化接口)
升级版 vim
- 模式
- 命令模式 - 立即生效的命令
- 输入模式 - 命令模式时按 i 键进入输入模式;按Esc键进入底行模式
- 底行模式 - 可以输入:开头的命令对文件进行操作
- 底行模式常用指令
- :w 保存
- :q 退出
- :q! 强制退出
- :/26 光标定位到第 26 行
- :n 打开多个文件时,可以进行切换文件,往下切换
- :N 往上切换
- /abc 往后搜索abc字符串(以当前光标位置开始)
- ?abc 往前搜索abc字符串
- 命令模式常用指令
- k j h l 上下左右移动光标
- Ctrl + b 向上翻页
- Ctrl + f 向下翻页
- Ctrl + u 向上翻半页
- Ctrl + d 向下翻半页
- dd 删除光标所在行
- o 在光标下一行插入一行,随即进入输入模式
- yy 复制当前行
- p 在光标下一行粘贴
- P 在光标上一行粘贴
Linux学习笔记 之 基本权限管理
- 认识权限
在使用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文件)
- 权限的作用
- 权限对文件的作用
- r权限:读取文件内容
- w权限:编辑文件内容,不可删除
- x权限:可执行(文件的最高权限)
- 权限对目录的作用
- r权限:查询目录下文件名
- w权限:修改目录结构(在目录下新建文件或子目录,删除目录下文件或子目录,对目录下的文件或子目录进行重命名等)(目录的最高权限)
- x权限:进入目录
- 默认权限
查看文件默认权限
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
- 赋予权限
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学习笔记 之 压缩命令
- zip格式
压缩文件
zip abc.zip abc.txt
压缩目录
zip -r zk.zip /home/zk/
解压缩
unzip abc.zip
- gz格式
压缩文件
gzip abc.txt
注意:压缩完成后自动删除源文件,压缩文件自动命名为abc.txt.gz
压缩目录
gzip -r home/
注意:此命令并不会压缩目录,而是将目录及其子目录下的所有文件进行压缩
解压缩
gzip -d abc.txt.gz
或
gunzip abc.txt.gz
注意:解压缩完成后自动删除压缩文件
- bz2格式
压缩文件
bzip2 源文件
注意:压缩完成后自动删除源文件,若要保留源文件,加 -k
解压缩
bzip2 -d xxx.bz2
bunzip2 xxx.bz2
- 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学习笔记 之 环境变量配置文件
- 分类
- 环境变量
- 预定义变量
- 位置参数变量
- 用户自定义变量
- 重新加载环境变量
source [配置文件]
. [配置文件]
- 用户登录后配置文件加载顺序:
- /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
-
PATH 系统环境变量
-
umask 系统默认权限
可以认为是系统准备丢弃的权限
umask=0022 即 ----w--w-
则 文件最高权限(666) rw-rw-rw- 减去 ----w--w- 等于 rw-r--r--
目录最高权限(777) rwxrwxrwx 减去 ----w--w- 等于 rwxr-xr-x
- 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时,提示符为:# ,普通用户则为:$
- 其他配置文件:
- ~/.bash_logout 注销时生效的配置文件
- ~/bash_history 用户历史操作命令,用户退出时写入此文件,使用 history -c 可以清楚历史命令
- /etc/issue 本地终端欢迎信息(登录前)
- /etc/issue.net 远程终端欢迎信息(登录前),是否显示此信息由 /etc/ssh/sshd_config 进行配置
- /etc/motd 登录后环境信息
Linux学习笔记 之 磁盘管理基础命令
- 查看磁盘分区使用情况
- 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 命令之查看程序占用内存
- 查看PID
ps aux | grep nginx
- 查看占用资源情况
pmap -d 3531
top -p 3531
apt-get是deb系列Linux发行版本的软件包管理工具
服务器端SSH服务
sudo apt-get install openssh-server
Linux学习笔记 之 定时任务crontab
crontab 是一个用于设置周期性被执行的任务的工具
- 安装
yum install vixie-cron
yum install crontabs
- 启动
service crond start
- 检查任务列表
crontab -l
- 编辑任务
crontab -e
说明:和vi操作类似
*/1 * * * * date >> /tmp/log.txt
tail -10f /tmp/log.txt
- 基本组成
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 配置工具 调整定时任务
-
日志 /var/log/cron*
-
定时任务案例
每天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时间