Linux命令备忘 -- 持续更新

wget 参数

参数 做用
-b 后台下载模式。
-O 下载到指定目录。
-t 最大尝试次数。
-c 断点续传
-p 下载页面内全部资源,包括图片、视频等。
-r 递归下载

pidof

pidof XXX 找到参数名的PID.linux


killall

killall XXX 找到并kill找到的进程, 有点像kill+pidofshell


经常使用文件命令

  • stat 显示文件属性信息
  • file 查看文件类型

经常使用负载监控

  • watch -n 1 uptime
  • top
  • df -h
  • ps aux | grep xx
  • free -h

tr

替换文本安全

tr [a-z] [A-Z]bash


经常使用安全监控

  • who 当前在线用户和终端设备
  • last 登录日志
  • history 默认保存1000条, 修改/etc/profile的HISTSIZE
  • .bash_history 这个文件用于保存每一个用户的操做历史, 在用户根目录
  • /etc/passwd 系统的帐户信息

/etc/passwd 详解

注册名:口令:用户标识号:组标识号:用户名:用户主目录:命令解释程序

/etc/shadow

真正的密码文件less

LOGNAME:PASSWORD:UID:GID:USERINFO:HOME:SHELL
若是PASSWORD字段中的第一个字符是*的话,那么,就表示该帐号被查封了

cut

按列切割文件测试

cut -d: -f1 /etc/passwd
-d 后面是分隔符
-f 查看第几列

touch

难点- 设置文件系统信息,擦除文件修改记录url

参数 做用
-a 仅修改“访问时间”(atime)
-m 仅修改“更改时间”(mtime)
-d 同时修改atime与mtime

tar

.tar或.tar.gz或.tar.bz2.net

参数 用途
-c 建立压缩文件
-x 解压缩
-z 指定使用Gzip格式来压缩/解压
-j 指定使用bzip2参数来压缩/解压文件
-v 显示进度
-C 定要解压到的那个指定的目录
-f 必须放到参数的最后一位,要压缩或解压的软件包名称
tar czvf etc.tar.gz /etc
tar xzvf etc.tar.gz -C /root/etc

grep

关键词搜索匹配日志

参数 用途
-A 输出找到行及的下N行
-B 输出找到行及的上N行
-C 输出找到行及的上/下各N行
-n 显示行号
-v 反选

find

find ./ -name "test*"

管道输入输出

2> 文件	将错误输出重定向到一个文件中(清空原有文件的数据)

 >> 文件 2>&1 或 &> 文件将标准输出与错误输出共同写入到文件中(追加到原有内容的后面)
ls test32 > readme.txt 2> error.txt
正常输出到readme
错误输出到error.txt

管道符 |

其实管道命令符的做用一句话就能归纳:“将前一个命令本来要输出到屏幕的数据看成是后一个命令的标准输入”code

echo "linuxprobe" | passwd --stdin root
用管道为root修改密码

常见转义字符

字符 用法
反斜杠(\) 转义后面的一个字符变为单纯的字符串
单引号('') 转义其中全部的字符为单纯的字符串
双引号("") 保留其中的变量属性不转义为普通字符串
反引号(``) 将其中的字符串当作命令执行后返回一个结果

#命令执行的四个步骤

  1. 第一步骤阶段是判断用户是否以绝对路径或相对路径的方式输入命令(如/bin/ls),若是是的话则直接执行。
  2. 检查用户输入的命令是否为“别名命令”, alias/unalias 进行别名处理
  3. SHELL解释器(Bash)来判断用户输入的是内部命令仍是外部命令
    1. 内部命令是解释器内部的指令,会被直接的执行
    2. 外部指令进入步骤4
    3. type 能够手动查看指令类型
  4. 系统在多个路径中查找用户输入的命令文件
    1. 在系统的环境变量PATH中寻找
    2. 冒号间隔

yum 仓库配置

文件位置 : /etc/yum.repos.d/
文件名称 *.repo
[rhel-media]: yum源的名称,可自定义。

name=linuxprobe : yum仓库的名称,可自定义。

baseurl=file:///media/cdrom :提供方式包括FTP(ftp://..)、HTTP(http://..)、本地(file:///..)

enabled=1 : 设置此源是否可用,1为可用,0为禁用。

gpgcheck=1 : 设置此源是否校验文件,1为校验,0为不校验。

gpgkey=file:///media/cdrom/RPM-GPG-KEY-redhat-release :若为校验请指定公钥文件地址。

shell基础

  1. 条件测试语法可以判断表达式是否成立,若条件成立则返回数字0,不然便返回其余随机数值。

条件判断

[ -e /home/ow ]
文件操做符 做用
-d 测试是否为目录。
-e 测试文件或目录是否存在。
-f 判断是否为文件。
-r 测试当前用户是否有权限读取。
-w 测试当前用户是否有权限写入。
-x 测试当前用户是否有权限执行。
整数操做符 做用
-eq 判断是否等于
-ne 判断是否不等于
-gt 判断是否大于
-lt 判断是否小于
-le 判断是否等于或小于
-ge 判断是否大于或等于

判断计算机内存

FreeMem=free -m | grep "Mem:" | awk '{print $4}'
[ $FreeMem -lt 1024 ] && echo "less memory" || echo "memory enough"

字符串判断

  • -z 判断是否为空
  • =/!=

循环

if [] then;
elif [] then
else
fi

for xx in xx
do
done

while [] 
do
done

日期处理

初始化一个参数,将指定的日期做为参数处理

START_DATE=`date -d '2015-06-01' "+%Y-%m-%d"`

将一个日期+1天

START_DATE=`date -d "next-day $START_DATE" "+%Y-%m-%d"`
  • -1 month
  • -1 day
  • next day
  • 2 days ago
  • -1 week...

awk

awk help

awk 'BEGIN{ print "start" } pattern{ commands } END{ print "end" }' file
  1. 执行BEGIN{ commands }语句块中的语句;
  2. 从文件或标准输入(stdin)读取一行,而后执行pattern{ commands }语句块,它逐行扫描文件,从第一行到最后一行重复这个过程,直到文件所有被读取完毕。
  3. 当读至输入流末尾时,执行END{ commands }语句块
echo -e "line1 f2 f3\nline2 f4 f5\nline3 f6 f7" | awk '{print "Line No:"NR", No of fields:"NF, "$0="$0, "$1="$1, "$2="$2, "$3="$3}'
相关文章
相关标签/搜索