linux第3天

当使用sigqueue传递信号发送额外数据时,需要设置act.sa_flags = SA_SIGINFO;

l  shell是核心程序kernel之外的指令解析器,是一个程序,同时是一种命令语言和程序设计语言。

软硬连接 命令ln

[[email protected] shell]$ ln my.tar.gz my2.tar.gz  建立一个硬连接

[[email protected] shell]$ ln -s my.tar.gz  kjfs          建立一个软连接

l  shell脚本基本元素


#!/bin/bash

#shell脚本

mytext="hello world"

echo $mytext;


注意初学者易犯错误:

1)  第一行#不是注释其他#都是注释;

2)  echo $mytextA;写错现象;

3)  写错现象#!bin/bash 忘记写bin前面的那个斜杠

4)  脚本如果没有执行权限 chmod 111 01hello.sh,如何办

5)  chmod u+x 01hello.sh  chmod u-x 01hello.sh

自定义别名: alias ll = ‘ls -alh’

ls `cat myfile.txt` –alh通过单反引号,把’cat myfile’的内容输出传给ls, 原理是单反引号里的内容当作命令,但如果不是标准命令,则前面需要一个命令去接.

后台处理 后台nohup commond &

l  管道

把一个命令的输出作为另外一个命令的输入

ls -l| sort;  ls | sort

重定向<输入>输出

与管道相关,可以改变程序运行的输入来源和输出地点

sort< myfile.txt

sort<myfile.txt >myfile+sort.txt

本地变量在用户现有的shell生命期的脚本中使用。

仔细思考本地变量背后的含义! echo $MYV 每登录一个终端,都会运行一个shell程序,这个本地变量,就保存在这个shell程序中;如果再新登录,将启动新的shell程序,与原来的shell不同。

环境变量用于所有用户进程(经常称为子进程)。

登录进程称为父进程。shell中执行的用户进程均成为子进程。不像本地变量(只用于现在的shell),环境变量可用于所有子进程,这包括编辑器、脚本和应用程序。

变量替换(显示变量)

$(variablename)  显示实际值

$(variablename:+value)  若设置了variablename,则显示;否则空

$(variablename:?value)  若未设置variablename,则显示用户自定义信息valude

$(variablename:-value)  若未设置variablename,则显示其值

$(variablename:=value)  若未设置了variablename,则设置其值,并显示

unset 清除变量

位置变量

#!/bin/bash

#param

echo "脚本的名字 $0"

echo "parm 1: $1

echo "parm 2: $2"

echo "parm 3: $3"

echo "parm 4: $4"

echo "parm 5: $5"

双引号可以解析出变量

单引号解析不了

单反引号里面的内容会当成命令输出

shell输入与输出

echo -e  -e是表示解析转义字符

-n是表示不换行,默认换行

read语句可以从键盘或文件的某一行文本中读入信息,并将其制复制给一个变量。

read var1 var2 ….    若只指定了一个变量,那么read将会把所有的输入赋给该变量,直至遇上第一个文件结束符或者回车。如果给了多个变量,他们按照顺序分别赋予不同的变量。shell将用空格作为变量之间的分隔符。

cat myfile.txt | more 当myfile.txt比较大时,使用该命令可以设置分页符,一页一页看

shell是从左至右分析相应的命令

文件重定向

cat file1 file2 file3 >err.out 2<&1

将标准输出,标准错误,都定向到err.out中

1、  exec命令可以用来代替当前shell;换句话说,并没有启动子shell,使用

这一命令时,任何现有环境都将被清除,并重新启动一个shell。

exec command command通常是一个shell脚本。

Eg:测试执行完该命令后,需要重新登录shell,然后export声明的变量都失效了。exec ./hello.sh

2、对文件描述符进行操作时,也只有这个时,它不会覆盖你的当前的shell。

#!/bin/bash

#file_desc

#

exec 3<&0 0<name.txt #将标准输入保存至文件描述符3,再将name.txt放到标准输入

read line1#读取 从name.txt

read line2#读取 从name.txt

exec 0<&3 #将前面保存到文件描述符3的0号文件描述符再放到0号位置,

echo $line1

echo $line2

时间: 2024-10-24 23:22:35

linux第3天的相关文章

排查Linux机器是否已经被入侵

随着开源产品的越来越盛行,作为一个Linux运维工程师,能够清晰地鉴别异常机器是否已经被入侵了显得至关重要,个人结合自己的工作经历,整理了几种常见的机器被黑情况供参考 背景信息:以下情况是在CentOS 6.9的系统中查看的,其它Linux发行版类似 1.入侵者可能会删除机器的日志信息,可以查看日志信息是否还存在或者是否被清空,相关命令示例: [[email protected] ~]# ll -h /var/log/* -rw-------. 1 root root 2.6K Jul 7 18

linux下Nginx配置文件(nginx.conf)配置设置详解(windows用phpstudy集成)

linux备份nginx.conf文件举例: cp /usr/local/nginx/nginx.conf /usr/local/nginx/nginx.conf-20171111(日期) 在进程列表里 面找master进程,它的编号就是主进程号. ps -ef | grep nginx 查看进程 cat /usr/local/nginx/nginx.pid 每次修改完nginx文件都要重新加载配置文件linux命令: /usr/local/nginx -t //验证配置文件是否合法 若ngin

Linux下WebSphereV8.5.5.0 安装详细过程

Linux下WebSphereV8.5.5.0 安装详细过程 自WAS8以后安装包不再区别OS,一份介质可以安装到多个平台.只针对Installation Manager 进行了操作系统的区分 ,Websphere产品介质必须通过专门的工具Install Managere安装.进入IBM的官网http://www.ibm.com/us/en/进行下载.在云盘http://yun.baidu.com/share/linkshareid=2515770728&uk=4252782771 中是Linu

Linux centos下让alias自定义永久生效(+常用的别名)

alias可以简化一些复杂的命令串,使一个单词或简化后的命令即可实现复杂(通常是带很多参数的长串)命令. 基本用法: alias 简化命令='实际的长串命令'    //实际长串命令通常为'原命令 -/选项参数' eg. alias ll='ls -a' 获取别名: alias        //即可查看当前设定的所有alias别名 取消别名: unalias 简化命令 eg. unalias ll            //取消ll的别名 永久生效: 直接使用alias命令定义的别名,重启后就

Linux下修改环境变量PATH

1.什么是环境变量(PATH) 在Linux中,在执行命令时,系统会按照PATH的设置,去每个PATH定义的路径下搜索执行文件,先搜索到的文件先执行. 我们知道查阅文件属性的指令ls 完整文件名为:/bin/ls(这是绝对路径), 那你会不会觉得很奇怪:"为什么我可以在任何地方执行/bin/ls这个指令呢? " 为什么我在任何目录下输入 ls 就一定可以显示出一些讯息而不会说找不到该 /bin/ls 指令呢? 这是因为环境变量 PATH 的帮助所致呀! 当我们在执行一个指令癿时候,举例

老男孩Linux运维第41期20170917开班第四周学习重点课堂记录

第1章 必知必会文件 配置文件位置 该文件作用 /etc/sysconfig/network-scripts/ifcfg-eth0 第一块网卡的配置文件 同setup中的network /etc/resolv.conf 客户端DNS配置文件,优先级低于网卡配置文件 /etc/hosts 主要作用是定义IP地址和主机名的映射关系(域名解析),是一个映射IP地址和主机名的规定 /etc/sysconfig/network 用于配置hostname和networking /etc/fstab 开机自动

Linux基础命令小结

注意:Linux严格区分大小写 老男孩方法论经验之谈: 有一种方法叫做没方法 有两种方法,左右为难 有三种方法才叫有方法 停止一个命令:CTR + C 1.创建目录 英文:make directorys 命令:mkdir 实例:三种方式 mkdir /data cd / mkdir data cd /;mkdir data mkdir x y z    表示同时创建多个目录 mkdir -p /data/x/y   表示同时创建多级目录(递归创建),切记不可用mkdir /data/x/y 2.

Linux red hat 安装ansible

今日对Linux 系统是Red Hat Enterprise Linux Server release 6.5 (Santiago)对ansible进行安装. 由于系统的源为yum源,所以使用yum install ansible 进行安装,但是报错.如图.(这个错误是yum源没有注册到red hat 系统). yum源不能安装,所以换了一个思路.使用pip安装.pip是依赖python安装的. 1.检查Python版本 Python -v 检查出来为Python 2.6.6 2.检查pip 版

初识运维3--在虚拟机中安装Linux发行版系统(CentOS)的方法

在讲Linux系统发行版本的安装过程之前,先大略说明一下虚拟化. 虚拟化:将底层硬件资源抽象为用户更容易读懂和使用的逻辑抽象层的技术. 最早由IBM提出,现使用率较高的虚拟化软件平台有三类:VMware workstation.VirtualBOX.HyperV.在这里使用VMware workstation作为例子讲解说明安装过程. 虚拟化网络: 桥接模式:让物理机和虚拟机利用物理网络接口完成通信.虚拟机可以访问互联网. 仅主机模式:让虚拟机和物理机利用被虚拟出来的VMnet1网络接口完成通信

查看Linux系统版本信息

一.查看Linux内核版本命令(两种方法): 1.cat /proc/version [[email protected]CentOS home]# cat /proc/versionLinux version 2.6.32-431.el6.x86_64 ([email protected]) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-4) (GCC) ) #1 SMP Fri Nov 22 03:15:09 UTC 2013 2.uname -a [