在linux中使用ls命令 ls -lh 可以显示文件或者目录大小,下面是显示列内容说明
第一列:文件类型和权限
第二列:链接数量
第三列:所有者 - 显示文件或目录的所有者用户名称
第四列:显示文件或者目录用户组
第五列:显示文件的大小。单位为字节
第六列:显示文件最后的修改时间和日期
第七列:显示文件或者目录名称====================ls -l:以长格式列出文件和目录,包括权限、所有者、大小和最后修改时间
ls -a:显示所有文件,包括以点(.)开头的隐藏文件
ls -lt:按时间排序,最新修改的文件或目录会显示在最前面
ls -lh:结合 -l 和 -h 选项,以易读的格式显示文件大小(例如,使用KB、MB)
cd /home/user/Documents 切换到指定目录下
cd ..:切换到当前目录的父目录(返回到上一级目录)
cat cbus_onl_busi.log 显示文件filename的内容
cat -n cbus_onl_busi.log 显示文件filename的内容,并在每行前面显示行号
cat cbus_onl_busi.log | tail -n 10 显示文件filename的最后几行
grep "pattern" cbus_onl_busi.log | cat -n:使用grep搜索包含特定模式的行,然后通过管道将其传递给cat,并使用cat的-n选项显示行号
cat al-gateway-oapi.log | grep 'error' | tail -n 10
打开文件后,more默认显示第一屏的内容
按Space键可以翻到下一页 按Enter键可以翻到下一行
按b键可以回退到上一页
按q键退出more
按Space键(空格键)可以向前翻一页 按b键可以向后翻一页
按q键退出less
按:n可以显示当前行号
touch newfile.txt 使用touch命令创建空文件
ls -l:在使用touch命令后,通常使用ls -l命令查看文件的时间戳和其他状态信息
cp source destination:将名为source的文件复制到destination。如果destination是目录,则文件将被复制到该目录中
cp file1 file2 file3 destination:将多个文件复制到指定的destination目录
cp -r source destination:递归地复制整个目录source及其内容到destination。-r选项表示递归。
移动文件:
mv source destination:将名为source的文件移动到destination。如果destination是目录,则文件将被移动到该目录中
移动目录:
mv -r source destination:递归地移动整个目录source及其内容到destination。-r选项表示递归
重命名文件:
mv oldname newname:将文件从oldname重命名为newname
rm命令是非常危险的,特别是当使用-r选项时,因为它可以递归地删除大量文件;如果不确定,可以使用-i选项,它会在删除每个文件之前提示确认。
删除文件:
rm filename 这将删除名为filename的文件。
删除目录:
rm -r directory -r(或--recursive)选项用于递归地删除目录及其内容
强制删除:
rm -f file -f(或--force)选项用于强制删除文件,不提示确认
强制删除只读文件:
rm -i file -i选项在删除每个文件之前提示确认,对于只读文件特别有用
删除旧文件:
rm -t 7 file -t选项删除访问时间超过7天的文件。
按名称搜索:
find /path/to/search -name "filename" -name选项用于按文件名搜索
使用通配符:
find /path/to/search -name "*.txt" 使用通配符*可以搜索所有扩展名为.txt的文件
按大小搜索:
find /path/to/search -size +100M -size选项用于按文件大小搜索,+100M表示大于100MB的文件
根目录开始查找所有扩展名为 .log 的文本文件,并找出包含 “ERROR” 的行
find / -type f -name "*.log" | xargs grep "ERROR"
根目录开始查找所有扩展名为 .log 的文本文件,并找出包含 “20240607310111936703” 的文件路径
find /data/logs/pm-service-onl/busi/20240607 -name "*.log" -exec zgrep "20240607310111936703" {} \; -print
搜索文本:
grep "pattern" 310H001.log
递归搜索:选项递归地在指定目录及其子目录中搜索
grep -r "pattern" /path/to/search
使用前缀和后缀:-B选项打印每个匹配行之前的行,-A选项打印之后。数字指定要打印的行数
grep "pattern" 310H001.log -B 20 -A 10
搜索多个模式:使用\|操作符在单个命令中搜索多个模式
grep "pattern1\|pattern2" 310H001.log
查看文件的前10行
head -n 10 /var/log/syslog/test.log
显示文件的第N行到第M行
head -n M test.log | tail -n +N
指定显示的行数: -n选项允许你指定显示的行数,lines是你想要显示的行数
tail -n 20 /var/log/syslog/test.log
实时显示文件新增内容: -f选项用于实时查看文件的新增内容,通常用于查看日志文件。
tail -f /var/log/syslog/test.log
sort /etc/passwd/test.log
计算行数:
wc -l /var/log/syslog/test.log
只显示总计: 使用管道和awk命令只显示总计
wc -l file1 file2 file3 | awk '{total +=$1} END {print total}'
cut -d: -f1 /etc/passwd
nano /home/user/file.txt
vi /home/user/file.txt
emacs /home/user/file.txt
paste file1.txt file2.txt
find / -name '*.log'
参考1文件命令
grep 'error' /var/log/syslog
locate myFile.txt
which java
参考16其他命令说明
whereis ls
参考16其他命令说明
mkdir /home/user/new_directory
rmdir /home/user/empty_directory
tree /home/user/
du -sh /home/user/Documents
可以参考 9磁盘命令管理
df -h
可以参考 9磁盘命令管理
chmod 755 /home/user/file.txt
表示设置文件的主用户有读,写和执行权限(rwx=7),同组的用户和其他用户有读和执行权限(rx=5)。
chown newuser:newgroup /home/user/file.txt
表示将/home/user/file.txt的所有者更改为newuser,所属的组更改为newgroup。
chgrp newgroup /home/user/file.txt
表示将/home/user/file.txt的所属的组更改为newgroup。
测试与 www.example.com 的网络连通性
ping www.baidu.com
显示 eth0 网络接口的信息
ifconfig eth0
开启 eth0 网络接口
sudo ifconfig eth0 up
关闭 eth0 网络接口
sudo ifconfig eth0 down
用于列出所有监听的 TCP 端口以及与之关联的进程
netstat -ntlp
用于查找所有与端口 80 相关的网络连接,包括监听和已建立的连接
netstat -aonp|grep 80
用于计算与端口 80 相关的网络连接数量
netstat -nat|grep -i "80"|wc -l
ssh user@remote_host
scp /path/to/file user@remote_host:/remote/path/
curl www.linuxyz.cn
curl -H "Content-Type:application/json" -X POST -d '{"appId": "akulaku-business","data": "081915122488","token": "963444d4-88f9-4c38-b2c2-19b60b2d8"}' 'http://pre-oapi.akulaku.local/midendkmshttp/encrypt'
这将尝试连接到 example.com 的 23 号端口(Telnet 默认端口),并开始一个 Telnet 会话 :一般用来检查网络是否通
telnet example.com 23
ftp ftp_server
wget www.linuxyz.cn -o google.html
参考11 进程管理命令
参考11 进程管理命令
echo 'Hello, World!'
printf 'Name: %s\nAge: %d\n' 'Alice' 20
echo 'Hello, World!' | sed 's/World/Shell/g'
echo -e 'name\tage\nAlice\t20\nBob\t22' | awk '{if ($2 >=21) print $1}'
创建归档文件: directory/ 目录下的所有文件和子目录打包成 archive.tar.gz 归档文件,并使用 gzip 压缩
tar -czvf archive.tar.gz directory/
解压归档文件:从 archive.tar.gz 归档文件中解压所有文件到当前目录
tar -xzvf archive.tar.gz
查看归档文件内容:列出 archive.tar.gz 归档文件中的所有文件和目录
tar -tvf archive.tar.gz
gzip:用于文件压缩或解压。
压缩文件:
gzip file.txt
解压文件:
gzip -d file.txt.gz
gunzip file.gz
zip -r archive.zip folder
unzip archive.zip
sudo hdparm -i /dev/sda
显示所有进程,按 CPU 使用率排序:
ps aux --sort=-%cpu
结合 grep 命令来过滤输出结果:
ps aux | grep java
ps -ef | grep java
统计当前系统线程数量:
pstree -p|wc -l
终止 PID 为 1234 的进程:
kill 1234
优雅地终止 PID 为 5678 的进程:
kill -SIGTERM 5678
强制终止 PID 为 9101 的进程:使用 kill -9 强制终止进程时需谨慎,因为这会导致进程立即退出,可能不会释放其占用的资源,也不会执行任何清理操
kill -9 9101
pkill process_name
输入:set
输出:展示所环境变量以及函数
输入:
export VARName='Value'
echo $VARName
输出结果:
Value
输入:sudo halt
输入:sudo reboot
关闭系统:sudo shutdown -h now
重启系统:sudo shutdown -r now
更改密码:passwd
打开文件:
vi vhost.conf
进入编辑模式:
当你第一次打开文件时,你会进入“普通模式”(Normal Mode)。
按下i键进入“插入模式”(Insert Mode),在这里可以开始编辑文件。
退出编辑器:
在普通模式下,按下:键,然后输入q(表示退出)并按Enter键退出编辑器。
保存并退出:
在普通模式下,按下:键,然后输入wq(表示写入并退出)并按Enter键保存更改并退出编辑器。
撤销更改:
在普通模式下,输入u键撤销最近的操作。
查找文本:
在普通模式下,按下:/ 键,然后输入要查找的文本,并按Enter键。查找zone :/zone
跳转到行:
在普通模式下,按下:键,输入行号并按Enter键跳转到指定行号。
设置行号:
在普通模式下,按下:键,输入set number或简写为set nu启用行号显示。
复制和粘贴:
在普通模式下,使用v(可视模式)选择文本,然后使用y(复制)复制文本,再使用p(粘贴)粘贴文本
whereis:当你需要快速找到命令的多个相关文件(如二进制、源代码、手册页)时使用。
which:当你只需要知道某个命令的可执行文件路径时使用。
whereis:默认会在/usr/bin, /bin, /usr/sbin, /sbin, /usr/local/bin等标准目录下搜索。
which:只搜索PATH环境变量中列出的目录。
输入:whoami
输出:user
输入:date
输出: Tue Dec 21 02:16:12 UTC 2021
显示历史命令:
history
显示特定数量的历史命令:
history 10
查看特定用户的命令历史:-u选项用于查看指定用户username的命令历史
history -u username
搜索历史命令:
history | grep "search_pattern"
果有人说开发Web系统,从来没用到过HTML标签中的表单标签的话,那他或她,肯定不是在逗你玩,而是他们开发的是静态页面。如果是动态内容的话,表单标签是必须用到的,毕竟它们是标签界的杠把子,表单是一个包含表单元素的区域。
表单元素是允许用户在表单中输入内容,比如:文本域(textarea)、下拉列表、单选框(radio-buttons)、复选框(checkboxes)等等。
细细想来,现在上什么平台,好像都要登录之后,才可以完成相关的业务操作。上电商平台购物,登录之后才可以付款,付款了才有货收;上自媒体平台,只有登录之后,才可以发文章,发视频。既然登录这么常用,那我就HTML实现一下。
<form>标签用于创建供用户输入的HTML表单,它的action属性绑定后端的业务处理方法(URL);method方法可选get或post。
<input>标签规定了用户可以在其中输入数据的输入字段,type指定输入类型,text为文本,password为密码,可指定的类型还有好多种。name属性指定input的名称,而你输入的值,会被赋给value属性。
<button>按钮标签,常用的类型的有提交用户输入内容的submit,有重置清空表单的reset。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>登录之后更美</title>
</head>
<body>
<form action="login">
账号:<input type="text" name="account"/><br/>
密码:<input type="password" name="pwd"/><br/><br/>
<button type="submit">
登录
</button>
<button type="reset">
重置
</button>
</form>
</body>
</html>
输出结果
好多平台,为了给你推荐个性化的需求,会有一个页面让你填写个人信息,内容常常会有你的爱好、性别、生日什么的。如果你不填写,不友好的平台就不给你跳过。如果遇到这种平台,我一般就直接跳过,不再用,毕竟有些信息是个人隐私,比如老陈搞了10多年IT。
radio单选按钮,属性name的值相同时,多选一,否则都可以选择;
checkbox复习框:可以勾选多个。常用在兴趣等多个类型选择中;
select下拉列表框:在多个预设选项中,选择其中一个;
textarea多行输入框:输入的内容较多时,就用它。rows属性指定行数,cols指定列数。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>亮出你的美</title>
</head>
<body>
个人信息登记 <br/> <br/>
<form action="infoSubmit">
姓名:<input type="text" name="name"/><br/>
性别:<input type="radio" name="gender" value="male"/>男
<input type="radio" name="gender" value="female"/>女<br/>
兴趣:<input type="checkbox" name="p" value="p"/>编程
<input type="checkbox" name="k" value="k"/>看书
<input type="checkbox" name="c" value="c"/>看电影
<input type="checkbox" name="l" value="l"/>看美女
<br/>
爱好:
<select name="love">
<option value="x">下象棋</option>
<option value="j">下军旗</option>
<option value="t">下跳棋</option>
<option value="w">下围棋</option>
</select>
<br/><br/>
<textarea rows="10" cols="35">个人简介</textarea><br/><br/>
<button type="submit">
提交
</button>
<button type="reset">
重置
</button>
</form>
</body>
</html>
输出结果
好了,有关html表单的内容,老陈讲完了,如果觉得对你有所帮助,希望老铁能转发点赞,让更多的人看到这篇文章。你的转发和点赞,就是对老陈继续创作和分享最大的鼓励。
一个当了10年技术总监的老家伙,分享多年的编程经验。想学编程的朋友,可关注:老陈说编程。分享Python,前端(小程序)、App和嵌入式方面的干货。关注我,没错的。
#前端##程序员##HTML5##表单##数据#
大家好, 我是徐小夕, 之前和大家分享了一个在线文档编辑器PowerNice, 它可以轻松帮我们编写文档并一键导出多种格式比如html,pdf, md, png图片等, 如下:
image.png
最近为了让编辑器满足更多场景需求, 我开发了桌面端软件版本——powernice-electron, 支持mac 和 window, 大家感兴趣可以参考一下.
image.png
接下来我来对powernice 技术实现和功能做一个介绍.
作为一名技术工作者, 我们经常会遇到编写技术文档, 技术分享等需求, 网上也有很多现成的文档管理工具, 出于好奇心, 我拉着朋友一起实现了一个, 用来自给自足. 接下来就来介绍一下轻量级且灵活方便的文档编辑工具—— 「powerNice」.
「powerNice」 提供两种方式来编写文章/文档, 即程序员最喜欢的 markdown, 也可以使用非技术人员最容易上手的富文本编辑器.
实现 「powerNice」 在线文档编辑器我们采用如下核心技术栈:
多模式编辑主要是指我们可以用富文本和md编辑器来编辑我们的文章, 我们采用最熟悉的 React 来实现, 效果如下:
目前支持2套主题, 浅色和深色, 主要从用户体验的角度方便用户夜间写作. 效果如下:
为了提高我们的写作效率以及对文章的多路复用, 我们提供了一键导入导出文件等功能, 具体如下:
使用截图如下:
下载的html内容预览如下:
还原度还是非常高的~
4. 多模式预览
多模式预览主要是右侧的预览区, 我们支持手机端预览和pc端预览, 如下图:
5. 字数行数统计
字数行数统计主要是帮助作者做内容统计, 这块实现不是很难, 我们看看预览效果:
文章管理主要是管理用户编写的内容, 这里因为我们做的是线上工具, 用户识别主要采用浏览器指纹识别技术来区分用户, 用户可以轻松在编辑器文章列表中切换文章进行编辑, 效果如下:
{
name: 'file',
showUploadList: false,
beforeUpload(file: any): any {
const reader=new FileReader()
reader.onload=function(e: Event) {
const data=(e as any).target.result
if (editor==='richText') {
// ...
} else {
// ...
}
}
reader.readAsText(file)
},
}
核心代码如下:
const doc=document.querySelector('.for-markdown-preview') as HTMLElement
const html=createMDHtml(doc.innerHTML, article)
file=new File([html], `${moment().format('YYYYMMDDHHmmss')}.html`, { type: 'text/html;charset=utf-8' })
// 下载文件
saveAs(file)
浏览器指纹这块知识点涉及的比较多, 笔者这里简单介绍一下canvas指纹.
?
「Canvas指纹」是利用系统之间, 字体渲染引擎, 抗锯齿、次像素渲染等处理方式的差异而实现的一种指纹识别技术. 我们使用canvas将同样的文字转成图片, 即便使用Canvas绘制相同的元素,但由于上述的差别得到的结果也是不同的。
?
*请认真填写需求信息,我们会在24小时内与您取得联系。