awk 简单操作

工作总结…

#实验文本
1^I2$
3^I4$
5^I6$

1、列操作

打印第一列
(base) B00000094065z:~ gongel$ cat a | awk '{print $1}'
1
3
5
打印最后一列
(base) B00000094065z:~ gongel$ cat a | awk '{print $NF}'
2
4
6
加一列
(base) B00000094065z:~ gongel$ cat a | awk '{print $0"\ta"}'
1	2	a
3	4	a
5	6	a
加一列(按行操作,多此一举)
'''
shell脚本
cat $1 | while read line
do
    echo $line | awk '{print $0"\ta"}';
done
'''

(base) B00000094065z:~ gongel$ sh ts.sh a
1 2 a
3 4 a
5 6 a

2、行操作

NR为当前处理行
(base) B00000094065z:~ gongel$ cat a | awk '{print NR":"$0}'
1:1	2
2:3	4
3:5	6

3、统计命令(BEGIN/END)

求和
(base) B00000094065z:~ gongel$ cat a|awk '{sum+=$1} END {print "Sum = ", sum}'
Sum =  9
求平均
(base) B00000094065z:~ gongel$ cat a|awk '{sum+=$1} END {print "Average = ", sum/NR}'
Average =  3
求最大值
(base) B00000094065z:~ gongel$ cat a|awk 'BEGIN {max = 0} {if ($1>max) max=$1 fi} END {print "Max=", max}'
Max= 5

4. 删除文件的第一列

方法1 
awk '{$1 = "";print $0}' a.txt | sed 's/^[\t ]*//g'
 
方法2 
cut -d " " -f 2- a.txt
0

docker常见命令

1.docker ps
列出所有运行中容器
-a 列出所有容器(含沉睡镜像);
--before="nginx" 列出在某一容器之前创建的容器,接受容器名称和ID作为参数;
--since="nginx" 列出在某一容器之后创建的容器,接受容器名称和ID作为参数;
-f [exited=<int>] 列出满足
exited=<int> 条件的容器;
-l 仅列出最新创建的一个容器;
--no-trunc 显示完整的容器ID;
-n=4 列出最近创建的4个容器;
-q 仅列出容器ID;
-s 显示容器大小。

2.docker images docker images [options "o">] [name] 列出本地所有镜像。
其中 [name] 对镜像名称进行关键词查询。 -a 列出所有镜像(含过程镜像); -f 过滤镜像,如: -f ['dangling=true'] 只列出满足 dangling=true 条件的镜像; --no-trunc 可显示完整的镜像ID; -q 仅列出镜像ID。 --tree 以树状结构列出镜像的所有提交历史。

3.docker rmi 删除镜像
docker rmi [options "o">] <image>  "o">[image...]
docker rmi nginx:latest postgres:latest python:latest
从本地移除一个或多个指定的镜像
-f 强行移除该镜像,即使其正被使用;
--no-prune 不移除该镜像的过程镜像,默认移除。

4.docker rm 删除容器
docker rm [options "o">] <container>  "o">[container...]
docker rm nginx-01 nginx-02 db-01 db-02
sudo docker rm -l /webapp/redis
-f 强行移除该容器,即使其正在运行;
-l 移除容器间的网络连接,而非容器本身;
-v 移除与容器关联的空间。

5.从image创建container
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
docker run -it -d --net=host --name=xxx_name -v /mnt/xxx/:/xxx image /bin/bash
-v /dev/shm:/dev/shm (和宿主机共享内存)

6.进入容器 
docker exec -it 775c7c9ee1e1 /bin/bash 退出容器后容器不会停止 
docker attach 44fc0f0582d9 多个窗口同时使用该命令进入该容器时,所有的窗口都会同步显示

7.从container创建image
docker commit container-id image-name[:tag]

8.docker start|stop|restart
docker start|stop "p">|restart [options "o">] <container>  "o">[container...]
启动、停止和重启一个或多个指定容器。
-a 待完成
-i 启动一个容器并进入交互模式;
-t 10 停止或者重启容器的超时时间(秒),超时后系统将杀死进程。

9.docker inspect
docker instpect nginx:latest
docker inspect nginx-container
检查镜像或者容器的参数,默认返回 JSON 格式。
-f 指定返回值的模板文件。

10.docker version 显示 Docker 版本信息 

11.docker info 显示 Docker 系统信息,包括镜像和容器数 

12.docker search 
docker search [options "o">] term 
docker search -s django 从 Docker Hub 中搜索符合条件的镜像 --automated 只列出 automated build 类型的镜像; --no-trunc 可显示完整的镜像描述; -s 40 列出收藏数不小于40的镜像。 4.docker pull docker pull [-a "o">] [user/ "o">]name[:tag "o">] docker pull laozhu/telescope:latest 从 Docker Hub 中拉取或者更新指定镜像。 -a 拉取所有 tagged 镜像 

ref:docker常用命令

0

Linux(ubuntu)修改root用户密码(recovery mode)

系统:Ubuntu 18.04.2 LTS

网上一般都是说开机长按esc或者shift键,**的linux貌似并非如此,附上一张电脑开机图。

我的操作为:

1.进入操作

1.1 按del键进入Setup(类似于BIOS)

1.2 直接按esc退出Setup

1.3 接着立马按esc,接下来出现一系列,按图操作吧

2.选择ubuntu告警选择项,按enter进入

3.上下键选择recovery mode不要按回车,按’e’键来编辑启动项

4.ro recovery nomodeset,将之替换为rw single init=/bin/bash,如果ro recovery nomodeset后面还有内容,全部删掉(删到行尾,下面两行别删)

5.修改完成后,按Ctrl+xF10进行引导,引导一会后会进入单用户模式

6.后面就是root用户了,可以passwd创建root密码了

ref:Ubuntu-忘记密码后进入单用户模式强制修改密码

0

Linux为普通用户sudo权限

1.切换为root权限
su

2.修改/etc/sudoers文件权限为777
chmod 777 /etc/sudoers

3.文件中找到root  ALL=(ALL) ALL,在该行下添加提升权限的用户信息,如:
root    ALL=(ALL)       ALL
user    ALL=(ALL)       ALL
格式为:用户名    网络中的主机=(执行命令的目标用户)    执行的命令范围

4.保存退出,并恢复/etc/sudoers的访问权限为440
chmod 440 /etc/sudoers

5.切换到普通用户
exit

注意:

1.一定要知道root用户的密码,否则第4步无法操作,因为此时sudo已经无效(sudo: 无法初始化策略插件)

2.新买的机器一定要添加root用户

3.不知道root密码的用户可以强制修改

参考:

用户不在sudoers文件中的解决方法

 

 

0

Linux新建用户并增加home目录以及指定shell

1.添加用户名
sudo useradd username -m (-m 相当于会创建对应的用户home目录)

2.添加用户的密码
sudo passwd username (为用户username设置密码)

3.设置用户的shell
sudo usermod -s /bin/bash username (指定shell,否则会非常不便于终端操作)
# 如果没有上述操作回到导致 /home/user/.Xauthority does not exist

ref:/usr/bin/xauth: file /home/user/.Xauthority does not exist

0