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
目 录 一、Linux基础 5 1.什么是Linux? 5 2.什么是自由软件、GNU和GPL? 5 3.从技术上说,Linux有什么优点? 5 4.我需要学习Linux吗? 5 5.Linux会取代Windows吗? 6 6.Linux与WindowsNT谁更好? 6 7.Linux与UNIX有什么不同? 6 8.Linux能应用在哪些领域呢? 6 9.Linux作系统发展现状和未来如何? 6 10.Linux对软件业有什么影响呢? 6 11.我该如何学习Linux呢? 6 12.网上有哪些Linux资源? 7 13.RedHat Linux 6.5和Linux 2.4哪个版本高? 7 14.Linux的发行版有哪些? 7 15.RedHat Linux有哪些特点? 7 16.TurboLinux有哪些特点? 7 17.BluePoint、Xterm、RedFlag三种中文Linux谁好? 7 18.哪种版本Linux适合我? 7 19.如何得到Linux? 8 二、用户和用户组管理 8 ※一、Linux系统用户账号的管理 8 ※1、添加新的用户账号使用useradd命令,其语法如下: 8 ※2、删除帐号 8 ※3、修改帐号 8 ※4、用户口令的管理 9 ※二、Linux系统用户组的管理 9 ※1、增加一个新的用户组使用groupadd命令。其格式如下: 9 ※2、如果要删除一个已有的用户组,使用groupdel命令,其格式如下: 9 ※3、修改用户组的属性使用groupmod命令。其语法如下: 9 ※4、如果一个用户同时属于多个用户组,那么用户可以在用户组之间切换,以便具有其它用户组的权限。用户可以在登录后,使用命令newgrp切换到其它用户组,这个命令的参数就是目的用户组。 10 ※三、与用户账号有关的系统文件 10 ※1、/etc/passwd文件是用户管理工作涉及的最重要的一个文件。 10 ※2、/etc/shadow中的记录行与/etc/passwd中的一一对应,它由pwconv命令根据/etc/passwd中的数据自动产生。 11 ※3、用户组的所有信息都存放在/etc/group文件中。 11 四、赋予普通用户特殊权限 12 三、文件系统结构和基本文件处理 13 ※1.文件类型 13 ※2.文件系统结构 14 ※3.主目录和当前工作目录 14 ※4.路径、绝对路径和相对路径 15 ※5.查看当前目录pwd 15 ※6.浏览文件系统cd 15 ※7.创建和删除文件(touch和rm) 15 ※8.创建和删除目录(mkdir 和 rmdir) 16 ※9.查看目录内容和文件属性ls 17 ※10.确定文件类型file 18 ※11.文件的复制和移动(cp 和 mv) 18 ※12.查看文件内容cat、head、tail、more、less 19 ※13.统计文件大小wc 21 14./etc文件系统 22 15./dev文件系统 22 16./usr文件系统 23 17./var文件系统 23 18./proc文件系统 24 四、高级文件处理 24 ※1.文件比较diff 24 ※2.删除重复行uniq 25 3. 不唯一 26 4. 对特定域进行测试 26 ※5.文件排序sort 26 ※6.文件的查找find 30 ※1、使用name选项 31 ※2、用perm选项 31 ※3、忽略某个目录 31 ※4、使用user和nouser选项 31 ※5、使用group和nogroup选项 32 ※6、按照更改时间或访问时间等查找文件 32 ※7、查找比某个文件新或旧的文件 32 ※8、使用type选项 32 ※9、使用size选项 33 ※10、使用depth选项 33 ※11、使用混合查找方式查找文件 33 ※7.搜索文件内容grep 34 ※2. grep正则表达式元字符集(基本集) 34 ※8.cut and paste 35 ※9.文件合并jion 37 ※10.文件分割split 38 ※11.文件的压缩 38 ※1.gzip 、zcat命令 39 ※2.bzip2、bzcat 39 ※3.tar (打包文件或目录) 40 ※12.设备挂载mount 40 ※1.制作ISO文件 40 ※2.挂接移动硬盘 41 ※3.挂接U盘 42 五、文件安全与权限 42 ※1.文件安全策略 42 ※2.文件权限位 42 ※3.文件类型 43 ※4.改变权限chmod 43 ※4.1符号模式 43 ※4.2绝对模式 44 ※目录 44 ※5.chown和chgrp 44 ※6.umask 45 7.Set UID、Set GID、Sticky Bit 46 8.文件隐藏属性 47 9.lsattr(显示文件的隐藏属性) 48 10.SUID和SGID的详细解析 48 11.Linux病毒 49 六、Shell 50 1.内核与Shell 50 ※2.shell的功能 50 3.输入和输出 52 ※3.1 echo 52 ※3.2 read 54 ※3.3 cat 54 ※3.4 Tee 55 ※4.输入输出复位向、管道 55 5.变量 58 5.1.什么是shell变量 58 ※5.2.本地变量 58 ※5.3.环境变量 64 ※5.4.位置变量参数 67 ※七、Linux 进程管理 69 1、程序和进程 69 1.1 进程分类; 69 1.2 进程的属性; 69 1.3 父进程和子进程; 69 2、进程管理; 69 2.1 ps 监视进程工具; 69 2.2 pgrep 71 3、终止进程的工具 kill 、killall、pkill、xkill; 71 4、top 监视系统任务的工具; 73 5、进程的优先级:nice和renice; 73 八、脚本 77 ※1. Linux 脚本编写基础 77 ※1.1 开头 77 ※1.2 注释 77 ※1.3 变量 77 ※1.4 环境变量 77 ※2.条件判断 77 ※test 文件运算符 78 ※字符串比较运算符 80 ※整数比较运算符 81 ※布尔运算符 83 3.流程控制 86 ※3.1 if 86 ※3.2.case 87 ※3.3. selsect 88 ※3.4.loop 89 ※3.5. Here documents 90 ※3.6函数 90 ※4.命令行参数 91 九、shell 十三问 91 二、关于{}和() 91 ※七、 exec 跟 source 差在哪? 这次先让我们从 CU Shell 版的一个实例贴子来谈起吧:例中的提问是: 92 八、 ( ) 与 { } 差在哪? 95 ※九、 $(( )) 与 $( ) 还有${ } 差在哪? 97 ※十、 $@ 与 $* 差在哪? 101 ※十一、 && 与 || 差在哪? 103 ※Part-I: Wildcard 112 ※Part-II: Regular Expression 113 ※十、功能最强大的编辑器——vi 117 1.vi的基本状态 117 2.vi的基本操作 117 3.离开vi及存文件 117 4.Command mode功能键列表 117 5.Last line mode下指令简介 118 ※十一、ifconfig 119 十二、write 命令 122 用途: 122 语法: 123 描述: 123 工作站 123 参数 123 标志 124 退出状态 124 示例 124 文件 125 十三、关于 Linux系统中关机命令详细解析 125 1.shutdown 125 2.halt----最简单的关机命令 126 3.reboot 126 4.init 126 十四、软件安装 127 十五、Linux操作系统中备份恢复技术的详解 129 十六、GRUB使用说明 131
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值