目录
🦐:新开专栏Linux入门到精通持续更新
在Linux中有一个理念就是一切皆文件,对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心。
man 命令 man手册
help 命令 查看内部命令
命令 --help 查看外部命令
type 命令 判断内部/外部命令
shutdown -h now 立即关机(等于poweroff、init 0)
shutdown -h 10 延迟10分钟关机
shutdown -r now 立即重启(等于reset、init 6)
systemctl start sshd 开启服务
systemctl stop sshd 关闭服务
systemctl restart sshd 重启服务
systemctl status sshd 查看服务状态
systemctl enable sshd 设置服务开机自启
systemctl disable sshd 设置服务开机禁用
mkdir /data /backup 创建目录
mkdir -p /a/b/c/d 多级创建
mkdir data{01..10} 创建目录序列
mkdir test{01..10..2} 创建跳序序列
mkdir {conf,log,data} 创建无序目录
cd /data 切换目录
cd .. 返回上层目录
cd ~ 切换到宿主目录
cd - 回到上次cd的路径
tree /data 查看目录树
rmdir data01 删除空目录
rm -r /a 删除非空目录,慎用,-f强制
pwd 查看当前目录绝对路径
ls 列出目录内数据信息
ls -l 长格式列出目录内数据,简写ll
ls -d 查看目录本身
ll -t 查看最新编辑文件信息,按时间排序(r反向)
ll -S 查看文件信息,按大小排序(r反向)
du -sh 查看目录大小
touch /data/file01 创建空文件
touch /data/file{1..100} 创建file1到file100(100个文件)
echo "hello" 返回hello
echo "hehe" > /data/file01 覆盖文件内容,单行
echo "haha" >> /data/file01 追加文件内容,单行
cat 查看文件内容
cat >> /data/file02 << EOF 编辑多行内容到文件
123
456
789
EOF
> /data/file02 清空file02文件
more 分页显示,不能回翻
less 分页显示,可以回翻
head 看文件前几行,默认10行
tail 看文件后几行,默认10行(-f 动态追踪查看)
cp /data/file01 /backup 备份文件
cp -r /data /backup 备份目录
cp -rp /data/file01 /backup 保留文件属性复制(使用该命令既可以复制文件也可以复制目录并且保留权限)
mv /data/file02 /backup 移动剪切
mv /data/file01 /data/file 改名(把data目录下的file01文件在data目录改名为file)
vim /data/file01 Linux编辑器
a i o 切换到输入模式(a:光标后一位输入;i:当前光标输入;o:下一行输入)
Esc 退回到命令模式
: 命令到末行模式
:wq 保存修改,等同于:x 或 命令模式下ZZ
:q! 不保存退出
:w /tmp/file01 另存为
:r /etc/passwd 把其他文件读入到当前
home键或“^”或数字“0” 跳转到行首
End键或“$” 跳转到行尾
G 跳转到末行
1G或gg 跳转到首行
:set nu 显示行号
:set nonu 取消行号
x或Del键 删除光标处单字符
dd或10dd 删除光标所在行或多行
yy或10yy 复制一行或多行
p或P 粘贴光标下一行或上一行
/hehe 命令模式查找匹配字符串,从上到下
?hehe 命令模式查找匹配字符串,从下到上
:s /hehe/haha 查找本行中第一个字符串替换
:s /hehe/haha/g 查找本行中所有字符串并替换
:% s/hehe/haha/g 查找全文所有字符串并替换
:3,5 s/hehe/haha/g 查找第3到5行所有字符串并替换
dd if=/dev/zero of=/data/dwj.txt bs=100M count=10 创建1000M大小文件
从哪拿 拿到哪 大小 次数
gzip /data/dwj.txt gzip压缩
gunzip /data/dwj.gz gunzip解压(或gzip -d)
bzip2 /data/dwj.txt bzip2压缩
bunzip2 /data/dwj.bz2 bzip2解压(或bzip2 -d)
tar zcf /backup/etc-boot.tar.gz /etc /boot 归档gzip压缩一个或多个目录
tar xf /backup/etc-boot.tar.gz 解压到当前(-C 解压到其他位置)
tar jcf /backup/etc-boot.tar.bz2 /etc /boot 归档bzip2压缩一个或多个目录
tar xf /backup/etc-boot.tar.bz2 解压到当前(-C 解压到其他位置)
例:备份/etc /boot 两个目录到/backup,并标记时间戳
[root@localhost ~]# tar zcf /backup/etc_boot_$(date +%F) /etc /boot
alias c=clear #设置别名c表示清屏{alias 别名 = 命令}
alias #查看别名
unalias c #取消别名
vim /root/.bashrc #永久配置
. /root/.bashrc #使配置文件生效
find /etc/ -name network 通过文件名搜索
find /etc -iname networkmanager 忽略大小写搜索
find /etc/ -name *.conf * 通配任意个字符
find /etc/ -name ?????.conf ? 通配任意一个字符
find /etc -type f 通过文件类型搜索(d目录 f文件 s套接字 b块设备 l链接)
find . -type f -atime -7 搜索最近七天内被访问过的所有文件
find . -type f -atime 7 搜索恰好在七天前被访问过的所有文件
find . -type f -atime +7 搜索超过七天内被访问过的所有文件
atime: 访问时间
mtime: 文件的内容发生变化的时间
ctime: 文件的属性发生变化的时间
-amin n 以分钟为单位
-cmin n
-mmin n
注:stat 查看文件访问更改等属性;touch -a 修改访问属性 -m 修改修改属性
find / -user lisi -type f 搜索属于lisi用户的文件
find / -group cwb -type f 搜索属于cwb组的文件
find / -type f -nouser 搜索系统中的孤儿文件(文件属主用户已被删除)
find / ! -user root -type f 搜索不属于root的文件
find / -perm -g=w -type f 查找/目录下,小组权限为可写的文件
find / -perm -222 -type f 查找目录下,用户可写 and 组可写 and 其他人可写的文件
find / -perm /222 -type f 查找目录下,用户可写 or 组可写 or 其他人可写的文件
注:u用户 g组 o其他人;r读 w写 x执行;r=4 w=2 x=1
find / -type f -size -3M 查找目录下,文件大小小于3M大小的文件
find / -type f -size 3M 查找目录下,文件大小等于3M大小的文件
find / -type f -size +3M 查找目录下,文件大小大于3M大小的文件
find /etc -name *.conf -type f -exec cp {} /backup \; 查找并备份,无提示
find /etc -name *.conf -type f -ok cp {} /backup \; 查找并备份,有提示
find /data -type f -size 0 -exec rm -rf {} \; 查找/data目录下空文件,并删除
创建sort.txt文件,通过下面命令排序
cat >> sort.txt << EOF
b:3
c:2
a:4
e:5
d:1
f:11
EOFcat sort.txt | sort 对输出内容直接排序,默认按照每行的第一个字符进行排序
cat sort.txt | sort -r 对输出内容进行反向排序
cat sort.txt | sort -t ":" -k 2 使用“:”做分隔符,对第2个字段进行排序
cat sort.txt | sort -t ":" -k 2 -n 使用“:”做分隔符,对第2个字段进行排序,按照数字大小排序
创建num.txt文件,通过下面命令去重
cat >> num.txt <<EOF
111
222
333
444
555
222
333
222
EOF
sort num.txt | uniq 使用uniq时,一般先排序,再去重
sort num.txt | uniq -c 去重并显示重复次数
案例1:查询Nginx访问日志客户端IP,按访问pv数排序,列出前十
yum -y install nginx
systemctl start nginx
#启动nginx网站服务后,通过浏览器访问IP记录成功日志
cat /var/log/nginx/access.log | awk '{print $1}' | sort -r | uniq -c | head -10
案例2:查出系统进程打开文件数排行前3的进程号
lsof -Ki |awk '{print $2}' | sort |uniq -c | sort -n -r |head -3
我想用ruby编写一个小的命令行实用程序并将其作为gem分发。我知道安装后,Guard、Sass和Thor等某些gem可以从命令行自行运行。为了让gem像二进制文件一样可用,我需要在我的gemspec中指定什么。 最佳答案 Gem::Specification.newdo|s|...s.executable='name_of_executable'...endhttp://docs.rubygems.org/read/chapter/20 关于ruby-在Ruby中编写命令行实用程序
我正在尝试从Postgresql表(table1)中获取数据,该表由另一个相关表(property)的字段(table2)过滤。在纯SQL中,我会这样编写查询:SELECT*FROMtable1JOINtable2USING(table2_id)WHEREtable2.propertyLIKE'query%'这工作正常:scope:my_scope,->(query){includes(:table2).where("table2.property":query)}但我真正需要的是使用LIKE运算符进行过滤,而不是严格相等。然而,这是行不通的:scope:my_scope,->(que
我从Ubuntu服务器上的RVM转移到rbenv。当我使用RVM时,使用bundle没有问题。转移到rbenv后,我在Jenkins的执行shell中收到“找不到命令”错误。我内爆并删除了RVM,并从~/.bashrc'中删除了所有与RVM相关的行。使用后我仍然收到此错误:rvmimploderm~/.rvm-rfrm~/.rvmrcgeminstallbundlerecho'exportPATH="$HOME/.rbenv/bin:$PATH"'>>~/.bashrcecho'eval"$(rbenvinit-)"'>>~/.bashrc.~/.bashrcrbenvversions
目录前言滤波电路科普主要分类实际情况单位的概念常用评价参数函数型滤波器简单分析滤波电路构成低通滤波器RC低通滤波器RL低通滤波器高通滤波器RC高通滤波器RL高通滤波器部分摘自《LC滤波器设计与制作》,侵权删。前言最近需要学习放大电路和滤波电路,但是由于只在之前做音乐频谱分析仪的时候简单了解过一点点运放,所以也是相当从零开始学习了。滤波电路科普主要分类滤波器:主要是从不同频率的成分中提取出特定频率的信号。有源滤波器:由RC元件与运算放大器组成的滤波器。可滤除某一次或多次谐波,最普通易于采用的无源滤波器结构是将电感与电容串联,可对主要次谐波(3、5、7)构成低阻抗旁路。无源滤波器:无源滤波器,又称
@作者:SYFStrive @博客首页:HomePage📜:微信小程序📌:个人社区(欢迎大佬们加入)👉:社区链接🔗📌:觉得文章不错可以点点关注👉:专栏连接🔗💃:感谢支持,学累了可以先看小段由小胖给大家带来的街舞👉微信小程序(🔥)目录自定义组件-behaviors 1、什么是behaviors 2、behaviors的工作方式 3、创建behavior 4、导入并使用behavior 5、behavior中所有可用的节点 6、同名字段的覆盖和组合规则总结最后自定义组件-behaviors 1、什么是behaviorsbehaviors是小程序中,用于实现
遍历文件夹我们通常是使用递归进行操作,这种方式比较简单,也比较容易理解。本文为大家介绍另一种不使用递归的方式,由于没有使用递归,只用到了循环和集合,所以效率更高一些!一、使用递归遍历文件夹整体思路1、使用File封装初始目录,2、打印这个目录3、获取这个目录下所有的子文件和子目录的数组。4、遍历这个数组,取出每个File对象4-1、如果File是否是一个文件,打印4-2、否则就是一个目录,递归调用代码实现publicclassSearchFile{publicstaticvoidmain(String[]args){//初始目录Filedir=newFile("d:/Dev");Datebeg
ES一、简介1、ElasticStackES技术栈:ElasticSearch:存数据+搜索;QL;Kibana:Web可视化平台,分析。LogStash:日志收集,Log4j:产生日志;log.info(xxx)。。。。使用场景:metrics:指标监控…2、基本概念Index(索引)动词:保存(插入)名词:类似MySQL数据库,给数据Type(类型)已废弃,以前类似MySQL的表现在用索引对数据分类Document(文档)真正要保存的一个JSON数据{name:"tcx"}二、入门实战{"name":"DESKTOP-1TSVGKG","cluster_name":"elasticsear
我有一个使用SeleniumWebdriver和Nokogiri的Ruby应用程序。我想选择一个类,然后对于那个类对应的每个div,我想根据div的内容执行一个Action。例如,我正在解析以下页面:https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=puppies这是一个搜索结果页面,我正在寻找描述中包含“Adoption”一词的第一个结果。因此机器人应该寻找带有className:"result"的div,对于每个检查它的.descriptiondiv是否包含单词“adoption
我正在我的Rails项目中安装Grape以构建RESTfulAPI。现在一些端点的操作需要身份验证,而另一些则不需要身份验证。例如,我有users端点,看起来像这样:moduleBackendmoduleV1classUsers现在如您所见,除了password/forget之外的所有操作都需要用户登录/验证。创建一个新的端点也没有意义,比如passwords并且只是删除password/forget从逻辑上讲,这个端点应该与用户资源。问题是Grapebefore过滤器没有像except,only这样的选项,我可以在其中说对某些操作应用过滤器。您通常如何干净利落地处理这种情况?
在我做的一些网络开发中,我有多个操作开始,比如对外部API的GET请求,我希望它们同时开始,因为一个不依赖另一个的结果。我希望事情能够在后台运行。我找到了concurrent-rubylibrary这似乎运作良好。通过将其混合到您创建的类中,该类的方法具有在后台线程上运行的异步版本。这导致我编写如下代码,其中FirstAsyncWorker和SecondAsyncWorker是我编写的类,我在其中混合了Concurrent::Async模块,并编写了一个名为“work”的方法来发送HTTP请求:defindexop1_result=FirstAsyncWorker.new.async.