Linux_指令杂烩
目录
指令集合
- 命令行计算器
[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/cdrom
gpgcheck=0
关闭yum源:
yum-config-manager --disable yum 位置
开启yum源:
yum-config-manager --enable yum 位置
yum缓存(yum 安装软件时,先从 yum 源中将软件包和依赖包下载到本地缓存,安装后清除缓存。):
yum makecache 建立缓存
yum clean all 清除缓存
安装:yum install 软件名
localinstal
groupinstall
升级: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 列出可使用的kernel
yum repolist 显示有多少个repo
yum 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 update
baseurl=http://content.example.com/rhel7.0/x86_64/errata
enabled=1
gpgcheck=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_基础指令
目录 目录 前言 cd和pwd ls cat du mkdir touch rm cp mv which whereis find ln head和tail wc tar vim useradd 添加 ...
- 20135220谈愈敏Linux_总结
Linux_总结 具体博客链接 计算机是如何工作的 操作系统是如何工作的 构造一个简单的Linux系统MenuOS 系统调用(上) 系统调用(下) 进程的描述和创建 可执行程序的装载 进程的切换和系统 ...
- iOS逆向工程之Hopper中的ARM指令
虽然前段时间ARM被日本软银收购了,但是科技是无国界的,所以呢ARM相关知识该学的学.现在看ARM指令集还是倍感亲切的,毕竟大学里开了ARM这门课,并且做了不少的实验,当时自我感觉ARM这门课学的还是 ...
- 步入angularjs directive(指令)--点击按钮加入loading状态
今天我终于鼓起勇气写自己的博客了,激动与害怕并存,希望大家能多多批评指导,如果能够帮助大家,也希望大家点个赞!! 用angularjs 工作也有段时间了,总体感觉最有挑战性的还是指令,因为没有指令的a ...
- Git小技巧 - 指令别名及使用Beyond Compare作为差异比较工具
前言 本文主要写给使用命令行来操作Git的用户,用于提高Git使用的效率.至于使用命令还是GUI(Tortoise Git或VS的Git插件)就不在此讨论了,大家根据自己的的喜好选择就好.我个人是比较 ...
- 浅谈JSP中include指令与include动作标识的区别
JSP中主要包含三大指令,分别是page,include,taglib.本篇主要提及include指令. include指令使用格式:<%@ include file="文件的绝对路径 ...
- [Django]用户权限学习系列之User权限基本操作指令
针对Django 后台自带的用户管理系统,虽说感觉还可以,但是为了方便用户一些操作,特别设计自定义的用户权限管理系统. 在制作权限页面前,首先需要了解权限和用户配置权限的指令,上章讲到权限的添加,删除 ...
- 机器指令翻译成 JavaScript —— No.5 指令变化
上一篇,我们通过内置解释器的方案,解决任意跳转的问题.同时,也提到另一个问题:如果指令发生变化,又该如何应对. 指令自改 如果指令加载到 RAM 中,那就和普通数据一样,也是可以随意修改的.然而,对应 ...
- ARM的栈指令
ARM的指令系统中关于栈指令的内容比较容易引起迷惑,这是因为准确描述一个栈的特点需要两个参数: 栈地址的增长方向:ARM将向高地址增长的栈称为递增栈(Descendent Stack),将向低地址增长 ...
随机推荐
- pip 安装超时解决方案
已经使用梯子,安装某依赖时仍然超时. 首先检查pip的版本是否需要更新,如果不是最新版本运行命令更新: python -m pip install --upgrade pip 如果仍然超时错误,则运行 ...
- Maven项目构建利器04——Maven的一些核心概念
1.坐标 1)数学上的坐标: [1].在平面上. 使用X,Y两个向量可以唯一的定位平面上的任意一个点 [2]在空间中, 使用X,Y,Z三个向量可以唯一的定位空间中的任何一个点 2)Maven中的坐标: ...
- VM错误解决:This Virtual Machine Appears To Be In Use
刚才准备做网站(数据备份都在VM里面),没想到启动不起来,咋一看,出现This Virtual Machine Appears To Be In Use字号,不过貌似我没有启动任何VM啊,何来in u ...
- P1903 奖学金题解
众所周知,这是一道通过struct结构体进行排序的题目 思路:平常的输入.. 然后定义一个结构体grade,存放每个学生的学号.三科成绩.(也可以只存语文成绩和总分和学号) 自定义cmp函数,通过三层 ...
- C++11 学习笔记
unique_ptr 可以实现如下功能: 1.为动态申请的内存提供异常安全 2.讲动态申请的内存所有权传递给某函数 3.从某个函数返回动态申请内存的所有权 4.在容器中保存指针 5.auto_ptr ...
- JSTL标签(转载)
JSTL标签是一个实现web功能的定制标签库,包括输出功能,条件判断,循环等,使用JSTL标签,为动态编写WEB应用程序提供了很大的方便性,能很好的和Java语言和HTML进行结合.下面我们看看jst ...
- event对象中offsetX,clientX,pageX,screenX的区别
1.offsetXoffset意为偏移量,是事件对象距左上角为参考原点的距离.以元素盒子模型的内容区域的左上角为参考点.不包括border.2.clientX事件对象相对于浏览器窗口可视区域的X,Y坐 ...
- Linux基本命令+Makefile
1.linux下查看进程占用cpu的情况(top): 格式 top [-] [d delay] [q] [c] [S] [s] [i] [n] 主要参数 d:指定更新的间隔,以秒计算. q:没有任何延 ...
- html address标签 语法
html address标签 语法 作用:定义文档作者/所有者的联系信息. 说明:如果 <address> 元素位于 <body> 元素内部,则它表示该文档作者/所有者的联系信 ...
- python 线程模块
Python通过两个标准库thread和threading提供对线程的支持.thread提供了低级别的.原始的线程以及一个简单的锁. threading 模块提供的其他方法: threading.cu ...