Linux使用教程

文件处理

// 查看单个文件
* 有加号代表从某行开始,没有加号则是多少行
tail -n 1000:显示最后1000行
tail -n +1000:从1000行开始显示,显示1000行以后的
* 显示filename文件的3000-3999行
cat filename | tail -n +3000 | head -n 1000
* 显示filename文件的1000-3000行
cat filename | head -n 3000 | tail -n +1000


// 比较文件
diff a.txt b.txt


// 搜索
* 搜索单个文件( / 表示从根目录搜索  . 表示从当前目录搜索)
find -name
$ find / -name a.txt  

* 搜索字符串test,在file文件中搜索
*          -r:递归搜索,
*         -n:显示行号
*          -i:忽略字符串大小写,
*         -v:取反,表示不包含该字符串的搜索
*         -w:精准匹配,可在一定程度上提升搜索效率
$ grep -n "test" file

* wc -l : 统计行数,一般用于管道符连接
$ grep -rni "this" | wc -l

* 正则搜索 -P:正则;\d:可以搜索数字0-9
$ grep -P "a\d" file

* 显示grep出来行的前后几行,前(-B)  前+后(-C) 后(-A)
$ grep -n "123" file -A 3


// 排序
* 顺序排不加r; 按照大小: -S
$ ls -lrt


// 单个文件内部处理
* 删除文件中每行开头的前5个字符,并重定向到new_demo.txt, 不修改源文件demo.txt
	demo.txt:
		This is ubuntu demo1 text
		This is ubuntu demo2 text
	new_demo.txt:
 		is ubuntu demo1 text
 		is ubuntu demo2 text
$ sed 's/^.\{5\}//g' demo.txt > new_demo.txt
* 在第1行之后新增1行 add one line after one line
	demo.txt:
		This is ubuntu demo1 text
		This is ubuntu demo2 text
	new_demo.txt:
 		This is ubuntu demo1 text
 		add one line after one line
		This is ubuntu demo2 text
$ sed -e 1a\add\ one\ line\ after\ one\ line demo.txt > new_demo.txt

查看

关键字段:ls, tac,cat, more, less, head tail
在这里插入图片描述

创建删除拷贝

关键字段:mkdir, touch, ln, rm, cp, mv

# 删除过滤后的文件
123456
123111
123444
123432ccc
find . -name "123*"| grep -v "ccc"| xargs rm -r  # 只保留123432ccc,其他文件删除
find . -name "123*"| grep -v "ccc"| xargs -I{} cp -rp {} /home/fc  # 拷贝过滤出来的数据到某处,借助-I{}和{}

在这里插入图片描述

搜索

关键字段:find, grep, which

# 分隔符-F
awk -F ':' '{print $1}' file

# 计算每一行的累加和
awk -F ' ' '{sum=0; for(i=1;i<4;i++) {sum+=$i} print sum}' file

# 计算第一列的累加和
awk '{sum+=$1}END{print sum}' file

在这里插入图片描述

权限管理

* 更改文件权限:chmod
 -R 改变多层权限
$ chmod -R 777 /home/demo

* 更改目录所属用户,用户需要在系统中/etc/passwd
$ chown root  /home/demo

* 更改目录所属用户组,用户组需要在系统中/etc/group
$ chgrp root  /home/demo

shell

定时执行

# shell定时
# 定时任务所在文件/etc/crontab
# ubuntu 重设crontab -e的默认编辑器:$ select-editor
$ crontab -e  # 添加定时任务或者可以直接编辑/etc/crontab
$ crontab -l  # 查看定时任务
$ crontab -r  # 删除所有的定时任务
日志记录: /var/log/cron

# cron 服务的启动与停止
# 1)service cron start  /*启动服务*/
# 2)service cron stop /*关闭服务*/
# 3)service cron restart /*重启服务*/
# 4)service cron reload /*重新载入配置*/
# 5)service cron status /*查看crond状态*/ 

定时任务中使能环境变量(用户登陆Linux操作系统的时候,"/etc/profile", "~/.bash_profile"等配置文件会被自动执行,crontab定时任务一般不会自动执行,需要任务中配置)
source /etc/profile  		# 此文件为系统的每个用户设置环境信息
source ~/.bash_profile		# 是交互式、login 方式进入 bash 运行的

~/.bash_profile 内容一般为:
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

文件合并

# 文件合并,文件按行合并,用于处理csv文件很方便
# file1.csv  file2.csv          result:
#    1          one                     1,one
#    2          two                     2,two
#    3          three                   3.three
$ paste -d ',' file1.csv file2.csv  # -d表示分隔符

脚本交互expect

安装:sudo apt install expect
执行脚本:./script.sh 脚本内容如下:

#!/bin/expect

set timeout 30                                # 设置为-1为永不超时
spawn su root                                 # spawn是执行的命令
expect "Password:"                            # 命令行屏幕出现的内容
send "root\n"                                 # 输入的命令
expect "#"                                    # 屏幕出现的值  
send "echo -e  'this is expect script'\n"     # 执行命令行echo内容
interact

数组遍历与存储

# 遍历
run_case=("case1.py"
		  "case2.py")
for(( i=0;i<${#run_case[@]};i++ )) do
	echo "${run_case[i]}"
	python3 ${run_case[i]}
done

# 存储,从txt里面读取存储为数组
run_case=()
while read line; do
	run_case+=($line)
done < ./test.txt

参数

全部参数: $*
参数个数:$#
第几个参数:$1

shell并行python

#!/bin/bash

# 通过符号&实现1.py和2.py并行
python3 1.py &
python3 2.py &

# 等待脚本全部结束
wait
echo "all finish"

请添加图片描述

vim的使用

vim分为一般模式,编辑模式,命令行模式。使用命令vim file(文件名),打开文件进入一般模式

一般模式 编辑模式 命令行模式 【i】 【Esc】 [:] 一般模式 编辑模式 命令行模式
* 命令行模式:显示行号
$ :set nu
* 命令行模式:跳转到某一行(例如跳转到第10行)
# 文件内容清空
$ :%d
$ :10
* 命令行模式:搜索字符串a
$ /a
* 查看下/上一个匹配
键盘按下n/N

* 跳转
* 跳到首行
* :1  或者 gg
* 跳到尾行
* :$  或者 Shift + g

拷贝文件
拷贝第1-12行的内容到13行后命令行模式 :1,12 co 13
删除文件
删除第10到11行命令行模式 :10,11d
行首添加
10-15行首添加字符#:10,15 s/^/#
行尾添加
10-15行尾添加字符#:10,15 s/$/#
列删除

按v,进入横向选择列模式,左右选择列
按ESC
按Ctrl + v进入列编辑,向上或向下移动光标,选择行
按d,删除

修改颜色
可选颜色路径/usr/share/vim/vim81/colors
在这里插入图片描述
可修改内容:在文件/etc/vim/vimrc最后添加colorscheme 颜色(blue)
在这里插入图片描述
echo -e "\033[32m绿色\033[0m"

磁盘挂载(不分区)

  1. 查看磁盘信息
    fdisk -l
  2. 如果需要分区的话,还需要进行分区,然后分区进行挂载
  3. 格式化磁盘
    mkfs.ext4 /dev/sdb
  4. 挂载,使用命令df -h查看是否挂载成功
    挂载之前先备份/home下的文件,再删除/home下文件,挂载之后再拷贝回/home,删除备份的文件
    mount /dev/sdb /home
  5. 持续挂载
    blkid # 查看UUID
    vim /etc/fstab # 添加UUID
    UUID=dsahj-dsahj-ddsga-h9ffb34627 /home ext4 defaults 0 0
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值