linux
文章目录
前言
文件的查看
cat 从第一行开始显示文件的内容
-A :相当于 -vET 的整合选项,可列出一些特殊字符而不是空白而已;
-v :列出一些看不出来的特殊字符
-E :将结尾的断行字节 $ 显示出来;
-T :将 [tab] 按键以 ^I 显示出来;
-b :列出行号,空白行不标行号
-n :列出行号,连同空白行也会有行号tac从最后一行显示文件的内容
nl 显示的时候显示行号
-b :指定行号指定的方式,主要有两种:
-b a :表示不论是否为空行,也同样列出行号(类似 cat -n);
-b t :如果有空行,空的那一行不要列出行号(默认值);
-n :列出行号表示的方法,主要有三种:
-n ln :行号在荧幕的最左方显示;
-n rn :行号在自己栏位的最右方显示,且不加 0 ;
-n rz :行号在自己栏位的最右方显示,且加 0 ;
-w :行号栏位的占用的位数more 一页一页的显示文件的内容
空白键 (space):代表向下翻一页;
Enter :代表向下翻『一行』;
/字串 :代表在这个显示的内容当中,向下搜寻『字串』这个关键字;
:f :立刻显示出档名以及目前显示的行数;
q :代表立刻离开 more ,不再显示该文件内容。
b 或 [ctrl]-b :代表往回翻页,不过这动作只对文件有用,对管线无用。less与more类似但可以向前翻页
空白键 :向下翻动一页;
[pagedown]:向下翻动一页;
[pageup] :向上翻动一页;
/字串 :向下搜寻『字串』的功能;
?字串 :向上搜寻『字串』的功能;
n :重复前一个搜寻 (与 / 或 ? 有关!)
N :反向的重复前一个搜寻 (与 / 或 ? 有关!)
q :离开 less 这个程序;head只看头几行
tai只看尾部的几行
文件管理
输出重定向
可以将文本保存在指定的文件中
案例将当前时间保存在date.txt中
注意一个>是输出重定向再次向这个文件存储数据会覆盖原来的数据,两个>>表示的是追加不会覆盖原来的数据
管道
一个命令的输出可以作为另一个命令的输入
| 是从左端写入到右端
案例 查看小说并统计小说的字数
清屏:clear
建立链接文件
软连接: ln -s 源文件 链接文件
软连接类似于快捷方式
硬链接只能链接普通文件不能链接目录
文本搜索:grep
grep允许对文本文件进行模式查找,如果找到匹配模式 grep打印包含该模式的所有行
案例 查看小说中所有包含书店关键字的行
grep 格式为
grep [-选项] ‘搜索内容串’ 文件名
在grep命令中输入字符串参数时,最好引号或双引号括起来。例如:grep ‘sad’ 1.txt
-r进行递归查找
查找文件
- find ./ -name test.sh 查找当前目录下所有名为test.sh的文件
- find ./ -name ‘*.sh’ 查找当前目录下所有后缀为.sh的文件
- find ./ -name “[A-Z]*” 查找当前目录下所有以大写字母开头的文件
- find /tmp -size 2M 查找在/tmp 目录下等于2M的文件
- find /tmp -size +2M 查找在/tmp 目录下大于2M的文件
- find /tmp -size -2M 查找在/tmp 目录下小于2M的文件
- find ./ -size +4k -size -5M 查找当前目录下大于4k,小于5M的文件
- find ./ -perm 0777 查找当前目录下权限为 777 的文件或目录
locate 查找
loate 查找的文件的名字
locate与find的区别是find是locate 只在/var/lib/slocate资料库中找 find是去硬盘查找locate的速度比find快,它并不是真的查找,而是查数据库,一般文件数据库在/var/lib/mlocate/mlocate.db中,所以locate的查找并不是实时的,而是以数据库的更新为准,一般是系统自己维护,也可以手工升级数据库 ,命令为:
updatedb
which
echo
向控制台输出内容
-e 表示解析转义字符
-E表示不解析
修改主机名
centos7
查找$PATH中设置命令以及安装文件目录所在位置
文件/目录的所有者,
- 查看文件的所有者:ls -ahl
前边哪一列就是显示root说明这个文件的所有者是root - 修改文件所有者: chown 用户名 文件名
- 应用案例 :使用root创建一个文件apple.txt然后将其所有者修改为zhangsan
提示:以下是本篇文章正文内容,下面案例可供参考
组的创建
基本指令
- groupadd 组名创建一个组
- usermod -g 用户组 用户名 修改用户所在的组 注:-g|–gid,修改用户的gid,该组一定存在
- usermod -a -G 用户组 用户名 把用户添加进某个组 a|–append,把用户追加到某些组中,仅与-G选项一起使用G|–groups,把用户追加到某些组中,仅与-a选项一起使用
其他组
` 除文件的所有者和所有组的用户外,系统的其他用户都是文件的其他组
改变用户所在的组
- 改变用户所在组
- usermod -g 组名 用户名
- usermod -d 目录名 用户 名 改变该用户登录的初始目录
- 注意:用户需要有进入到新目录的权限
查看组
这个是查看所有的的组
cat /etc/group
看指定的组可以使用过滤
cat /etc/group | grep 指定的组名字
二、权限的基本介绍
ls-l中显示的内容如下:
-开头的文件表示是一个普通文件
- 0-9为说明 第0位确定文件的类型
- l是链接 相当于windows的快捷方式
- d是目录 相当于windowns的文件夹
- c是字符设备文件例如鼠标键盘
- b是块设备比如硬盘
- 第1-3位确定所有者(该文件的所有者)拥有该文件的权限 r代表的是read w代表的是write x代表的是excute可以被执行
- 第4-6位确定所属的组(同用户的组)拥有该文件的权限
- 第7-9位确定其他用户拥有该文件的权限
rwx详解
案例
案例演示
修改权限chmod
- 基本说明: 通过chmod指令可以修改文件或者目录的权限
- 通过+ - = 变更权限 u:所有者 g:所有组 a:所有人(u,g,o的总和)
- chmod u=rwx,g=rx,o=x 文件/目录名 u=rwx代表给文件/目录授予读写执行的权限 g= rx授予组读写的权限 o=x 代表给其他人赋予执行权限
- chmod o+w 文件/目录名 代表给这个文件的其他用户授予写的权限
- chmod a-x 文件/目录名 代表吧所有人的执行权限去掉
第二种方式通过数字进行修改
修改文件所有者
chown newowner 文件/目录 改变所有者 newowne指的是你的新的所有者
chown newowner:newgroup 文件/目录 改变所有者和所在组
-R 如果是目录则使其下所有的文件或目录递归生效
讲文件夹改变所有者
修改文件/目录所在的组-chgrp
charp newhgroup 文件/目录 改变所在组
加上-R代表递归
案例演示将a.txt文件所在的组修改为wuqian
将hello文件夹及其子文件的所有组都修改为wuqian
警察和土匪
- 文件的所有者
- 一般为文件的创建者谁创建了这个文件谁就是文件的所有者
- 查看文件的所有者的指令是ls -ahl
红线圈住的那一列表明文件的拥有者- 修改文件的拥有者 chown 用户名 文件名
- 应用实例使用root用户创建一个iphone.txt 将所有者修改为zhangsong
定时任务调度
任务调度:是指系统在某个时间执行的特定的命令或者是程序
任务调度分类:1系统工作:有些重要的工作必须周而复始地执行,如病毒扫描等个别用户的工作:个别用户可能希望执行某些程序,比如对mysql数据库的备份
在使用之前必须使用 crontab-e进行任务的编辑在这个文件中编写执行的代码
基本语法
crontab[选项]常用选项
-e编辑任务 -l 查询任务 -r删除当前用户的所有任务
可以进行定时任务
![(https://img-blog.csdnimg.cn/f0cb1242cced4bb19355e80a8f7a358a.png)
案例 每分钟执行一次
第一个 /1代表的是代表的是每隔一分钟
第二个 若果只写 *表示每个小时都执行
—
案例1每隔一分钟就将当前的日期信息追加到 /tmp/mydate文件中
/1*** date>>/tmp/mydate.txt
crond相关指令
- crontab -r :终止任务调度
- crontab -l 列出当前有哪些任务调度
-service crond restart 重启任务调度
at定时任务
基本介绍at命令是一次性定时任务at的守护进程atd会以后台模式运行,检查作业队列来运行默认情况下,atd守护进程每60秒检查作业队列
有作业时,会检查作业运行时间如果时间与当前时间匹配,则运行此作业
at命令是一次性定时计划任务,执行完一个任务后不再执行此任务
在使用at命令的时候,一定要保证atd进程的启动,可以使用相关指令进行查看 ps-ef 是查看当前有哪些进程正在执行 ps-ef | grep atd
at命令格式
at [选项] [时间]
Ctrl +D 结束at命令的输入 需要输入两次才可以退出
案例1:2天后的下午5点执行/bin/ls/home
在编写的时候ctrl+退格键进行删除一个字符
案例2使用atq命令查看系统中有没有执行的工作任务
案例3 明天下午5点输出时间到指定文件
案例4 2分钟后输出时间到指定的文件
删除已经设置好的的任务
Linux分区
原理介绍
- Linux无论有几个分区,分给哪一个目录使用归根结底只有一个根目录,一个独立且唯一的文件结构,Linux中每个分区都是用来组成整个文件系统的一部分
- linux采用了一种叫载入的处理方法它的整文件系统中包含了一整套的文件和目录,且将一个分区和一个目录联系起来,这时要载入的一个分区将使它的存储空间在一个目录获得
查看设备挂载情况:
lsblk 或者是lsblk-f
- 经典案例
Linux管道命令
wc统计字数
wc [-lwm] [filename]
-l: 统计行数
-w:统计英文单词
-m:统计字符数
默认情况下会将指定文件的行数字数以及字节数计算出来
cut 列选取命令
sort排序
sort [-fbMnrtuk] [file or stdin]
-f :忽略大小写的差异,例如 A 与 a 视为编码相同;
-b :忽略最前面的空格符部分;
-M :以月份的名字来排序,例如 JAN, DEC 等等的排序方法;
-n :使用『纯数字』进行排序(默认是以文字型态来排序的);
-r :反向排序;
-u :就是 uniq ,相同的数据中,仅出现一行代表;
-t :分隔符,默认是用 [tab] 键来分隔;
-k :以哪个区间 (field) 来进行排序
uniq 去重
选项与参数:
-i :忽略大小写字符的不同;
-c :进行计数
-u :只显示唯一的行
该命令用于排序完之后对结果进行去重
排序文件默认是去重
同时输出多个文件
从标准输入设备读取数据,将其内容输出到标准输出设备,同时保存成文件。
一般情况下用重定向实现,需要同时输出多个文件时可以使用该命令。
参数:
-a或–append 附加到既有文件的后面,而非覆盖它.
将输出同时保存到多个文件中,同时将输出内容显示到控制台:
tr替换指定的字符
不指定参数的时候表示替换指定的字符为另一个字符支持指定的字符集合。
参数说明:
-d, --delete:删除指定的字符
-s, --squeeze-repeats:缩减连续重复的字符成指定的单个字符
字符集合的范围:
\NNN 八进制值的字符 NNN (1 to 3 为八进制值的字符)
\ 反斜杠
\a Ctrl-G 铃声
\b Ctrl-H 退格符
\f Ctrl-L 走行换页
\n Ctrl-J 新行
\r Ctrl-M 回车
\t Ctrl-I tab键
\v Ctrl-X 水平制表符
CHAR1-CHAR2 :字符范围从 CHAR1 到 CHAR2 的指定,范围的指定以 ASCII 码的次序为基础,只能由小到大,不能由大到小。
[CHAR*] :这是 SET2 专用的设定,功能是重复指定的字符到与 SET1 相同长度为止
[CHAR*REPEAT] :这也是 SET2 专用的设定,功能是重复指定的字符到设定的 REPEAT 次数为止(REPEAT 的数字采 8 进位制计算,以 0 为开始)
[:alnum:] :所有字母字符与数字
[:alpha:] :所有字母字符
[:blank:] :所有水平空格
[:cntrl:] :所有控制字符
[:digit:] :所有数字
[:graph:] :所有可打印的字符(不包含空格符)
[:lower:] :所有小写字母
[:print:] :所有可打印的字符(包含空格符)
[:punct:] :所有标点字符
[:space:] :所有水平与垂直空格符
[:upper:] :所有大写字母
[:xdigit:] :所有 16 进位制的数字
[=CHAR=] :所有符合指定的字符(等号里的 CHAR,代表你可自订的字符)
缩减连续的重复字符
# linux常用命令
1.进入到用户根目录
cd ~ 或 cd
2.查看当前所在目录
pwd
3.进入到hadoop用户根目录
cd ~hadoop
4.返回到原来目录
cd -
5.返回到上一级目录
cd ..
6.查看hadoop用户根目录下的所有文件
ls -la
7.在根目录下创建一个hadoop的文件夹
mkdir /hadoop
8.在/hadoop目录下创建src和WebRoot两个文件夹
分别创建:mkdir /hadoop/src
mkdir /hadoop/WebRoot
同时创建:mkdir /hadoop/{src,WebRoot}
进入到/hadoop目录,在该目录下创建.classpath和README文件
分别创建:touch .classpath
touch README
同时创建:touch {.classpath,README}
查看/hadoop目录下面的所有文件
ls -la
在/hadoop目录下面创建一个test.txt文件,同时写入内容"this is test"
echo "this is test" > test.txt
查看一下test.txt的内容
cat test.txt
more test.txt
less test.txt
向README文件追加写入"please read me first"
echo "please read me first" >> README
将test.txt的内容追加到README文件中
cat test.txt >> README
拷贝/hadoop目录下的所有文件到/hadoop-bak
cp -r /hadoop /hadoop-bak
进入到/hadoop-bak目录,将test.txt移动到src目录下,并修改文件名为Student.java
mv test.txt src/Student.java
在src目录下创建一个struts.xml
> struts.xml
删除所有的xml类型的文件
rm -rf *.xml
删除/hadoop-bak目录和下面的所有文件
rm -rf /hadoop-bak
返回到/hadoop目录,查看一下README文件有多单词,多少个少行
wc -w README
wc -l README
返回到根目录,将/hadoop目录先打包,再用gzip压缩
分步完成:tar -cvf hadoop.tar hadoop
gzip hadoop.tar
一步完成:tar -zcvf hadoop.tar.gz hadoop
将其解压缩,再取消打包
分步完成:gzip -d hadoop.tar.gz 或 gunzip hadoop.tar.gz
一步完成:tar -zxvf hadoop.tar.gz
将/hadoop目录先打包,同时用bzip2压缩,并保存到/tmp目录下
tar -jcvf /tmp/hadoop.tar.bz2 hadoop
将/tmp/hadoop.tar.bz2解压到/usr目录下面
tar -jxvf hadoop.tar.bz2 -C /usr/
进程
进程查看命令:ps
-a 显示终端上的所有进程,包括其他用户的进程
-u 显示进程的详细状态
-x 显示没有控制终端的进程
-w 显示加宽,以便显示更多的信息
-r 只显示正在运行的进程
- ps常见用法
- ps aux:显示这个操作系统上所有的进程信息,相当于一个拍照,不能动态显示
- ps-ef 以全格式显示当前的所有进程
- -e显示所有进程
- -f全格式
- ps -ef|grep xxx 查看进程号
总结
提示:这里对文章进行总结:
例如: /以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。