Linux 回顾简写

命令

Linux命令分为内部命令(shell层;Linux自带)和外部命令(二进制文件)

  • enable 展示所有内部命令
  • [command]+help 内部命令及其说明
  • type [command] 查看命令类型

设置别名

  • 例:alias cdnet=“cd /etc/sysconfig/twork-scripts/”
  • alias 查看系统中所有的别名
  • unalias cdnet 别名取消

alias cdnet=“cd /etc/sysconfig/twork-scripts/”
alias hostname=cdnet
hostname
centos7.magedu.com

命令优先级

别名 > 内部命令 > 外部命令

命令输入

多个命令可以用;隔开
一个命令可以用\分成多行

开机启动项

reboot 重新启动
halt,poweroff 关机
shutdown -h +10 #-h 小时

会话

【命令】

  • screen -S [SESSION] 创建会话
  • screen -x [SESSION] 加入会话
  • exit 退出会话
  • ctrl+a,d 剥离当前会话
  • screen -ls 显示所有打开的screen会话
  • screen -r [SESSION] 恢复会话

重定向

  • STDOUT和STDERR可以被重定向到文件
    命令 操作符号 文件名

  • 支持的操作符号包括:

    > 把STDOUT重定向到文件
    2> 把STDERR重定向到文件
    &> 把所有输出重定向到文件

> 文件内容会被覆盖

set –C 禁止将内容覆盖已有文件,但可追加 
>| file 强制覆盖  
set +C 允许覆盖  

>> 原有内容基础上,追加内容

软连接和硬链接

硬连接

  ln filename [linkfile]

硬连接

  ln -s filename [linkfile]

软连接和硬链接区别

根本区别

硬链接本质是一个文件多个名字而已
软连接本质是多个不同的文件

区别

1.跨分区  (硬链接不可以,软连接可以)  
2.inodenumber(硬链接相同,软连接各不相同)  
3.连接数(硬链接会增加,软连接不会增加)  
4.文件夹(硬链接不支持,软连接支持)  
5.删除(硬链接还能访问,软连接不能访问)  

文本编辑

grep

grep – 全局搜索正则表达式并输出到屏幕

  • 选项

    -v    不包含  
    -o   仅显示匹配  
    -i   忽略大小写  
    -q    静默输出  (输出结果不显示再控制台)
    -c    统计匹配的行数
    -n    显示匹配行数
    -A#   后#行   //#为数字
    -B#   前#行
    -C#   前后各#行
    -e    多个选项间的逻辑关系  or 关系
    -w    匹配整个单词
    -E    使用扩展正则表达式
    
  • 命令展示

ifconfig |grep -o “[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}” --color=auto
ifconfig |grep -o --color “[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}”
ifconfig |grep -o --color “([0-9]{1,3}.){3}[0-9]{1,3}”

vim

*选项

s替换
:1s/root/ROOT/g   g全局
:1s/root/ROOT/i   i忽略大小写
%s/^[^#]/#&/

高级扩展命令

:set ai 自动缩进  set noai  
:set nu 增加行号  set nonu  
:set hlsearch 增加高亮 set nohlsearch  
:set format=unix 设置文件格式为linux  
:set format=docs 设置文件格式为windows  
:set cul 增加行标示线  set nocul  

sed

sed ‘1p’ /etc/passwd 第1行自动打印(第1行打印2次)

  • 选项 -n 不自动打印
ifconfig|sed -n '2p'     只打印第2行 
seq 10 |sed -n '3,5p'  
sed -n '/^[^#]/p'  /etc/fstab
sed '/^#/d'  /etc/fstab   d删除
seq 10|sed -n '1~2p'   只打印奇数行
seq 10|sed -n '2~2p'   只打印偶数行
seq 10|sed '5,8a\  xyz\nabc'
sed '=' f3    = 加行号
sed '5!d' f3   除了第5行都删
sed -n 's/quiet/& net.ifnames=0/p' /etc/default/grub     
ifconfig eth0 |sed -n '2p' |sed -e 's/^.*inet//' -e 's/ net.*//'
sed '/^#Name/s/#//' /etc/httpd/conf/httpd.conf 

【特殊写法】
sed ‘s/bash/’’’$USER’’’/g’ /etc/passwd 三个单引号

awk

awk '{print "hello,awk"}'
awk '{print "hello,awk"}' /etc/fstab 
awk 'BEGIN{print 2*3}' 
awk -F: '{print $1}'  /etc/passwd     $1第一个字段,$0整行
awk -F: '{print $1,$3}'  /etc/passwd
df |awk '{print $5}' 
awk -F: '{print $1"\t"$3}'  /etc/passwd    
awk -F: '{print $1"======"$3}'  /etc/passwd 
awk -F: '{print $1"\n"$3}'  /etc/passwd 
awk -F: '{print "user shell is "$7}'  /etc/passwd 
awk -v FS=":" '{print $1FS$3}' /etc/passwd
D=":";awk -v FS="$D" '{print $1FS$3}' /etc/passwd
echo $D
awk -v FS="$D" '{print $1FS$3}' /etc/passwd
awk -v FS="$D" -v OFS="---" '{print $1,$3}' /etc/passwd

f1(a,b,c;xx,yy,zzz;12,34,5\n67,89;A,B,C)
awk -v FS=',' -v RS=';' '{print $2}' f1
awk -v FS=',' -v RS=';' -v ORS=';' '{print $2}' f1 
awk -F: '{print NF}' /etc/passwd
awk -F: '{print $NF}'  /etc/passwd
awk -F: '{print $(NF-1)}' /etc/passwd
awk -F: '{print NR,$NF}' /etc/passwd

awk 'BEGIN{i=1;sum=0;while(i <= 100){sum+=i;i++};{print sum}}'	

Package安装

rpm
局限性:无法解决包的依赖性问题

  • 选项

    -i(install)
    -v(verbose) 详细过程
    -h(查看执行进度)
    –test 干跑
    –nodeps 忽略依赖性
    –replacepkgs 覆盖
    -e
    -ql
    -qp
    -qi
    -qf 查看磁盘中的文件来自哪个包
    -K 查看合法性
    -V 是否不一致
    –import 导入秘钥

yum安装
主要解决包的依赖性问题

yum客户端配置文件:
     /etc/yum.conf:为所有仓库提供公共配置
     /etc/yum.repos.d/*.repo:为仓库的指向提供配置
仓库指向的定义:
	[repositoryID]
	name=Some name for this repository
	baseurl=url://path/to/repository/
	enabled={1|0}
	gpgcheck={1|0}
	gpgkey=URL
	enablegroups={1|0}
	failovermethod={roundrobin|priority}
	roundrobin:意为随机挑选,默认值
	priority:按顺序访问
	cost= 默认为1000  

yum命令的用法

yum [options] [command] [package ...]  
显示仓库列表:  
	yum repolist [all|enabled|disabled]  
显示程序包:
	yum list  
	yum list [all | glob_exp1] [glob_exp2] [...]  
	yum list {available|installed|updates} [glob_exp1] [...]  
安装程序包:
	yum install package1 [package2] [...]
	yum reinstall package1 [package2] [...] (重新安装)   
升级程序包:
	yum update [package1] [package2] [...]
	yum downgrade package1 [package2] [...] (降级)
检查可用升级:
	yum check-update
卸载程序包:
	yum remove | erase package1 [package2] [...]
查看程序包information:
	yum info [...]
查看指定的特性(可以是某文件)是由哪个程序包所提供:
	yum provides | whatprovides feature1 [feature2] [...]
清理本地缓存:
	清除/var/cache/yum/$basearch/$releasever缓存  
	yum clean [ packages | metadata | expire-cache | rpmdb | plugins | 	all ]  
构建缓存:
	yum makecache

源码编译安装
以httpd源码包再centos7安装为例

1 下载源码并解压缩
   tar xvf httpd-2.4.37.tar.bz2 -C /usr/local/src/

2 安装编译相关工具及依赖的包
   yum groupinstall "development tools"
   yum install apr-devel   apr-util-devel  pcre-devel

3 进入解压目录 
   ./configure --prefix=/apps/httpd24 --sysconfdir=/etc/httpd24

4.make -j 4   #j 进程

5 make install

6  PATH变量的设置
   echo 'PATH=/apps/httpd24/bin:$PATH' >   /etc/profile.d/httpd24.sh
   . /etc/profile.d/httpd24.sh 

7 使用软件
   apachectl 启动服务

8.关闭防火墙
	查看 ss -vnL
	关闭(下次开机启动)systemctl disable firewall  --Centos7
		(立即启动) systemctl stop firewall   ---centos7

变量

变量声明

name='hello'
echo "$name"

set name='wang'
echo $name  or echo '$name'

环境变量

export 
声明  declare -x,env ,printenv,export
取消  unset name

位置变量

$1,$2
$0 脚本名称
$* 传递脚本所有参数,全部参数合为一个字符串
$@ 传递脚本所有参数,每个参数独立为字符串
$# 传递给脚本的所有参数的个数
	$@  $* 只有在被双引号括起来的时候才有差异
set --  清空所有位置变量

只读变量

read 读取键盘输入

read name
wang #name=‘wang’

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值