前言
学习是一件苦差
我无意回避这个问题--学习本是件痛苦的事情,如果学习Linux真的很简单,那么必是骗子说的谎话,起码这不能给你带来高薪,打开电脑后沉思,是该聊会天那~还是追个美剧那~还是打盘LOL那~还是看看那该死刘遄写的那本可怕的Linux教材时,请不要忘记自己最初的梦想,十年后你会感谢此时正在努力的自己。我身为作者的使命就是一定要对得起您花费的时间、精力、金钱,让你学完每一章节都是一次进步,读完稻盛和夫先生的活法后发现“我们也可以从学习中获得快乐”。
“工作马马虎虎,只想在兴趣和游戏中寻觅快活,充其量只能获得一时快感,决不能尝到从心底涌出的惊喜和快乐,但来自工作的喜悦并不想糖果那样--放到嘴里就甜味十足,而是从苦劳与艰辛中渗出,因此当我们聚精会神,孜孜不倦,克服艰辛后的成就感,世上没有哪种喜悦可以类比。”
“更何况人类生活中工作占据了较大的比重,如果不能从劳动中、工作中获得充实感,那么即使从其他地方找到快乐,最终我们仍然感到空虚和缺感。” -----from by Linux就该这么学,与沉沦在迷惘道路的同伴共勉。
1.执行脚本三种方法: (1)./build.sh (2)sh build.sh (3)source build.sh
2.赋予脚本执行权限 chmod u+x build.sh
3.接收用户参数
$0:当前执行shell脚本的程序名 $1-9 ${10} ${11}:参数位置的变量
$#:一共有多少个参数 $*:所有位置参数的值
$?:判断上一条命令是否执行成功,0为成功,非0为失败
4.判断用户参数
-d:测试是否为目录 -e:测试文件或者目录是否存在
-f:判断是否为文件 -r:判断当前用户是否有权限读取
-w:测试当前用户是否有权限写入 -x:测试当前用户是否有权限执行
5.操作符
-eq:判断是否等于 -ne:判断是否不等于
-gt:判断是否大于 -lt:判断是否小于
-le:判断是否等于或者小于 -ge:判断是否大于或者等于
6.man命令操作按键
/关键字:从上到下搜索某个关键字如:“/linux” ?关键字 :从上到下搜索某个关键字如:“/linux”
n:定位到下一个搜索到的关键字 N:定位到上一个所搜到的关键字
空格:向下翻一页 home:直接前往首页 end:直接前往尾页
q:退出帮助文档
7.echo 命令用于在终端显示字符串或者变量 格式:echo [ 字符串 | 变量 ]
8.date用于显示或者设置系统时间和日期,格式 date [选项] [+指定格式]如:
#:date
#:date "+%Y-%m-%d %H:%M:%S"
9.reboot重启系统(仅root用户可以使用)
10.wget命令用于下载网络文件 格式为:wget [参数] 下载地址
-b:后台下载 -O:下载到指定目录
11.ifconfig用于获取网卡配置和网络状态等信息,格式:ifconfig [网络设备] [参数]
12.uname 查看系统内核版本等信息,格式:uname [-a]
13.uptime 用于查看系统的负载情况,经常用watch -n 1 uptime查看每秒负载情况
14.free用于显示系统内存的使用情况,格式:free [-m/-g]
15.who用于查看当前登入主机的用户情况,格式:who [参数]
16.last用于查看系统所有的登入情况,格式:last [参数]
17.history用于显示历史执行过的命令,格式:history [-c] 备注:-c会清掉历史记录 历史记录保存在.bash_history文件夹,Linux系统中以(.)开头的文件均代表隐藏文件,一般都是系统文件。
18.ls 用于查看目录中有哪些文件,格式:ls [选项] [文件]
-a:查看所有文件(包括隐藏文件) -d:仅看目录本身
-h:易读文件容量(如:k,m,g) -l:显示文件的详细信息
19.文本编辑命令
1)cat:用于查看纯文本文件(较短的),格式:cat [选项] [文件] -n显示行号 -b显示行号(不包括空行) -A显示不可见的符号(空格,tab键等)
2)more:用于查看纯文本文件(较长的)格式:more [选项] 文件
3)head:用于查看纯文本的前n行,格式:head [选项] [文件夹] 如:head -n 30 文件名
4)tr:用于转换文本中的字符 如:cat tr.txt | tr [a-z] [A-Z]
5)wc用于统计指定文本的行数、字数、字节数
6)diff用于比较多个文本的差异 如:diff a.txt b.txt
20.文件和目录管理命令
1)touch用于创建文件或者修改文件时间 如:touch -d "2 days age" test将访问与修改时间改为2天前
2)mkdir 用于创建空白文件夹 格式:mkdir [选项] 目录 -m=MODE 默认文件目录权限,如“-m 755”
-p:连续创建多层目录 -v:显示创建过程
3)mv用于移动文件或者改名
4)rm用于删除文件或者目录
21.用户与组管理命令
1)useradd用于创建新的用户 格式:useradd [选项] 用户名 -d:指定用户的家目录 -e:账号的有效时间
2)passwd用于修改用户密码
22.打包压缩文件命令
tar用于文件的打包压缩或者解压 格式:tar [选项] [文件]
-c:创建压缩文件 -x:打开压缩文件 -t:查看压缩包内有哪些文件 -z:用Gzip压缩或者解压
-j:用bzip2压缩或者解压 -v:显示压缩或者解压过程 -f:目标文件名 -P:使用绝对路劲压缩 -C:指定解压到目录
打包压缩文件:tar -czvf 压缩包名.tar.gz 文件名 如:tar -czvf demo.tar.gz /etc
解压并展开压缩包:tar -xzvf 压缩包名.tar.gz 如: tar -xzvf demo.tar.gz /root/system
23.文件搜索命令
1)grep用于对文本文件进行搜索 格式:grep [选项] 文件
-b:将可执行文件(binary)当作文本文件(text)来搜索 -i:忽略大小写
-n:显示行数
2)find用于查找文件 格式:find [查找路劲] 寻找条件 操作
小窍门:"~"代表用户的家目录 “.”代表当前目录 “/”代表跟目录
24.输入输出重定向
1)输出重定向定位符
命令 > 文件 将标准的输出重定位到下一个文件中(清空原文件的数据)
命令 2> 文件 将错误的输出重定位到下一个文件中(清空原文件的数据)
命令 >> 文件 将标准的输出重定向到下一个文件中(追击在原有内容后面)
2)输入重定向
命令 < 文件 将文件作为命令的标志输入
命令 << 文件 从标准输入中读入,直到遇到‘分界符’才停止
命令 < 文件1 > 文件2 将文件1作为命令的标准输入并将标准输出到文件2
25.命令通配符
* :匹配零个或者多个字符 ?:匹配任意单个字符
[0-9]:匹配范围内的数字 [abc]:匹配已出的任意字符
26:特殊字符扩展
\(反斜杠):转义后面单个字符 ‘’(单引号):转义所有的字符
27.切换用户 su [-] 用户名 备注:(1)-与用户名空格开 (2)-将环境变量改为新用户的
28.为什么某个用户设置的变量不能被其他用户使用?原因就是变量的作用范围。
export用于将局部变量提升为全局变量 格式:export 变量名[=变量值]
~~未完待续。。。
1.远程传输命令
1)scp 用于在网络中安全地传输文件 格式为:scp [参数] 文件 远程账号@远程IP地址:远程目录
-v:显示详细连接进度 -P:指定远程主机sshd端口号
-r:传输文件夹时请加此参数 -6:使用iptv6协议
如:scp -v build_prop.sh [email protected]:/home/wgd
2)scp将远程主机的文件传到本地 格式:scp [参数] 远程用户@远程IP地址:远程文件 本地目录
2.clean清楚终端中已存在的命令和结果
3.hostname主机名 whoami:用户名 id:用户id
4.ps -ef 查看进行信息 e:显示全部进程 f:显示全部的列
uid:执行该进程的用户id
pid:进程id
ppid:父进程id(拉起pid的进程)
c:cpu占有率
5.top 查看进程占用服务器资源
PR:优先级 VIRT:虚拟内存 %CPU:cpu占用的百分比 %MEM:内存的占用百分比
RES:常驻内存 SHR:共享内存 TIME+:执行时间 COMMAND:进程的名称或者路劲 S:进行状态(运行或者休眠)
可以通过快捷键进行排序:
1)M:按内存排序
2)C/P:按cpu占有率排序
3)1:数字一显示各个cpu详细信息
6.du -sh指令,查看目录的真实大小
s(summaried):只显示汇总的大小
h:以较高可读性的形式进行形式
7.find查找文件
-name:按照文件名搜索,支持模糊搜索 -type:按照文档类型(“-/d”文件或者目录)搜索,其中“-”用f替换
8.service用于一些软件服务的启动/停止/重启 格式:service 服务么 start/stop/restart
9.kill杀掉进程,常与ps使用,格式:kill 进程id/进程名称
10.ifconfig操作网卡
11.reboot重启
12.uptime输出计算机的在线时间
13.uname获取操作系统相关信息
uname -a 获取全部系统信息(类型,主机名 ,内核版本,发布时间,开源计划)
14.netstat -tnlp查看网络连接状态
-t:表示只列出tcp协议的连接
-n:将域名转化为IP,将协议转化为端口号
-l:过滤状态为LISTEN(监听)的连接
-p:发起进程的pid和名称
15.man指令 查询手册
16.快捷键
ctrl+u删除光标之前内容 ctrl+k删除光标后面内容