拾遗:基础知识回顾-00

a.vi查找文本

    N,反方向搜索  

b.查看外网ip

    curl ifconfig.me  

b.更改到上一次访问的目录

    cd -  

d.在组中删除用户:

    gpasswd -d 用户名 组名 

e.查看网卡速率

    cat /sys/class/net/eth0/speed

f.host与guest之间的文件互传

    rcp -r /localdir/ username@ip:/remotedir

    rcp -r username@ip:/remotedir /localdir

g.find 相关

  find / -path /usr [-a] -prune -o -name xxx.txt -perm /4000 -group wheel

  注:-prune 排除/usr文件夹,/4000权限高于4000,对应于-4000;-path 与 -prune之间为隐式-a逻辑  #+4000的写法自2005年已经废弃

  find / 2>&1 | grep xxx 合并处理true&false输出,因为重定向操作中默认仅有stdout(1)会传递

  find -maxdepth 1 -regextype "egrep" -regex "\.\/\.{1}.+"  搜索当前目录下的隐藏文件,-maxdepth必须跟在目录名后面

  -regex后匹配的对象是包含完整路径的,并非文件名!其“dirname”部分与find声明的路径名称要保持完全一致!!!

  find省略搜索目录的时候,默认搜索路径为“.”

  另例:find /home -regex "/home/\.xxx"

  find -type f | xargs cp -t /somedir  注:cp -t destination source主要用于管道传递参数

  find -type f -exec cp {} /somedir \;    注:效果同上

  find /etc/ -name xxx    注:目标目录名称末尾附带“/”,可避免因搜索的目录名为软链接产生的异常

  find -atime或-mtime或-ctime    注:按天搜索,如-3指3天以内,包含三天;+3指三天以前,不包含三天

  find -amin或mmin或cmin    注:按分钟搜索

  find -iname  #忽略大小写

  find -inum  #按Inode搜索

  find -samefile somefile  #搜索某个文件的所有硬链接文件

  find -links N  #按文件或目录的硬链接数量搜索

  find -user username  #按属主名称搜索

  find -uid uidnumber  #按uid搜索

  find -group groupname  #按属组名称搜索

  find -gid gidnumber  #按gid搜索

  find -nouser  #属主名称为空的文件或目录

  find -nogroup  #属组名称为空的文件或目录

  find -size SIZE  #按文件大小搜索,如+40M指大小在40M以上的文件,不含40M

  find ! -perm /222 -not -type d -o -name xxx -a -amin -3  #!、或-not取反,-a、-o和、或逻辑

h.sed&gawk 相关

  sed '/xxx/{n;s@yyy@zzz@3}' text

  注:搜索文件text中包含xxx的行,{n;}格式表示操作匹配到的每一行的下一行,本例中即将其下一行中的第3个yyy替换为zzz

  sed -n '/xxx/p;/yyy/p' text 功能相当于grep

i.排除文本中包含某个单词(连续字符串)的行的几种方法

  grep -v 'xxx' text

  gawk '!/xxx/{print $0}' text

  grep -P '\b(?!.*xxx).*\b' text

j. chroot /dir /bin/bash env -i +h

  注:env -i指清除chroot之前所有环境变量,+h指取消历史命令缓存hash

k.who/whoami/who am i/w “四兄弟”

  who 显示当前已登陆的用户列表

  who am i 显示uid,即实际用户

  whoami 显示eid,有效用户

  w 显示更详细的信息,包括正在运行的程序

l.限制所有普通用户进程数量上限,例如200

  echo "* hard nproc 200" >> /etc/security/limits.conf

m.剥离命令与其执行终端的关联

  nohup+COMMMANDS

n.查找目录下所有文件内容中包含某个字符串的方法,例如:查找alias的系统配置文件

  grep -rP '^\s*alias\s+' /etc/*  

  grep -l -r -P '^\s*alias\s+' /etc/*    仅显示文件名,不显示具体的匹配行

o.PS1变量设置

    \d :日期

    \H :主机名+域名

    \h :主机名

    \t :24小时格式,带秒 SS

    \T :12小时整式,带秒 SS

    \A :24小时格式,不带秒 HH:MM

    \u :用户名

    \v :BASH的版本信息

    \w :完整的工作目录名称,家目录以 ~ 代替

    \W :工作目录名称的basename

    \# :当前终端执行的命令计数

    \$ :提示字符,有效用户是root时,提示符为 # ,否则为 $

 p.cp

  -L 复制对象是软链接,则复制其真实指向的内容

  -R/r 递归

  -p 保留属性 

  -u 如果源文件的Modify时间比目标文件的Modify时间新,则执行复制,否则不复制

o.pwconv,pwunconv,grpconv,grpunconv

  控制用户和用户组是否使用shadow文件保存密码

p.iconv文本转码

iconv -f ISO_8859-1 -t UTF-8 -o outfile infile

q.锁定用户(禁止登陆)

在/etc/passwd,/etc/group或/etc/shadow,/etc/gshadow中的密码位添加叹号或双叹号(!,!!)

r.显示所有内部命令(内部命令随BASH启动加载至内存,运行时不发起额外进程,运行效率较外部命令高)

f@z ~ $ enable
enable .
enable :
enable [
enable alias
enable bg
enable bind
enable break
enable builtin
enable caller
...

s.比较两个文件是否指向同一磁盘分区的相同Inode(即是否互为硬链接)

if [[ file1 -ef file2 ]]

t.查看、声明、清除全局变量;声明只读变量

  查看:export、env、printenv

  声明:export、declare -x

  清除:unset vars

  只读变量(常量):readonly var、declare -r var

u.整数运算、取随机数、变量递增

  整数运算:let var=1+2、var=$((1+2))

  随机数变量:$RANDOM,例:$(($RANDOM%20)),会随机得到一个0-19之间的整数

  变量递增:let var+=2、let var++

v.BASH条件判断

  -z:判断文件是否为空

  -n:判断文件是否不为空

  -e:判断文件或目录是否存在

  -h、-L:判断文件是否为软链接

  -S:判断文件是否为套接字文件

  -p:判断文件是否为管道文件

  -g:判断文件是否具有sgid权限位

  -u:判断文件是否具有suid权限位

  -k:判断文件是否具有sticky权限位

  -s:判断文件是否存在且不为空

  file1 -ef file2:判断两个文件是否互为硬链接,即Inode相同

w.read -p "Please input: " -t 4

  提示“Please input: ”,等待用户输入,等待时间为4秒

x.bzip2、xz

  -k选项指压宿的同时保留源文件

y.SSH密钥对登陆

  主配置文件:/etc/ssh/sshd_config,在其中启用RSAAuthentication、PubkeyAuthentication,禁用PasswordAuthentication

  生成密钥对:ssh-keygen -t rsa(或ecdsa、ed25519等),将生成的*.pub文件scp至服务端,并追加至 ~/.ssh/authorized_keys文件中

z.字体顔色设置

格式:
\033[01;32;42;m
00  清除格式(格式截止符)
01  加粗
04  下划线
30-37  依次代表字体顔色:黑红绿黄 蓝紫青白
40-47  依次代表背景顔色:黑红绿黄 蓝紫青白
 
示例:
echo -e '\033[01;32;41m你\033[00;m我\033[04;30;47m它\033[00;m'
“你” 部分:加粗,绿色字体,红色背景
“我” 部分:无特殊格式
“它” 部分:下划线,黑色字体,白色背景
posted @ 2011-07-24 17:23  范辉  阅读(274)  评论(0编辑  收藏  举报