Linux_指令杂烩
目录
- 目录
- 指令集合
- 常用于脚本的指令
- 查看变量的指令
- 监控命令
- 除了root用户的其他用户不能login
- 重定向
- grep 过滤文件内容
- vim预设定
- 系统在启动时要依次运行4个脚本
- 归档压缩文件互传
- 安装软件
- rpm redhat package manager
- yum yellow dog updater modifier黄狗包管理器
- 链接文件
- 文件查找
- 正则表达式
指令集合
- 命令行计算器
[jmilk@localhost Desktop]$ bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
1+2
3
11+13
24
常用于脚本的指令:
basename /etc/fstab 得到文件名
dirname /etc/fstab 得到文件的上级目录名
查看变量的指令:
env 查看环境变量(存放在开机、登陆、打开bash、运行脚本前都要开的4个文件中)
set 查看全部变量
监控命令
watch -n1 "df -i" #每一秒监控一次命令,显示一个分区的inode号剩余量
除了root用户的其他用户不能login
touch /etc/nologin
重定向
标准输入设备:stdin 0 ,只能输入(键盘)
正确输出:stdout 1,只能输出(屏幕)
错误输出:stderr 2,只能输出(屏幕)
其他文件:3+,输入/输出
所有输出(正确、错误)重定向:&>
错误输出定向到正确输出:2>&1 ,为了能够通过管道(管道只能通过正确输入)
输入重定向: < <<
脚本中常用于here结束符:
cat text << EOT #导入配置文件
grep 过滤文件内容
grep keyWord fileName--color=auto #keyWord颜色高亮
-n #得到keyWord所在行号
-i #不区分大小写
-A3 #keyWord后3行
-B3 #keyWord前三行
vim预设定
个性化设置
vim ~/.vimrc
set nu #在此文件加入自定义的vim个性化设置。
所有用户设置
vim /etc/vimrc
批量注释:CTRL+v -> 选择块 -> I -> 插入# -> ESC -> ESC
替换一列字符: CTRL+v -> 选择 -> s -> 输入字符 -> ESC
替换一行内的字符:
:s/要查找的/要替换的/ #不加g只替换第一个:
:s/要查找的/要替换的/g #加g替换一行内所有
替换多行:
:开始行,结束行 s//要查找的/要替换的/g
全文替换:
:0,$s/要查找的/要替换的/g
:%s/要查找的/要替换的/g
替换当前行到最后一行:
:,$s/要查找的/要替换的/g
当前行到倒数第 3 行:
:,$3s/要查找的/要替换的/g
查看vim当前打开的文件名字:
:args
其他操作:
ctrl+r 还原上一个动作
u 取消上次操作
vim +行号 文件 –>快速的跳到行
系统在启动时要依次运行4个脚本
(1)/etc/profile
(2) /home/~/.bash_profile
(3) /home/~/.bashrc
(4) /etc/bashrc
其中profile 主要写入路径和(全局)变量声明
bash 主要写入存放别名
归档、压缩、文件互传
压缩:
gzip 文件名
gunzip 文件名.gz
bzip2 文件名
bunzip2 文件名.bz2
打包:
tar Xcvf 目的文件名.tar.gz 压缩的源文件或目录(X=z、j、J)--add-file= #向tar包追加文件
解包:
tar Xxvf 源文件名.tar.gz -C 目的存放路径
解开包后删除原始包文件: --remove-files
安装软件
rpm– redhat package manager:
安装: rpm -ivh 软件包名
卸载: rpm -e 软件名
更新(卸载老版本,安装新版本):
系统中软件包不能多个版本共存,内核是可以多版本共存的。
rpm -U 软件名 -->若之前没安装则安装并且升级
rpm -F 软件名 -->若之前没安装则不安装,也不升级。安装了,就看看是不是可以升级
rpm -Uvh 软件名 --force -->安装某个已经安装的软件包当中丢失的文件
查询(已经安装):
rpm -q 软件名 查询软件包是否安装-qi 查询已经安装的软件包的详细信息
-ql 查询软件包文件的安装位置
-qc 安装的配置文件
-qa 所有已经安装的 rpm包
-qf 文件名 找出文件对应的软件包的全称
-q --scripts 安装软件包时运行的脚本
--changelog 更新信息
-qd 安装的帮助文档
查询(没有安装):rpm -qp ...
检测rpm的可靠性:
rpm --import /etc/pki/rpm-pgp/RPM-GPG-KEY-redhat-release #rpm出于安全考虑,每个出厂的rpm都利用非对称加密
rpm --checksig 软件包名 #先引导KEY 再检测
yum –yellow dog updater modifier(黄狗包管理器)
前提:需要建立仓库 repo –>/etc/yum.repos.d/
创建yum源:
yum-config-manager --add-repo=file:///mnt/cdromgpgcheck=0
关闭yum源:
yum-config-manager --disable yum 位置
开启yum源:
yum-config-manager --enable yum 位置yum缓存(yum 安装软件时,先从 yum 源中将软件包和依赖包下载到本地缓存,安装后清除缓存。):yum makecache 建立缓存yum clean all 清除缓存
安装:yum install 软件名
localinstalgroupinstall
升级:yum update 更新所有可以升级的软件包
yum update 软件名yum check_update 检测系统中可升级的软件包yum groupupdate 组名 检查系统中可升级的软件包
卸载:
yum remove 软件名
yum groupremove 组名
查询:
yum info 软件名yum list 显示yum仓库列表yum list 软件名 显示软件是否安装yum dislist 软件名 显示软件依赖关系yum search keyWold 查找软件包yum whatprovides 软件名 找软件从哪个包提供的yum provides /etc/fstab 找出提供此文件的软件包yum list kernel 列出可使用的kernelyum repolist 显示有多少个repoyum history 查看安装的记录yum history info ID 号 查看某个 yum 事件yum history undo ID 号 恢复某个 yum 事件
制作yum仓库:
1.mount /dev/cdrom /mnt/cdrom
2.安装vsftpd (rpm 或 yum)
3.安装createrepo
4.mkdir /var/ftp/cdrom
5.createrepo -v /var/ftp/cdrom –>生成yum数据库
5.cp -rvf /mnt/cdrom /var/ftp/cdrom
6.启动vsftpd–>注意防火墙策略
注:有些系统中,会把升级的软件包放到一个独立的 repo 中。
[update]name=red hat updatebaseurl=http://content.example.com/rhel7.0/x86_64/errataenabled=1gpgcheck=0
链接文件
ln -s 软链接, 可以跨分区 ln 硬链接, 不能跨分区
文件查找
1).查找指令 which whereis
2).查找文件
locate 文件
原理:查询的一个数据库(此数据库保存了所有文件的绝对路径),但新建立的文件找不到,由于数据库未更新 ,可以用 updatedb 更新,4:22 自动更新
3) .find
find 路径 -找什么 -exec 命令 {} \; {}代表找到的结果 -name 按名称
-size +- 按大小
-user 按文件的拥有者
-group 按文件的拥有组
-perm 按权限 --> -(/)324 -wx-w-r-- 只要满足一位就 ok
+324 -wx-w-r-- 此几位必须要有 -newer 文件名 找比此文件新的文件
-older 文件名 找比此文件老的文件
-mmin 120 找正好在前 120 分钟更改或建立的文件 --> +120 找正好在 120 分钟前更改或建立的文件
-120 找更改或建立不到 120 分钟的
find / type f -links +1 找硬链接大于 1 个的普通文件
find / -name host* -ls
正则表达式 :
使用 grep 配合 :
通配符:
? 一个任意字符 * 0-多个任意的字符 cat file | grep [a,b,c] 匹配其中的一个字符 cat file | grep [a-z] 匹配其中的一个字符 [^ab] 以ab开头[^a-z]* 第一个字符以 a-z 开头的 ls /etc/ | grep [a-z][0-9] 找前面结果包括一个字符 a-z 同时相连字符 0-9 的行 ls ?* 第一个字符随意,后面 0-多个字符 [!.] 除了. rm -rf .[!.]* 第一个字符是.,第二个字符不是.的,后面随意 rm -rf * --> *通配符默认不会删除隐藏文件的 shopt -s dotglob 指令使得*通配符可以包含. shopt -u dotglob *通配符不会包括隐藏文件
正则通配符:
(grep -E 或 egrep – 代表后面选项可以有正则表达式)–>官方推荐在正则表达式加上’ ,不加单引号,shell 会认为这个 shell 的通配符?
. 代表单个任意字符 grep .. file 找 file 文件中包含 2 个字符的行 + +前面字符可以出现多次,一次以上,不能是 0 次 ? ?前面的字符可以出现 1 次或 0 次 * *前面的字符可以出现多次或 0 次 .* 相当于任意字符(和 shell 中的*) grep -E 'a.+' file 包括 a 开头,后面任意多个字符(1-多次) grep -E 'a.+?' file 包括 a 开头,后面任意字符 0-多次 ^a 以 a 开头 a$ 以 a 结尾 ^a..b$ a11b axxb akkb
Linux_指令杂烩相关推荐
- Linux_基本指令
新的专栏Linux入门来啦!欢迎各位大佬补充指正!! Linux_基本指令 导入 文件 绝对路径与相对路径 隐藏的文件 指令 ls查看 stat查看文件属性 cd进入路径 mkdir创建目录 touc ...
- 任务管理 linux指令qsub,Linux_前一个投的任务跑完再跑另一个任务_qsub_-hold_jid
Linux_前一个投的任务跑完再跑另一个任务_qsub_-hold_jid perl program_1.pl input_1.file output_1.file perl program_2.pl ...
- dd指令打包iso文件 linux_从零开始学Linux运维|33.文件的打包压缩和解压
linux下打包文件常用的是tar命令 tar [选项] [文件] 常用参数 -c 创建压缩包-x 解压压缩包-t 查看压缩包内容-f 指定压缩包名字(压缩解压必选项)-v 显示所有过程-z gzip ...
- Linux_基础指令
目录 目录 前言 cd和pwd ls cat du mkdir touch rm cp mv which whereis find ln head和tail wc tar vim useradd 添加 ...
- 最新TurboMail邮件服务器Linux_安腾版本上市
拓波秉承不断开拓进取的精神,在技术研发和支持上不断的投入人力物力,力求在不断变化的市场需求中,达到100%的客户满意度.在刚刚踏入2010年,根据过往的市场调查,结合客户的需求和建议,拓波邮件系统推出 ...
- 【Linux_】权限
[Linux_]权限 心有所向,日复一日,必有精进 专栏:<Linux_> 作者:沂沐沐 目录 [Linux_]权限 前言 Linux权限的概念(是什么)? 什么是权限? Linux权限管 ...
- Linux_进程相关概念
Linux_进程相关概念 冯诺伊曼体系 我们现在常见的计算机,如笔记本,我们不常见的,如服务器,他们都遵循着冯诺依曼体系 截至到目前为止,我们所认识到的所有计算机,都是由一个个硬件组成 输入单元:包括 ...
- linux_进程类相关学习-fork函数-getpid函数-getppid函数-getuid函数-geteuid函数-getgid函数-getegid函数-进程之间共享数据-进程gdb调试
接上一篇:linux_环境变量-C语言代码打印环境变量-getenv函数-setenv函数-unsetenv函数 本次来分享进程类相关的学习,主要就是分享一些函数的使用,来,开始上菜: 目录 1.fo ...
- Linux_环境变量(PATH)
Linux_环境变量(PATH) 在说环境变量这一概念之前,有没有想过一个问题: 为什么运行自己写的程序的时候要加上./,而例如ls,pwd,cd,这样的命令不需要在前面加上./ 环境变量的基本概念 ...
最新文章
- Genomes correction and assembling - Present methods and tools
- 根据矩阵变化实现基于 HTML5 的 WebGL 3D 自动布局
- NLP——基于transformer 的翻译系统
- android gridview 中图片大小不一,android – Gridview及其图像不适合所有屏幕大小
- 怎样让手机变得更安全_使不安全变得更加安全
- (转)数组指针和指针数组的区别
- 【BZOJ 2753】 2753: [SCOI2012]滑雪与时间胶囊 (分层最小树形图,MST)
- api 获取网络使用情况_您的API是什么情况?
- 非线性时延系统matlab框图,非线性主-从时延系统的时滞相关有限时间同步控制方法与流程...
- MarshalByRefObject 的DOME代码
- linux课堂笔记(6)
- 配置python程序debug/run,避免每次运行都会重复加载数据集或模型,节约大量等待时间
- ImageMagicK遇到的一点问题
- 按shift键调出命令行的脚本
- win10如何微信多开(无需工具)
- 基于FPGA的CYUSB3014双向通信实验
- Git —— 4、团队协作机制及GitHub操作
- type Vector takes type parameters
- 卷积神经网络入门:LeNet5(手写体数字识别)详解
- 黑客瞄准里约奥运会,多种手法可能让你中招
热门文章
- c++ 暂停功能_app下载功能背后的逻辑
- html dom节点类型,浅谈Javascript中的12种DOM节点类型
- gx works2 存储器空间或桌面堆栈不足_保证安全的移动空间,超高安全品质的私家车推荐...
- html5网页仿写,纯CSS代码模仿绘制蚂蚁庄园页面
- 打印表单_超市生鲜常用表单,打印出来直接用!(可收藏)
- 苹果为了不让AirTag被用来跟踪,将推出一个安卓应用
- 华为云HiLens Kit上手初探:一款几乎“零门槛”的AI开发套件
- 430亿晶体管,1020万逻辑单元,英特尔发布全球最大容量FPGA,用全新硬件加速AI开发...
- Cell子刊:大鱼大肉吃三天,体重未动大脑先变,不仅发胖还会发炎
- ACL 2019最佳论文出炉:华人团队包揽最佳长短论文一作,中科院、华为等榜上有名...