Linux学习记录

Linux学习记录

目录

内容参考:
慕课tony老师linux课程

一.软件管理

1.软件包分类

1.1 源码包

即源码的压缩文件
1.1.1特点
+ 开源可看到源代码,未编译,需要编译器gcc等
+ 软件稳定效率高,
+ 安装时自己选择各种目录,所以卸载方便,例如默认选择usr/local
+ 可定制自己需要的功能模块
+ 步骤多容易出现拼写错误且出错不好解决,新手不友好
+ 安装时间长且软件

1.1.2 安装方法
软件包保存文件 usr/local/src,软件安装位置 usr/local
+ 保证环境已安装gcc编译器
+ 解压源码包并进入解压缩目录
+ 执行 ./configure ,进行软件配置和检查。它可以用来定义需要的功能选项,以及检测环境是否符合安装需求,最终将信息写入Makefile文件,例如指定安装位置,./configure –prefix=/usr/local/软件目录
+ make 编译
+ 若软件报错,可用make clean清除软件安装信息
+ make install 安装软件
+ 软件安装相关信息说明文件,INSTALL

1.2 二进制包

1.2.1 特点
+ 经过编译所以无法看到源代码
+ 安装速度快
+ 通过命令管理安装,升级,查询,卸载
+ 功能选择不灵活,且安装位置由开发者指定
+ 依赖性

1.2.2 安装方法
+ rpm(redhat)
+ yum (redhat)
+ apt-get(ubuntu)

1.3 脚本包

脚本包不是一种包类型,只是用shell脚本将软件包安装简化,但自定义性有作者决定,如Lamp

二.常用命令

1.一般通用命令格式

命令 [选项] [参数]

2.文件相关命令

2.1 ls 显示文件信息

2.1.1 格式 :ls [选项] [目录]
2.1.2 重要参数:
+ -a所有文件
+ -l所有详细信息
+ -d查看目录属性
+ -h人性化显示
+ -i 显示inode

2.2 mkdir 创建目录

2.2.1 格式: mkdir -p [目录名]
2.2.2 重要参数 :
+ -p 递归建立

2.3 cd 切换目录

2.3.1 格式: cd [目录]
2.3.2 简化操作:
+ cd ~或 cd 进入用户家目录
+ cd - 进入上次目录
+ cd ..进入上级目录
+ cd .进入当前目录

2.4 pwd 查看当前目录
2.5删除空白目录

格式:rmdir [目录]

2.6 rm 删除命令

2.6.1 格式:rm -rf [文件或目录]
2.6.2 参数:
+ -f 强制
+ -r 目录

2.7 cp 复制命令

2.7.1 格式:cp [x选项] [原文件或目录] [目标目录]
2.7.2 选项:
+ -r 复制目录
+ -p 连带文件属性
+ -d 源文件为链接,复制链接属性
+ -相当于 -pdr

2.7.3 注意:修改目标目录可以改名

2.8 mv 移动或重命名

2.8.1 格式:mv [原文件或目录] [目标目录]
2.8.2 注意:目录不加-r
源文件和目标文件在同一目录下则改名,不在同一目录下则移动

2.9 ln 创建链接命令

2.9.1 格式: ln -s [原文件] [目标文件]
2.9.2 参数:
-s 创建软链接
2.9.3 软链接特征:
+ 类似windows快捷方式,修改任意一个都改变
+ 拥有自己的I节点和block块,但是数据块中只保存原文件的文件名和I节点号,并没有实际的文件数据
+ 权限都为rwx
+ 原文件不存在,软链接失效

2.9.4 硬链接特征
+ 拥有相同的i节点和存储block块,可看做同一个文件
+ 可通过i节点识别
+ 不能跨分区
+ 不能针对目录

3.搜索命令

3.1 locate 文件搜索命令

3.1.1 格式:locate 文件名
3.1.2 特点:
+ 在后台数据库按文件名搜索,搜索速度快,数据库存储在/var/lib/mlocate,可用updatedb 更新数据库
+ 配置文件 /etc/updatedb.conf,配置文件约束搜索的目录

3.2 whereis 命令搜索命令

3.2.1 格式:whereis 命令名
3.2.2 特点:搜索命令所在路径及其帮助文档所在位置
3.2.3 参数:
+ -b只查找可执行文件
+ -m之查找帮助文件

3.3 which 命令搜索命令

3.3.1 格式: which 命令名
3.3.2 特点:相比于whereis命令,还可以查看命令别名

3.4 find 文件搜索命令

3.4.1 格式:find [搜索范围] [搜索条件]
3.4.2 重要参数:
+ -name
+ -iname 不区分大小写
+ -user 按照所有者搜索
+ -nouser 没有所有者的文件
+ -mtime 最后修改时间(+10 十天前 ,10 十天,-10 十天内)
+ atime文件访问时间
+ ctime改变文件属性
+ mtime修改文件内容
+ -size ( k M)
+ -a逻辑与 ,可将搜索条件逻辑操作
+ -o逻辑或
+ -exec/-ok 命令{}\;对搜索结果进行操作

3.4.3 注意:搜索条件中也可以使用通配符

3.5 grep 字符搜索命令

3.5.1 格式:grep [选项] 字符串 文件名
3.5.2 重要参数:
-i 忽略大小写
-v 排除指定字符串,取反
3.5.3 注意:选项可使用正则表达式匹配

4.帮助命令

4.1man

格式:man 命令
man命令中的9个级别
man -f 命令相当于 whatis 命令,查看命令级别
man -k 命令 相当于apropos 命令,查看和命令相关的所有帮助

4.2 其他

4.2.1 命令 –help
4.2.2 help(shell 内部命令)
4.2.3 info 命令
+ -回车 进入子帮助页面
+ -u 进入上层页面
+ -n进入下一个帮助小节
+ -p进入上一个帮助小节
+ -q退出

5.压缩命令

5.1 .zip

压缩文件:
zip 压缩文件名 源文件
压缩目录:
zip -r 压缩文件名 源目录
解压文件:
unzip 压缩文件名

5.2 .gz

压缩文件:
gzip 源文件 (源文件会消失)
gzip -c 源文件 > 压缩文件 (源文件不会消失)
压缩目录下的所有子文件,但是不能压缩目录:
gzip -r 目录
解压:
gzip -d 压缩文件
gunzip 压缩文件

5.3 .bz2

压缩文件:
bzip2 源文件 ( 压缩不保留源文件)
bzip2 -k 源文件 (压缩保留源文件)
注:
bzip2不能压缩目录
解压:
bzip -d 压缩文件
bunzip2 压缩文件(-k保留原压缩文件)

5.4 打包命令

5.4.1 tar -cvf 打包文件名 源文件
+ -c 打包
+ -v 显示过程
+ -f 指定打包后的文件名

5.4.2 tar -xvf 打包文件名
+ -x 解打包

5.5 .tar.gz

tar -zcvf 压缩包名.tar.gz 源文件
tar -zxvf 压缩包名.tar.gz

5.6 .tar.bz2

tar -jcvf 压缩包名.tar.bz2 (可指定位置)源文件(多个文件空格间隔)
tar -jxvf 压缩包名.tar.bz2 -C 指定极为压缩位置
tar -jtvf 压缩包名.tar.bz2
-t test查看文件内容

6.关机与重启

6.1 shutdown关机

6.1.1格式:shutdown [选项] [时间] (现在now)
6.1.2参数:
+ -c 取消前一个关机
+ -h 关机
+ -r 重启

6.2其他关机命令
  • halt
  • poweroff
  • init 0
6.3 系统运行级别
  • 0 关机
  • 1 单用户
  • 2 不完全多用户,不包含NFS服务
  • 3 完全多用户
  • 4 未分配
  • 5 图形界面
  • 6 重启
6.4退出登录

logout

7.其他常用命令

7.1.查看用户登录
  • w命令
  • who命令 只能查看自己
  • last 查看当前登录和过去登录的用户信息,last会查找 /var/log/wtmp文件数据,数据为二进制文件,无法修改
  • lastlog 查看用户最后登录的情况

三.系统管理

1.进程管理

1.1简介

1.1.1定义

正在执行的程序或命令,一个运行的实体,有自己的地址空间并占用一定系统资源

1.1.2 作用
+ 判断服务器健康状态
+ 查看所有进程
+ 杀死进程(并非经常结束的上上策)

1.2 进程查看

1.2.1 ps和pstree命令
ps aux (注意没有-)或ps -le
命令参数
+ -a: 显示所有,除了会话引线
+ -u: 显示进程的归属用户及内存使用情况
+ -x:显示没有控制终端的进程
+ -l:长格式显示,更详细
+ -e:显示所有,同a

pstree 查看进程树
1.2.2 top命令
每3秒刷新且交互类似window任务管理器
?或h获取帮助
四行进程信息
基本信息,任务,CPU,缓冲(写入硬盘),缓存(写入内存)

1.3 杀死进程

1.3.1 kill命令
杀死单一进程
kill -l 查看信号列表
+ 信号1,重新读取配置文件,平滑重启
+ 信号9,强制终止

killall -选项 信号 进程名
+ -i交互
+ -I忽略进程大小写

pkill
+ -t 按终端号清除

1.4 进程优先级

Linux,多用户多任务,进程优先级决定先后顺序
PRI+NI优先级属性
用户只能修改nice值且超级用户才能设置负值
nice 选项 命令 (不能修改已存在进程优先级)
选项
+ -n NI值:给命令赋予NI值

renice 优先级 PID(修改已存在进程的NI)

2.工作管理

2.1简介

工作管理,查看jobs,其实为后台管理
2.1.1注意
+ 会绑定终端,只能管理当前终端的工作,不能管理其他登录终端的工作
+ 放入后台的命令必须持续运行一段时间,才能捕捉和操作这个工作
+ 放入后台的命令不能和前台用户有交互或输入,否则只会暂停而不能执行

2.2 管理方法

2.2.1 放入后台
+ 命令后加&,把命令放入后台,并在后台执行
+ 按下Ctrl+z快捷键,放在后台暂停

2.2.2查看后台工作
jobs [-l]
+ -l 显示工作的PID
+ 加号代表最近一个放入后台的工作,也是工作恢复时默认恢复的工作,减号代表倒数第二个放入后台的的工作

2.2.3后台暂停的工作恢复到前台
+ fg %工作号(工作号和PID的区别)

2.2.4把后台暂停的工作恢复到后台执行
+ bg %工作号 任务不能有交互,不然失败

2.3 后台命令脱离终端
  • 将需要后台执行的命令加入/etc/rc.local文件
  • 使用系统定时任务,让系统在指定的时间执行某个后台命令
  • 使用nohup命令,[nohup 命令 &]

3.系统资源查看

3.1 vmstat 监控系统资源

vmstat [刷新延时 刷新次数]

3.2.dmesg开机时内核检测信息

dmesg | grep cpu

3.3 free命令查看内存使用状态

free [-b|-k|-m|-g]
选项为显示单位

3.4 cat /proc/cpuinfo 查看CPU信息
3.5 uptime 显示信息同top命令第一行信息
3.6 file /bin/ls 查看操作系统位数
3.7 lsb_release -a 查看发行版
3.8 lsof
  • lsof |more 查询系统中所有进程调用的文件
  • lsof /sbin/init 查询哪个文件被哪个进程调用
  • lsof -c httpd 查看httpd进程调用了哪些文件
  • lsof -u root 按照用户名,查询某用户的进程调用的文件名

4.系统定时任务

4.1 at命令 一次性定时任务

4.1.1 必须安装at服务
4.1.2 at访问控制
+ /etc/at.allow 使用at命令的用户白名单,白名单存在黑名单则失效
+ /etc/at.deny 使用at命令的用户黑名单
+ 两个名单都不存在则只有root才能使用at命令

4.1.3 at命令
+ 格式: at [选项] 时间
+ 选项
+ -m当at命令结束,用email通知执行at明令的用户
+ -c 工作号:显示该at工作的实际内容
+ 时间:
-HH:MM eg : 02.30
-HH:MM YYYY-MM-DD
-HH:MM [am|pm] [month] [date]
-HH:MM [am|pm] +[minutes|hours|days|weeks]

4.2 crontab 循环定时任务

4.2.1 开启crond服务
4.2.2 用户访问控制
/etc/cron.allow
/etc/cron.deny
4.2.3 crontab命令
+ 格式: crontab [选项]
+ 选项
+ -e编辑crontab定时任务
+ -l查询crontab任务
+ -r删除当前用户所有的crontab任务

  • 文件* * * * *五个星号的含义
    (1)一小时第几分钟
    (2)一天第几小时
    (3)一月第几天
    (4)一年第几月
    (5)一周的星期几
  • 里面最好使用脚本绝对路径
  • crontab命令绑定了当前用户
    4.2.4crontab设置
  • /etc/crontab配置文件
4.3 anacron
  • 配置文件 /etc/anacrontab
  • 将脚本放在/etc/cron.daily,(weekly,monthly)

四.服务管理

1.服务分类

  • 二进制包安装的服务
    • 独立的服务
    • 基于xinetd服务
  • 源码包安装的服务

2.二进制包服务管理

2.1 查看服务以及自启动情况

chkconfig –list

2.2 默认安装服务的位置

/etc/init.d/ 启动脚本位置
/etc/sysconfig/ 初始化环境配置文件位置
/etc/ 配置文件位置
/etc/xinetd.conf xinetd配置文件
/etc/xinetd.d/ 基于xinetd服务的启动脚本
/var/lib/ 服务产生的数据
var/log 日志

2.3 独立服务的启动
  • /etc/init.d/独立服务名 start|stop|status|restart|
  • service 独立服务名 start|stop|status|restart|
2.4 独立服务的自启动
  • chkconfig [–level 运行级别] [独立服务名] [on|off] 或使用ntsysv命令管理自启动
  • 修改 /etc/rc.d/rc.local
2.5 xinetd服务的自启动(启动与自启动相同)

(1)配置文夹启动相应服务 /etc/xinetd.d/服务脚本
(2)重启xinetd
(3)chkconfig 服务名 on
(4)ntsysv

3.源码包服务管理

在安装位置下启动即可,默认源码包安装服务的位置,usr/local

五.shell基础

1.简介

shell是一个命令行解释器,为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用shell来启动,挂起,停止甚至编写一些程序。
shell是一个功能强大的编程语言,解释执行的脚本语言,在shell中可以直接调用Linux系统命令

2.bash的基本功能

2.1 历史别名与快捷键

2.1.1别名操作
查看别名 : alias
修改别名 :alias 别名=‘原命令’ ( 临时生效)
写入 ~/.bashrc 写入环境变量配置文件
删除别名 :unalias 别名 (临时删除)
2.1.2 快捷键
+ ctrl +c 强制终止当前命令
+ ctrl +l 清屏
+ ctrl +a 光标移动到命令行首
+ ctrl +e 光标移动到命令行尾
+ ctrl + u从光标所在位置删除到行首
+ ctrl + z把命令放入后台
+ ctrl +r 在历史命令中搜索

2.2 历史命令

2.2.1 查看历史命令
history [选项] [历史命令保存文件]
-c清空历史命令
-w把缓存写入保存文件
2.2.2注意:历史命令文件保存地址,~/.bash_history,历史命令默认1000条,可在环境变量配置文件/etc/profile中进行修改HISTSIZE
2.2.3 历史命令的调用
+ 上下箭头
+ !n 重复执行第n条
+ !! 重复执行上一条命令
+ !字串重复执行最后一条一该字串开头的命令

2.3.4 命令与文件补全
tab键

2.3 输出重定向

2.3.1标准输入输出
+ 标准输入 /dev/stdin 0
+ 标准输出 /dev/stdout 1
+ 标准错误输出 /dev/stderr 2
2.3.2输出重定向
+ 命令>文件 覆盖
+ 命令>>文件 追加
+ 错误命令 2>文件
+ 错误命令 2>>文件

2.3.3正确输出和错误输出同时保存
+ 命令 >文件 2>&1
+ 命令 >>文件 2>>&1
+ 命令 &>文件
+ 命令 &>>文件
+ 命令>>文件1 2>>文件2
黑洞 /dev/null,可将输出定向于此

2.3.4输入重定向
wc 字符计数命令
wc [选项] [文件名]
-c 统计字节数
-w 统计单词数
-l 统计行数
wc < 文件名 统计文件

2.4 多命令顺序执行
  • ;顺序执行
  • && 前一个命令执行才会执行后一个命令
  • ||前一个命令不执行才会执行后一个命令
  • 命令 &&echo yes || echo no
  • 管道符| ,前一个命令的输出做为后一个命令的操作对象
2.5 shell中特殊符号

通配符
+ ?匹配任意一个字符
+ *匹配0个或多个字符
+ []匹配括号里的一个字符
+ [-]匹配括号里的任意一个字符,-表示一个范围
+ [^] 逻辑非

猜你喜欢

转载自blog.csdn.net/danghaibulan222/article/details/80494906
今日推荐