虚拟内存:内核通过磁盘上的存储空间来实现虚拟内存,这块区域称为交换空间。内核不断交换空间和实际的物理内存之间反复交换虚拟内存中的内容

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的更多相关文章

  1. Linux1.0源代码编译过程

    根据源代码包中的readme文件及http://chfj007.blog.163.com/blog/static/173145044201191195856806/?suggestedreading& ...

  2. CentOS7最小化安装-Linux-1

    CentOS 7的安装其实很简单,主要是网络配置. 选英文.设置时区等 最小化安装 先启动一个网络 Begin 吧 在安装的时候设置好root密码.很简单 别去点安装tools. 等待安装完成后,点击 ...

  3. Linux1 在Linux(CentOS)上安装MySql详细记录

    前记:  毕业两年了,前两天换了份工作,由以前的传统行业跳到了互联网行业.之前的公司一直在用WinServer2003+Tomcat+SqlServer/Oracle这套部署环境.对于Linux+To ...

  4. Linux1:Linux概述

    为什么服务器尤其大型服务器都使用Linux系统 服务器尤其是大型服务器一般都使用Linux系统,有以下几点原因: 1.成本低,Linux操作系统是免费的 2.安全性好,Linux采取了许多的安全措施, ...

  5. (从终端看linux-1)linux tty pty pts 概念 区别

    基本概念: 1> tty(终端设备的统称):tty一词源于Teletypes,或者teletypewriters,原来指的是电传打字机,是通过串行线用打印机键盘通过阅读和发送信息的东西,后来这东 ...

  6. Linux-1.Windows远程连接Linux的工具

    1.下载工具 想要链接远程Linux服务器,就需要工具来进行连接. 工具一:连接远端Linux工具--putty(可以用xshell啥的,我懒,就弄了个这个,建议还是xshell哈,功能多,还好看) ...

  7. Linux--1 初识

    一.服务器核心知识 1.电脑和电脑的硬件组成 现在的人们几乎无时无刻不在使用着电脑!不管是桌上型电脑(桌机).笔记型电脑(笔电).平板电脑,还是智慧型手机等等,这些东西都算是电脑.虽然接触这么多,但是 ...

  8. Linux-1.5日志查看常用命令

    常访问的日志目录:\data\log\(message系统 | secure安全 | maillog邮件) 进入日志目录 find \d1\data\log -name '*log' 在目录下查找以l ...

  9. 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 ...

随机推荐

  1. undefined reference to `pthread_create'

    问题描述: ubuntu 16.04  下  C语言开发环境, 已经添加了头文件#include <pthread.h> 以及在Makefile中添加了 -lpthread,但是编译时仍然 ...

  2. LNMP环境搭建:Nginx安装、测试与域名配置

    Nginx作为一款优秀的Web Server软件同时也是一款优秀的负载均衡或前端反向代理.缓存服务软件 2.编译安装Nginx (1)安装Nginx依赖函数库pcre pcre为“perl兼容正则表达 ...

  3. ECMAScript 6中数组新方法

    数组的方法 数组的的大部分方法都可以实现数组的遍历. foreach方法 实现数组的遍历 const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]; arr.forEach(fu ...

  4. 【python】flask+nginx配置

    背景信息 有wordpress服务A 有flask服务B, gunicorn启动,8个进程 用nginx代理,实现访问A然后跳转到B 问题 flask服务B上有文件上传操作,用nginx后发现无法上传 ...

  5. Vue使用watch监听一个对象中的属性

    问题描述 Vue提供了一个watch方法可以让使用者去监听某些data内的数据变动,触发相应的方法,比如 queryData: { name: '', creator: '', selectedSta ...

  6. Windows Internals 笔记——CreateProcess

    1.一个线程调用CreateProcess时,系统将创建一个进程内核对象,其初始使用计数为1.然后系统为新进程的主线程创建一个线程内核对象(使其计数为1). 2.CreateProcess在进程完全初 ...

  7. 配置 Docker 加速器:适用于 Ubuntu14.04、Debian、CentOS6 、CentOS7、Fedora、Arch Linux、openSUSE Leap 42.1

    天下容器, 唯快不破 Docker Hub 提供众多镜像,你可以从中自由下载数十万计的免费应用镜像, 这些镜像作为 docker 生态圈的基石,是我们使用和学习 docker 不可或缺的资源.为了解决 ...

  8. Kali linux2.0里Metasploit的postgresql selected, no connection问题解决

    说在前面的话 1.在kali中metasploit默认使用postgresql作为它的数据库: 想要开启metasploit服务首先得打开postgresql数据库, 命令如下:(或者:/etc/in ...

  9. 你不知道的CSS单位

    CSS中大部分属性值都有对应的量词单位,常见的如描述盒模型尺寸的 width, height, margin, padding, border,又比如CSS3中的transform属性的一些值.下面的 ...

  10. (一)主域相同子域不同之document.domain跨域

    一.什么是主域名,什么是子域名? 主域名又称一级域名或者顶级域名,由域名主体.域名后缀组成,比如cnblogs.com : 子域名有二级域名,比如www.cnblogs.com.三级域名,比如home ...