linux1
虚拟内存:内核通过磁盘上的存储空间来实现虚拟内存,这块区域称为交换空间。内核不断交换空间和实际的物理内存之间反复交换虚拟内存中的内容
linux运行中的程序叫做进程。
内核创建了第一个进程,叫做Init进程
运行级别:
1,单用户模式,用来修复的
3,标准启动运行级
5,启动左面管理
linux系统吧硬件设备当成特殊的文件1:字符型设备文件、块设备文件、网络设备文件
第二章 走进shell
du命令
-c 显示所有列出文件的大小
-h 用KMG来表示当前大小
-s 显示每个输出参数的总计
sort file.txt用来对文件进行排序用
默认情况下sort命令会把数字当字符来执行标准的字符排序
sort -n file.txt可以进行数字排序
-M参数用来按月排序等等,更多排序查看man sort
sort -t ':' -k 2 -r t.txt
-t代表分隔符 -k指从哪里开始排序 -r 倒序
例如:du -sh * | sort -nr
grep 命令会匹配到之后返回当前的行数据
例如L:grep aaaa qq.txt
反向搜索grep -v a qq.txt(输出不匹配该内容的)
-n显示该匹配的行
-c显示多少匹配数量
grep 可以使用正则表达式
例如:grep [tt] file1
----
内建命令和外部命令的区别在于,前者不需要使用子进程来执行,它已经和shell编译成了一体。
可以使用type来查看该命令是内建命令还是外部命令
注意:witch只显示出外部命令文件。
!!来执行刚刚使用的命令
命令历史记录保存在.bash_history中
history历史命令使用!29
alias -p 查看命令的所有别名
第六章环境变量
使用env或printenv来显示当前的环境变量
设置局部变量
aaa=1 // echo $aaa
---
设置局部变量后在当前shell脚本中可以使用,但是如果使用新的一个shell就无法使用它
设置全局变量方法:先创建一个局部变量,然后导出到全局环境中,但是也只是改变子shell的全局环境变量,不会改变父shell中。export setval
使用unset my_variable ,注意删除的时候不需要前面加$符号
在子进程中删除一个环境变量,那么只对当前子进程的shell有用,父进程没有受到影响!
vim 命令:
G移动最后一行
gg移动第一行
dd删除当前光标所在行
u撤销前一个编辑命令
A在当前光标所在行尾追加数据
y复制当前行
p粘贴当前行
重定向内容用 > 如果不想覆盖内容的话用>>
wc命令
文本行数 文本的词数 文本的字节数
Linux命令计算expr 1 + 1
shell中使用计算命令,使用$[],但是这个只能运行整数运算
例如:var2=$[$var1 + 2]
浮点解决方案:使用bc
例如:
------------
#!/bin/bash
geta=12
bbfloat=3.14139
getsc=`echo "$geta * $bbfloat" | bc`
echo $getsc
------------
查看退出错误码echo $?
单引号不解释变量
---
shell if的使用注意点:
注意缩进
可以用test来判断命令返回码
输出返回码echo $?
test可以判断三类条件;
数值比较
字符串比较
文件比较
两个变量之间比较必须加[ $a==$b ] 中括号
比较相等的只需要一个=号就可以,用两个也可以
比较字符的<和>必须转译才能使用,因为他是重定向符号
-n和-z可以检查一个变量是否含有数据
-----
注意:空和未初始化的变量会对shell脚本测试赵城灾难性的影响
file文件比较
-d file 判断一个文件是否存在,并且是一个目录
-w file 判断一个文件是否存在,并且是可写
......
......
......
例如:
filename=$HOME/etc
if [ -d $filename]
fi
------
if-then 的高级特性
1.用于数学表达式的双括号
2.用于高级字符串处理功能的双方括号
【1】双括号命令运行你在比较过程中使用高级数学表达式,test命令只能在比较中使用简单的算术操作。
例如:
vall=90
if(( $vall ** 2 > 90))
fi
【2】双方括号命令提供了针对字符串比较的高级特性。
例如:
if [[ $USER == r* ]]
then
echo "hello word!"
else
echo "sorry@"
fi
-----
for循环
默认情况下使用空格、制表符、换行符做区分位置
可以指定IFS=$'\n'来指定只用换行符来区分一条记录
例如:
s=`cat hosts`
IFS=$'\n'
for loop in $s
do
echo "the value is: $loop"
done
-------
shell使用带参数
例如: test aaa bbb
在程序里面用$1 $2接收
$0是shell脚本名字
如果参数超过9个那么久要用${10}来接收
basename可以剥离绝对路径:例如:/home/aaa/bbb/v.sh 会变成v.sh
使用-n来检查命令行参数$1中是否有数据
$#用来输出当前命令行参数的个数
$*和$@可以获取所有的shell脚本参数,区别再去,在循环的时候,$*是全部一次性输出,$@变量会处理每个参数
shift 命令每执行一次,变量的个数($#)减一,而变量值提前一位,下面代码用 until 和 shift 命令计算所有命令行参数的和
例子:
-----
#!/bin/bash
while [ -n "$1" ]
do
case "$1" in
-a) echo "is -a" ;;
-b) echo "is -b" ;;
-c) echo "is -c" ;;
--) shift
break ;;
*) echo "$1 is not an option" ;;
esac
shift
done
#
count=1
for param in $@
do
echo "11111111#$count:$param"
count=$[ $count+1 ]
done
---
while :
do
echo -n "输入1到5之间的数字:"
read aNum
case $aNum in
1|2|3|4|5)
echo "运行数组为:$aNum"
;;
6|7|8|9|10)
echo "5以后的数组:$aNum"
;;
*)
echo "其他输入$aNum"
;;
esac
done
添加命令自动补全 : complete -W "mysql nginx workspace redis rebbitmq" docker-exec
linux1的更多相关文章
- Linux1.0源代码编译过程
根据源代码包中的readme文件及http://chfj007.blog.163.com/blog/static/173145044201191195856806/?suggestedreading& ...
- CentOS7最小化安装-Linux-1
CentOS 7的安装其实很简单,主要是网络配置. 选英文.设置时区等 最小化安装 先启动一个网络 Begin 吧 在安装的时候设置好root密码.很简单 别去点安装tools. 等待安装完成后,点击 ...
- Linux1 在Linux(CentOS)上安装MySql详细记录
前记: 毕业两年了,前两天换了份工作,由以前的传统行业跳到了互联网行业.之前的公司一直在用WinServer2003+Tomcat+SqlServer/Oracle这套部署环境.对于Linux+To ...
- Linux1:Linux概述
为什么服务器尤其大型服务器都使用Linux系统 服务器尤其是大型服务器一般都使用Linux系统,有以下几点原因: 1.成本低,Linux操作系统是免费的 2.安全性好,Linux采取了许多的安全措施, ...
- (从终端看linux-1)linux tty pty pts 概念 区别
基本概念: 1> tty(终端设备的统称):tty一词源于Teletypes,或者teletypewriters,原来指的是电传打字机,是通过串行线用打印机键盘通过阅读和发送信息的东西,后来这东 ...
- Linux-1.Windows远程连接Linux的工具
1.下载工具 想要链接远程Linux服务器,就需要工具来进行连接. 工具一:连接远端Linux工具--putty(可以用xshell啥的,我懒,就弄了个这个,建议还是xshell哈,功能多,还好看) ...
- Linux--1 初识
一.服务器核心知识 1.电脑和电脑的硬件组成 现在的人们几乎无时无刻不在使用着电脑!不管是桌上型电脑(桌机).笔记型电脑(笔电).平板电脑,还是智慧型手机等等,这些东西都算是电脑.虽然接触这么多,但是 ...
- Linux-1.5日志查看常用命令
常访问的日志目录:\data\log\(message系统 | secure安全 | maillog邮件) 进入日志目录 find \d1\data\log -name '*log' 在目录下查找以l ...
- Linux-1.4文件操作命令(grep,cat,tail,head,less,find,chmod,tail,less)
Linux基础命令(grep,cat,tail,head,less,find,chmod,tail,less) grep(常用) grep 指定“文件”搜索文件内容 grep hello 1.txt ...
随机推荐
- python进制转化函数,10进制字符串互转,16进制字符串互转
来了老弟,emmmmm,今天想到平时经常用到编码转化,把字符串转化为16进制绕过等等的,今天想着用python写个玩,查询了一些资料,看了些bolg 上面的两个函数是将二进制流转化为16进制,data ...
- Visual Studio Code 的使用方法和技巧
VSCode是微软推出的一款轻量编辑器,采取了和VS相同的UI界面,搭配合适的插件可以优化前端开发的体验. 布局:左侧是用于展示所要编辑的所有文件和文件夹的文件管理器,依次是`资源管理器`,`搜索`, ...
- Python基础【第二篇】
一.Python的标准数据类型 Python 3中主要有以下6中数据类型: Number(数字).String(字符串).List(列表).Tuple(元组).Sets(集合).Dictionary( ...
- Sql Server 字符串操作总结
SQL Server 支持两种字符数据类型---常规和Unicode:常规类型包括char 和varchar:unicode包括nchar 和nvarchar.常规的每个字符占用一个字节存储,而uni ...
- django 实战篇之模板层
模板层 {{}} 变量相关 {%%} 逻辑相关 前端获取容器类型的数据统一使用 句点符(.) 两种给模板传递值的方式 return render(request,'index.html ...
- INotifyPropertyChanged 接口
INotifyPropertyChanged 接口 用于向客户端(通常是执行绑定的客户端)发出某一属性值已更改的通知. 例如,考虑一个带有名为 FirstName 属性的 Person 对象.若要提供 ...
- Intervals 差分约束
题意:给定n个区间[Li,Ri]以及n个整数vi. 现在要有一个集合,使得这个集合和任意[Li,Ri]都有 至少 vi个元素相同. 问这个集合最少要几个元素. 定义S(x) 表示[1,x]中选择的元素 ...
- ACA:利用ACA解决TSP优化最佳路径问题——Jason niu
load citys_data.mat n = size(citys,1); D = zeros(n,n); for i = 1:n for j = 1:n if i ~= j D(i,j) = sq ...
- LCA的在线与离线算法
在线:链接 离线:链接
- (转)RBAC权限管理
RBAC 模型作为目前最为广泛接受的权限模型 角色访问控制(RBAC)引入了Role的概念,目的是为了隔离User(即动作主体,Subject)与Privilege(权限,表示对Resource的一个 ...