linux命令:du、sort、more、cat、less一个比较经典的问题:
如果线上机器的磁盘占用率超级高,怎么办?
这时候优先想到的肯定是 , 定位到占用磁盘空间最大的那些文件,然后把可以删的给删掉 。
那么,问题来了,如何定位到占用磁盘空间最大的文件?
一个办法是执行如下命令:
里面涉及三个指令:du、sort、more
既然用到了,就顺便多了解一下这三个指令的用法,算是做下个人笔记 。
首先是du
作用:用来查看文件所占用的磁盘情况 。
格式:du [选项] [文件]
可用选项(如下为du --help展示的内容):
操作示例:
对几个比较常用的选项单独拿出来,在机器上实际操作,效果如下:
首先,当前目录如下:
du:
其实吧 , 从图里面可以看到,使用“du”的时候,最后一行就当前目录的磁盘使用总量 , 所以,感觉一般情况下-c这个选项并没有什么用 。
du -s:只计算总量
不过 , 注意:-s与-a不能同时存在,会报错的 。
sort
【lesslinux命令 linux less命令详解】作用:对输出的结果进行排序
可用选项:
-r:代表逆序排序
-n:按照字符串数值排序
-g:按照常规数值排序
-f:忽略字母大小写
实测效果:
首先是测试文件的原始状态:
测试一:sort
可以发现:
空行排在了第一位;
不管数字有多大,字符串都会排在数字的后面;
数字之间排序的时候,优先考虑首位数字(感觉是把数字也当成了一个字符串进行排序);
more
作用:用于一页一页地展示文件内容 。
几个常用操作:
空格:翻到下一页
b:翻到上一页
/:启动字符串搜索(类似于vim)
此外:
moren XXX:从XXX文件的第n行开始展示
more -n XXX:展示XXX文件,并且将n行视为一页,也就是按空格时,只会显示后续的N行
cat
作用:一次性的展示所有文件内容
cat有两个比较有用的选项:
-n:输出所有行号
-b:只对非空行输出行号
此外 ,
cat支持同时输出多个文件的内容:cat XXX YYYY ZZZZ
并且,cat可以与more结合使用:cat XXX | more 或者 cat XXX YYYY ZZZZ | more 或者 cat -n XXX | more
less:
作用:对文件或者输出内容进行分页展示 , 并且less可以用于打开多个文件
常用操作:
j:向上滚动一行
k:向下滚动一行(类似于vim)
g:跳到第一行
G:跳到最后一行
b:向上翻一页
空格:翻页
n%:跳转到整个文件的n%处
:e :在使用less打开多个文件时,使用“:e”选择跳转到其他文件去
/:进行字符串搜索
v:启动编辑
常用选项:
-N:在每一行前面都显示行号
-m:显示读取文件的百分比
-M:显示读取文件的百分比、行号和总行数
注意:
其他两个比较简单的指令:
head:显示一个文件的前N行
用法:head -n 行数 文件名
tail:显示一个文件的最后N行
用法:tail -n 行数 文件名
不过 , 使用tai的时候 , 因为-f选项可以自动显示新增加的内容,所以经常会使用如下方式:
tail -f 文件名
Linux系统中more和less命令有什么区别?1、操作
more不可以回去 , 就是不可以向前,只能向后,况且只能使用Enter和Space向后翻动 。
less使用vim中的j,k键盘可以上下翻动,还可以使用上下箭头 。
2、速度
less不必读整个文件,加载速度会比more更快 。
3、内容
less退出后shell不会留下刚显示的内容,而more退出后会在shell上留下刚显示的内容 。
扩展资料
一、more命令
more功能类似 cat , cat命令是整个文件的内容从上到下显示在屏幕上 。more会以一页一页的显示方便使用者逐页阅读 , 而最基本的指令就是按空白键(space)就往下一页显示 。
按 b 键就会往回(back)一页显示 , 而且还有搜寻字串的功能。more命令从前向后读取文件,因此在启动时就加载整个文件 。
1.命令格式:
more [-dlfpcsu ] [-num ] [ / pattern] [linenum] [file ... ]
2.命令功能:
more命令和cat的功能一样都是查看文件里的内容,但有所不同的是more可以按页来查看文件的内容,还支持直接跳转行等功能 。
二、less指令
less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大 。less 的用法比起 more 更加的有弹性 。
在 more 的时候 , 我们并没有办法向前面翻,只能往后面看,但若使用了 less 时,就可以使用 [pageup] [pagedown] 等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容 。
除此之外 , 在 less 里头可以拥有更多的搜索功能,不止可以向下搜 , 也可以向上搜 。
1.命令格式:
less [参数]文件
2.命令功能:
less 与 more 类似,但使用 less 可以随意浏览文件 , 而 more 仅能向前移动 , 却不能向后移动,而且 less 在查看之前不会加载整个文件 。
Linux命令 快照功能:记录当前的硬盘的状态 。刚建快照时快照占用内存为0,标记了当前硬盘的存储状态 。当虚拟机对快照标记的内容改写时,会将改写的内容存储进快照,与未改写的部分整合得到完整的快照 。当快照标记的部分被完全改写,那么快照存储空间完整记录了当时拍摄时的内存状态 。
参数形式
第一种:参数用一横的说明后面的参数是字符形式 。
第二种:参数用两横的说明后面的参数是单词形式 。
第三种:参数前有横的是 System V风格 。
第四种:参数前没有横的是 BSD风格 。
cat、more、less、head、tail命令的比较:
cat命令可以一次显示整个文件,如果文件比较大 , 使用不是很方便;
more命令可以让屏幕在显示满一屏幕时暂停,按空格往前翻页,按b往后翻页 。
less命令也可以分页显示文件,和more命令的区别就在于: 支持上下键卷动屏幕、查找;不需要在一开始就读取整个文件,打开大文件时比more、vim更快 。
head命令用于查看文件的前n行 。
tail命令用于查看文件的后n行,加上-f命令,查看在线日志非常方便 , 可以打印最新增加的日志 。
一般模式:
编辑模式:
命令模式:
编码
多行操作(列编辑模式)
插入:ctrl v进入列编辑模式,上下移动光标选择需要插入的位置,然后输入大写I,输入需要文本 , 最后按esc键退出 , 就会发现文本会在选择的多行中插入 。
删除:ctrl v进入列编辑模式,上下移动光标选中需要删除的部分 , 然后按d,就会删除选中的内容 。
①head:显示文件头部内容
②tail:输出文件尾部内容
注意:用vim和vi修改内容会删除源文件并生成新文件,所以tail -f会失效 。需要用到
追加和覆盖语句(或),才能被tail -f监视到 。
一般用于查看小文件
查看压缩文件中的文本内容
例:
①more:文件内容分屏查看器
②less:分屏显示文件内容,效率比more高
1、简单读取
运行脚本如下
测试结果为:
2、-p 参数,允许在 read 命令行中直接指定一个提示 。
运行脚本如下
测试结果为:
echo [选项] [输出内容](输出内容到控制台)
输出给定文本的sha256加密后的内容
①显示当前时间信息
②显示当前时间年月日
③显示当前时间年月日时分秒
④显示昨天
⑤显示明天时间
⑥显示上个月时间
需要注意的是取下个月的命令存在bug,执行如下命令会得到21-10,但是正常应该得到21-09,需要注意
date -d "2021-08-311 month"%y-%m
⑦修改系统时间
⑧获取当前时间戳
获取秒时间戳:date%s
获取毫秒时间戳:$[ (date%s%N) /1000000]
查看日历
(1)查看当前月的日历
(2)查看2017年的日历
例:
对比gzip/gunzip,zip/unzip可以压缩文件和目录且保留源文件 。
①zip:压缩
②unzip:解压缩
只能压缩文件不能压缩目录,不保留原来的文件 。
gzip 文件 (只能将文件压缩为*.gz文件)
gunzip 文件.gz(解压缩文件命令)
例: crontab -e
(1)进入crontab编辑界面 。会打开vim编辑你的工作 。
(2)每隔1分钟 , 向/root/bailongma.txt文件中添加一个11的数字
*/1 * * * * /bin/echo ”11”/root/bailongma.txt
(3)可以用tail-f目标文件来实施监控追加的内容
查看日志
可以用tail -f /var/log/cron.log观察
Cron表达式见文章:
ls [选项] [目录或是文件]
cd[参数]
例: cd-P$(dirname $p1) ; pwd先跳转到文件的所在目录,再打印$p1文件的实际路径
概述
①cp(copy):只能在本机中复制
②scp(secure copy):可以复制文件给远程主机
scp-rtest.shhxr@hadoop102:/root
③rsync(remote sync):功能与scp相同,但是不会改文件属性
rsync-avtest.shtest.shhxr@hadoop102:/root
④nc(netcat):监听端口,可以实现机器之间传输文件 。
nc -lk 7777 (-l表示listen,-k表示keep)
强制覆盖不提示的方法:\cp
例:scp-rtest.shhxr@bigdata1:/root
例:rsync-avtest.shhxr@bigdata1:/root
例:
nc -lp 10000nc_test.txt
nc -w 1 hadoop102nc_test.txt
远程登录时默认使用的私钥为~/.ssh/id_rsa
生成密钥对
将公钥发送到本机
将密钥发送到需要登录到本机的服务器上
修改密钥的权限
远程登陆
如果有多个节点需要远程登陆,可以在.ssh下创建config并输入
再次登陆
①正向代理:
②反向代理:
所谓“反向代理”就是让远端启动端口,把远端端口数据转发到本地 。
HostA 将自己可以访问的 HostB:PortB 暴露给外网服务器 HostC:PortC,在 HostA 上运行:
那么链接 HostC:PortC 就相当于链接 HostB:PortB 。
使用时需修改 HostC 的 /etc/ssh/sshd_config 的一条配置如下 , 不然启动的进程监听的ip地址为127.0.0.1,即只有本机可以访问该端口 。
相当于内网穿透,比如 HostA 和 HostB 是同一个内网下的两台可以互相访问的机器 , HostC是外网跳板机 , HostC不能访问 HostA , 但是 HostA 可以访问 HostC 。
那么通过在内网 HostA 上运行ssh -R告诉 HostC,创建 PortC 端口监听,把该端口所有数据转发给我(HostA),我会再转发给同一个内网下的 HostB:PortB 。
同内网下的 HostA/HostB 也可以是同一台机器,换句话说就是 内网 HostA 把自己可以访问的端口暴露给了外网 HostC 。
例: 比如在我的内网机192.168.32.244上有一个RabbitMQ的客户端,端口号为15672 。现在我希望在外网上访问固定ip的云服务器chenjie.asia的6009端口 , 通过跳板机192.168.32.243来转发请求到192.168.32.244:15672,从而实现在外网访问内网服务的功能,即内网穿透 。
①在192.168.32.244上启动RabbitMQ服务
②将chenjie.asia云服务器的私钥复制到跳板机192.168.32.243的~/.ssh下,并重命名为id_rsa 。通过如下命令看是否可以远程登陆到云服务,可以登陆则进行下一步 。
③修改chenjie.asia服务器的ssh配置文件 /etc/ssh/sshd_config , 允许其他节点访问
然后重启sshd服务
④在跳板机192.168.32.243启动ssh反向代理
这个进程在关闭session时会停止,可以添加启动参数-CPfN
例:
以 root 身份执行的程序有了所有特权,这会带来安全风险 。Kernel 从 2.2 版本开始,提供了 Capabilities 功能,它把特权划分成不同单元,可以只授权程序所需的权限,而非所有特权 。
例如:linux不允许非root账号只用1024以下的端口,使用root启动命令nginx,会导致nginx权限过高太危险 。所以用setcap命令
sudo setcap cap_net_bind_service= eip /bigdata/nginx/sbin/nginx
正确的关机流程为 :syncshutdownreboothalt
(1)sync(功能描述:将数据由内存同步到硬盘中)
(2)halt(功能描述:关闭系统 , 等同于shutdown -h now 和 poweroff)
(3)reboot(功能描述:就是重启,等同于 shutdown -r now)
(4)shutdown [选项] [时间]
安装
yum install -y telnet-server telnet
ls -i显示文件的节点号
find -inum 节点号 -delete删除指定的节点即可删除对应的文件
启动一个服务: systemctl start postfix.service
关闭一个服务: systemctl stop postfix.service
重启一个服务: systemctl restart postfix.service
显示一个服务的状态: systemctl status postfix.service
在开机时启用一个服务: systemctl enable postfix.service
在开机时禁用一个服务: systemctl disable postfix.service
注:在enable的时候会打印出来该启动文件的位置
列出所有已经安装的服务及状态:
systemctl list-units
systemctl list-unit-files
查看服务列表状态:
systemctl list-units --type=service
查看服务是否开机启动:systemctl is-enabled postfix.service
查看已启动的服务列表:systemctl list-unit-files | grep enabled
查看启动失败的服务列表:systemctl --failed
查看服务日志: journalctl -u postfix -n 10 -f
命令类似systemctl,用于操作native service 。
添加脚本为服务(需要指定启动级别和优先级): chkconfig --add [脚本]
删除服务: chkconfig --del [脚本]
单独查看某一服务是否开机启动的命令 : chkconfig --list [服务名]
单独开启某一服务的命令 : chkconfig [服务名] on
单独关闭某一服务的命令: chkconfig [服务名] off
查看某一服务的状态: /etc/intd.d/[服务名] status
启用服务就是在当前"runlevel"的配置文件目录/etc/systemd/system/multi-user.target.wants 里 , 建立 /usr/lib/systemd/system 里面对应服务配置文件的软链接;禁用服务就是删除此软链接 , 添加服务就是添加软连接 。
su 用户名称(切换用户,只能获得用户的执行权限,不能获得环境变量)
su - 用户名称(切换到用户并获得该用户的环境变量及执行权限)
echo$PATH打印环境变量
设置普通用户具有root权限
修改 /etc/sudoers 文件,找到下面一行(91行),在root下面添加一行,如下所示:
或者配置成采用sudo命令时,不需要输入密码
修改完毕,现在可以用hxr 帐号登录,然后用命令 sudo ,即可获得root权限进行操作 。
以azkaban用户执行引号中的命令
gpasswd -d [username] [groupname]将用户从组中删除
gpasswd -a [username] [groupname]将用户加入到组中
用户组的管理涉及用户组的添加、删除和修改 。组的增加、删除和修改实际上就是对/etc/group文件的更新 。
0首位表示类型- 代表文件d 代表目录l 链接文档(link file)
三种特殊权限suid、sgid、sticky
例子:
变更文件权限方式一
例:chmod u-x,o x houge.txt
变更文件权限方式二
例:chmod-R777/mnt/修改整个文件夹的文件权限
在linux中创建文件或者目录会有一个默认权限的,这个默认权限是由umask决定的(默认为0022) 。umask设置的是权限的“补码”,而我们常用chmod设置的是文件权限码 。一般在/etc/profile 、~/.bashprofile 或者 ~/.profile中设置umask值 。
umask计算
如root用户的默认umask为0022(第一个0 代表特殊权限位,这里先不考虑) , 创建的文件默认权限是644(即默认666掩上umask的022),创建的目录是755(即默认777掩上umask的022) 。
对于root用户的umask=022这个来说,777权限二进制码就是(111)(111)(111) , 022权限二进制码为(000)(010)(010) 。
上面就是一个umask的正常计算过程,但是这样实在是太麻烦了 。我们使用如下的简单的方法快速计算 。
上面的这个方法计算是非常方便的,为何得到奇数要 1呢?
文件的最大权限是666 , 都是偶数,你得到奇数,说明你的umask有奇数?。廖?,写为2 , 都是偶数,说明你有执行权限的 。
就按照上面的umask=023为例 , 在计算其他用户权限的时候6-3=3,6是读写,3是写和执行,其实应该是读写权限减去读权限的得到写权限的,相当于我们多减去了一个执行权限 。所以结果加1 。
umask修改
如果想单独修改某个文件夹的新建文件的权限,可以使用setfacl命令 。
例:递归改变文件所有者和所有组 chown-Rhxr:hxr/mnt
例:
Linux文本操作常用命令在Linux系统里常用于文本查看、操作、统计lesslinux命令的命令lesslinux命令:
通过多敲键盘lesslinux命令,形成手感 肌肉记忆,熟练掌握这些命令,在以后生信分析中游刃有余 。以下是每个命令lesslinux命令的详细的介绍(主要是跟着 生信技能树小郭老师 学习做的笔记)
接下来通过示例把10个命令的常用参数和用法展示出来lesslinux命令:
参数的用法介绍:
注意事项:
用 cat 命令可以 查看文本,也可以 编辑文本 ,编辑文本要加符号,退出时,另起一行 , 按 control C 退出
zcat可以查看压缩的文本文件,tac逆向查看
结合管道符|使用
head / tail-n:查看文件的前 / 后 n 行,默认10行 (在R语言里head和tail默认是前6行) 。
less命令用得最多 ,more命令用得比较少
3.1less命令
less[参数]文件名
less命令重要的补充用法1 :
需要注意 退出 :只要使用less命令,按q键
less命令重要的补充用法2 :
参数用法:
less命令 不加参数 查看文件:
less命令加 -N参数 查看文件:显示行号
less命令加 -S参数 查看文件:单行显示,非常规整
对比:less和cat命令显示文本行号的用法:less -N , cat -n
3.2more命令
**more **逐页查看,按空格翻页,按回车换行 , more命令一般很少用,熟练掌握less命令就好
查看压缩文件
wc 统计字符是也把换行符统计进去,但是别的命令不一定会把换行符算进去,。
常见参数:
切记:用less命令,按q退出
cut命令是按关键词来切的
常见参数:
排列前:
排列后:
解释:1和0比 , 1大;7和0比,7大…在sort字典排序里 , 100816比1737小,所以100816排在前面 。
命令行查看一个表格结构时 , 因为制表符对齐的原因,出现一个错位的现象 。还有 字典排序 可能和我们平时的认知不一样,所以 加上-n参数 ,让数值有数学意义上的大小来排序。
uniq命令去重,只有两行出现重复 , 而且是相邻的两行,如果不相邻,即使出现两行一模一样 , 不会去重 。
uniq命令通常和sort命令搭配使用
换其它文件试试
总之,uniq命令使用时经常和sort一起
常见参数:
常见用法1:
pastefile1 file2
-s:按行合并 演示
常见用法2:paste--
常见参数:
要养成一个好习惯 , 原始数据不要轻易修改,修改的东西另外保存,文本保存用 (重定向)或是(追加)
1.用less查看example.gtf,然后管道符传递给wc
2.截取example.gtf第9列的内容
3.在第2步的基础上截取分号分割的第1列
4.在第3步的基础上排序、去重复并统计
5.在第4步的基础上,将空格替换成制表符
补充小知识 :
清屏 :controlL
查看历史(输入过的)命令 :history
Linux下查看文件命令选择 Linux内有三大命令可以用来查看文件内容,分别是cat、more、和less,他们之间既有共同点又有区别,例如:cat可以一次性显示整个文件的内容,还可以将多个文件连接起来显示,常与重定向符号配合使用,适用于文件内容少的情况,而more和less一般用于显示文件内容超过一屏的内容 , 并且提供翻页的功能 。more比cat强大,提供分页显示的功能 , less比more更强大 , 提供翻页,跳转 , 查找等命令 。而且more和less都支持:用空格显示下一页,按键b显示上一页 。下面详细介绍这3个命令 。
cat命令比较简单,比较常用
cat主要有三大功能:
对非空输出行编号 , 使用 cat -b 命令:
输出所有行号 , 使用 cat -n 命令:
more命令,功能类似 cat ,cat命令是整个文件的内容从上到下显示在屏幕上 。more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能。more命令从前向后读取文件 , 因此在 启动时就加载整个文件。
常用命令
less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动 , 却不能向后移动,而且 less 在查看之前不会加载整个文件。
less 工具也是对文件或其它输出进行分页显示的工具,应该说是 linux正统查看文件内容的工具,功能极其强大。less 的用法比起 more 更加的有弹性 。在 more 的时候,我们并没有办法向前面翻, 只能往后面看 , 但若使用了 less 时,就可以使用 [pageup] [pagedown] 等按键的功能来往前往后翻看文件 , 更容易用来查看一个文件的内容!除此之外 , 在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜 。
常用命令
lesslinux命令的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux less命令详解、lesslinux命令的信息别忘了在本站进行查找喔 。
推荐阅读
- 游戏服务器用什么设备开发,游戏服务器用什么设备开发好
- 拍摄视频为什么会收音不好,拍摄视频为什么会收音不好呢
- 怎么看硬盘sata2和sata3,怎么区分硬盘sata2和sata3
- gis设备反故障措施,什么叫gis设备
- windows7从装系统的简单介绍
- asp.neterp系统源码,aspnet web 网站源码
- 直播公告怎么设置快手公告,快手直播公告咋设置
- php数据库分批自动处理 php怎么操作数据库
- .net框架安装正确,net框架包括什么怎么下载