[root@centos7 ~]# vim +9 1.txt
[root@centos7 ~]# vim +/qqq 1.txt
[root@centos7 ~]# vim -b /usr/bin/ls
[root@centos7 ~]# vim -d 1.txt 2.txt
:r /etc/hostname
:w /data/hello.txt
:!hostname
:r! free -h
字符编辑
替换
删除
注意:删除的内容会保存在粘贴板,按p可以粘贴
复制
注意:复制后的内容也会保存在粘贴板,按p可以粘贴
改变命令
特殊操作
100iwang,ESC 会粘贴wang100次
上下切换:CTRL+w,↑ CTRL+w,↓
[root@centos7 ~]# vim -o 1.txt 2.txt
左右切换:CTRL+w,← CTRL+w,→
[root@centos7 ~]# vim -O 1.txt 2.txt
[root@centos7 ~]# ll /dev/std*
lrwxrwxrwx. 1 root root 15 7月 24 08:50 /dev/stderr -> /proc/self/fd/2
lrwxrwxrwx. 1 root root 15 7月 24 08:50 /dev/stdin -> /proc/self/fd/0
lrwxrwxrwx. 1 root root 15 7月 24 08:50 /dev/stdout -> /proc/self/fd/1
1、开启两终端窗口,tty命令看第一个终端号
2、第二个窗口输入命令
[root@centos7 ~]# free > /dev/pts/3
[root@centos7 ~]#
3、第一个窗口显示如下:
[root@centos7 ~]# tty
/dev/pts/3
[root@centos7 ~]# total used free shared buff/cache available
Mem: 2028088 249760 78856 3564 1699472 1504260
Swap: 4194300 76288 4118012
如果bigfile该文件正在被某程序读取,那么rm -rf bigfile只是表面删除,磁盘空间并没有释放,此时再执行> bigfile即可释放磁盘空间。
生产中一般日志太大了都用> bigfile此办法清理日志,而不是rm
[root@centos7 data]# dd if=/dev/zero of=./bigfile bs=1M count=50
记录了50+0 的读入
记录了50+0 的写出
52428800字节(52 MB)已复制,0.695109 秒,75.4 MB/秒
[root@centos7 data]# ll bigfile
-rw-r--r--. 1 root root 52428800 7月 25 10:53 bigfile
[root@centos7 data]# ll -h bigfile
-rw-r--r--. 1 root root 50M 7月 25 10:53 bigfile
[root@centos7 data]# > bigfile
[root@centos7 data]# ll -h bigfile
-rw-r--r--. 1 root root 0 7月 25 10:54 bigfile
一个> 表示覆盖,>>两个>是追加
[root@centos7 data]# stat a.log
文件:"a.log"
大小:16 块:8 IO 块:4096 普通文件
设备:803h/2051d Inode:8847 硬链接:1
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
环境:unconfined_u:object_r:etc_runtime_t:s0
最近访问:2019-07-24 15:51:30.467199007 +0800
最近更改:2019-07-24 15:51:28.453199107 +0800
最近改动:2019-07-24 15:51:28.453199107 +0800
创建时间:-
[root@centos7 data]# touch a.log
[root@centos7 data]# stat a.log
文件:"a.log"
大小:16 块:8 IO 块:4096 普通文件
设备:803h/2051d Inode:8847 硬链接:1
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
环境:unconfined_u:object_r:etc_runtime_t:s0
最近访问:2019-07-25 10:59:58.509834591 +0800
最近更改:2019-07-25 10:59:58.509834591 +0800
最近改动:2019-07-25 10:59:58.509834591 +0800
创建时间:-
[root@centos7 data]# stat a
文件:"a"
大小:8 块:8 IO 块:4096 普通文件
设备:803h/2051d Inode:68 硬链接:1
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
环境:unconfined_u:object_r:etc_runtime_t:s0
最近访问:2019-07-24 11:22:49.816547042 +0800
最近更改:2019-07-20 19:51:02.893407098 +0800
最近改动:2019-07-20 19:51:02.893407098 +0800
创建时间:-
[root@centos7 data]# >> a
[root@centos7 data]# stat a
文件:"a"
大小:8 块:8 IO 块:4096 普通文件
设备:803h/2051d Inode:68 硬链接:1
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
环境:unconfined_u:object_r:etc_runtime_t:s0
最近访问:2019-07-24 11:22:49.816547042 +0800
最近更改:2019-07-20 19:51:02.893407098 +0800
最近改动:2019-07-20 19:51:02.893407098 +0800
创建时间:-
[root@centos7 data]# ll all.log xxxx
ls: 无法访问xxxx: 没有那个文件或目录
-rw-r--r--. 1 root root 6 7月 25 11:01 all.log
[root@centos7 data]# ll all.log xxxx > stdout.log 2> stderror.log
[root@centos7 data]# cat stdout.log
-rw-r--r--. 1 root root 6 7月 25 11:01 all.log
[root@centos7 data]# cat stderror.log
ls: 无法访问xxxx: 没有那个文件或目录
ll all.log xxxx &> std.log
或者
ll all.log xxxx > std.log 2>&1
或者
[root@centos7 data]# ll all.log xxxx
ls: 无法访问xxxx: 没有那个文件或目录
-rw-r--r--. 1 root root 6 7月 25 11:01 all.log
[root@centos7 data]# ll all.log xxxx &> std.log
[root@centos7 data]# cat std.log
ls: 无法访问xxxx: 没有那个文件或目录
-rw-r--r--. 1 root root 6 7月 25 11:01 all.log
2>&1 > /dev/null
[root@centos7 ~]# echo {1..100} | tr ' ' '+'
1+2+3+4+5+6+7+8+9+10+11+12+13+14+15+16+17+18+19+20+21+22+23+24+25+26+27+28+29+30+31+32+33+34+35+36+37+38+39+40+41+42+43+44+45+46+47+48+49+50+51+52+53+54+55+56+57+58+59+60+61+62+63+64+65+66+67+68+69+70+71+72+73+74+75+76+77+78+79+80+81+82+83+84+85+86+87+88+89+90+91+92+93+94+95+96+97+98+99+100
[root@centos7 ~]# echo {1..100} | tr ' ' '+' | bc
5050
[root@centos7 ~]# seq -s'+' 100
1+2+3+4+5+6+7+8+9+10+11+12+13+14+15+16+17+18+19+20+21+22+23+24+25+26+27+28+29+30+31+32+33+34+35+36+37+38+39+40+41+42+43+44+45+46+47+48+49+50+51+52+53+54+55+56+57+58+59+60+61+62+63+64+65+66+67+68+69+70+71+72+73+74+75+76+77+78+79+80+81+82+83+84+85+86+87+88+89+90+91+92+93+94+95+96+97+98+99+100
[root@centos7 ~]# seq -s'+' 100 | bc
5050
[root@centos7 ~]# cat /etc/issue | tr [a-z] [A-Z]
CURRENT TERMINEL:\L
CURRENT TIME:\T
CURRENT HOSTNAME:\S
\S
KERNEL \R ON AN \M
[root@centos7 ~]# cat /etc/issue | tr [:lower:] [:upper:]
CURRENT TERMINEL:\L
CURRENT TIME:\T
CURRENT HOSTNAME:\S
\S
KERNEL \R ON AN \M
[root@centos7 ~]# echo 'xt.,l 1 jr#!$mn 2 c*/fe 3 uz 4' | tr -dc ' 0-9'
1 2 3 4
[root@centos7 ~]# file win.txt
win.txt: ASCII text, with CRLF line terminators
[root@centos7 ~]# hexdump -C win.txt
00000000 61 62 63 0d 0a 64 65 66 |abc..def|
00000008
[root@centos7 ~]# tr -d '\r' < win.txt > win2.txt
[root@centos7 ~]# file win2.txt
win2.txt: ASCII text
[root@centos7 ~]# hexdump -C win2.txt
00000000 61 62 63 0a 64 65 66 |abc.def|
00000007
[root@centos7 ~]# cat win2.txt
abc
def
[root@centos7 ~]# cat > win2.txt < hello
> world
> EOF
[root@centos7 ~]# cat win2.txt
hello
world
[root@centos7 ~]# tee win2.txt < hello
> world!
> EOF
hello
world!
[root@centos7 ~]# tee -a win2.txt < i am bob.
> EOF
i am bob.
[root@centos7 ~]# cat win2.txt
hello
world!
i am bob.
[root@centos7 ~]# mail -s hi qqq < win2.txt
[qqq@centos7 ~]$ mail
Heirloom Mail version 12.5 7/5/10. Type ? for help.
"/var/spool/mail/qqq": 1 message 1 new
>N 1 root Thu Jul 25 14:15 20/602 "hi"
& 1
Message 1:
From [email protected] Thu Jul 25 14:15:39 2019
Return-Path:
X-Original-To: qqq
Delivered-To: [email protected]
Date: Thu, 25 Jul 2019 14:15:39 +0800
To: [email protected]
Subject: hi
User-Agent: Heirloom mailx 12.5 7/5/10
Content-Type: text/plain; charset=us-ascii
From: [email protected] (root)
Status: R
hello
world!
i am bob.
[root@centos7 ~]# cat win.txt
abc
def[root@centos7 ~]# cat < win.txt > win.txt
[root@centos7 ~]# cat win.txt
[root@centos7 ~]# ll win.txt
-rw-r--r--. 1 root root 0 7月 25 14:18 win.txt
win.txt如果为空不会有任何事,如果win.txt不为空,就麻烦了,执行不到1s我便CTRL+C
[root@centos7 ~]# echo 1 > win.txt
[root@centos7 ~]# ll win.txt
-rw-r--r--. 1 root root 2 7月 25 14:19 win.txt
[root@centos7 ~]# cat < win.txt >> win.txt
^C
[root@centos7 ~]# ll win.txt
-rw-r--r--. 1 root root 990436 7月 25 14:19 win.txt
2>&1 | 等于 |& 表示如果有错就重定向到标准输出
[root@centos7 ~]# cat /etc/fst | tr [a-z] [A-Z]
cat: /etc/fst: 没有那个文件或目录
[root@centos7 ~]# cat /etc/fst 2>&1 | tr [a-z] [A-Z]
CAT: /ETC/FST: 没有那个文件或目录
[root@centos7 ~]# cat /etc/fst |& tr [a-z] [A-Z]
CAT: /ETC/FST: 没有那个文件或目录
[root@centos7 ~]# echo "obase=2;12" | bc
1100
[root@centos7 ~]# echo "obase=2;127" | bc
1111111
1、使用tr命令加随机数生成设备urandom
[root@centos7 ~]# cat /dev/urandom | tr -dc 'a-zA-Z0-9' | head -c20
uqst41VFGIDrwmusM1k2[root@centos7 ~]#
2、使用openssl
[root@centos7 ~]# openssl rand -base64 20
ihgyRWEJscwOj7Gm82ZYElBcxm4=
可以表示一个输入或输出流
1、https://raw.githubusercontent.com/uscwifi/scripts/master/nginx-install.sh是一个脚本,如果想在本地执行该脚本,一般需要下载下来。下面方法为curl访问到脚本的内容,bash -表示将curl的输出流作为自己的参数
[root@centos7 ~]# curl https://raw.githubusercontent.com/uscwifi/scripts/master/nginx-install.sh | bash -
2、打包文件
tar -cvf - /etc表示将/etc目录打包,-为输出流,不写文件名;tar -xvf - 表示解压文件,-将管道前面的输出流作为自己的输入流;-C /tmp表示解压到/tmp目录
[root@centos7 ~]# tar -cvf - /etc |tar -xvf - -C /tmp
用户名:密码:UID:GID:注释说明:家目录:SHELL
用户名:加密了的密码:最后一次更改密码的日期:密码的最小年龄:密码最大年龄:密码警告时间段:密码禁用期:账户过期日期,保留字段
1、查看qqq用户的passwd文件记录
[root@centos7 ~]# getent passwd qqq
qqq:x:1000:1000:qqqq,it,10010,10086:/home/qqq:/bin/bash
2、查看qqq用户的group文件记录
[root@centos7 ~]# getent group qqq
qqq:x:1000:qqq
3、查看qqq用户的shadow
[root@centos7 ~]# getent shadow qqq
qqq:$6$yb2wPd/6dOY1ELLQ$M0DwUcC0XrYNDGPb.cgXBhZ4H7PLzFeO.Us1NrNPqLYgB.8ybFfxBNgqYKBLzFhScG7iK1YvcQ7XyItd6qai9.::0:99999:7:::
[root@centos7 ~]# finger qqq
Login: qqq Name: qqqq
Directory: /home/qqq Shell: /bin/bash
Office: it, x1-0010 Home Phone: x1-0086
Last login 四 7月 25 14:16 (CST) on pts/6
Mail last read 四 7月 25 14:17 2019 (CST)
No Plan.
usermod -aG添加附加组不影响原来的组
[root@centos7 ~]# id qqq
uid=1000(qqq) gid=1000(qqq) 组=1000(qqq)
[root@centos7 ~]# usermod -aG wheel qqq
[root@centos7 ~]# id qqq
uid=1000(qqq) gid=1000(qqq) 组=1000(qqq),10(wheel)
附加组为空即可
[root@centos7 ~]# id qqq
uid=1000(qqq) gid=1000(qqq) 组=1000(qqq),10(wheel)
[root@centos7 ~]# usermod -G '' qqq
[root@centos7 ~]# id qqq
uid=1000(qqq) gid=1000(qqq) 组=1000(qqq)
[root@centos7 ~]# echo 123456 | passwd --stdin wang
更改用户 wang 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@centos7 ~]# cat passwd.list
wang:123456
zhang:1234567
[root@centos7 ~]# cat passwd.list | chpasswd
[root@centos7 ~]# echo -e "12345678\n12345678" | passwd zhang
更改用户 zhang 的密码 。
新的 密码:无效的密码: 密码未通过字典检查 - 过于简单化/系统化
重新输入新的 密码:passwd:所有的身份验证令牌已经成功更新。