首页 文章 精选 留言 我的

精选列表

搜索[Linux内核],共10000篇文章
优秀的个人博客,低调大师

Linux上重启服务的正确命令

在开发环境下,我们经常需要部署代码,重启服务,所以会把命令写在脚本中,方便使用。 我们可能这么写 #!/bin/bash ps -ef | grep backend-api-1.0 | grep -v "\-\-color" |awk '{print $2}' |xargs kill -9 sleep 1 nohup java -jar backend-api-1.0.jar >> backend-api.log 2>&1 & tail -f backend-api.log 这个脚本看似没问题,可执行时,会出现kill: 向 PID 发送信号失败: 没有那个进程的错误,但是服务仍然能正常重启,也就是ps -ef | grep backend-api-1.0 | grep -v "\-\-color"这个命令并没有把当前执行进程过滤掉。 正确写法是:取项目名中的两个不同的单词,用两次grep,而不是用grep -v,如下 #!/bin/bash ps -ef | grep backend | grep api |awk '{print $2}' |xargs kill -9 sleep 1 nohup java -jar backend-api-1.0.jar >> backend-api.log 2>&1 & tail -f backend-api.log

优秀的个人博客,低调大师

linux命令下~docker的使用学习

docker 安装 centossudo yum updatesudo yum install dockerdocker 安装 Ubuntusudo apt-get updatesudo apt-get install docker.io检验其版本号docker -v启动dockerservice docker start 启动的图片查询某个镜像docker search 镜像名比如docker search redis docker查询命令docker search Mongodb Mongodb镜像镜像下载 docker pull redis 下载镜像 。 下载镜像成功 这个下载特别看网速,所以如果是网速不好的话 最好准备好提前下载不然用的时候很麻烦。我的云服务器就是1m带宽,下载很慢就换到本地虚拟机上学习用。 云服务器上的就继续下载其他的。、 查看镜像列表docker images 查看镜像列表镜像删除 docker rmi删除指定镜像 删除成功docker rmi ( docker ps -a -q) 删除所有容器查看容器日志 docker logs container-name/container-id docker logs test-redis 查看日志删除dockeryum list installed |grep docker 查看 安装的docker内容yum -y remove docker-* 删除安装的docker 内容 原文发布时间为:2018-07-11本文作者:mengrui本文来自云栖社区合作伙伴“LuckQI”,了解相关信息可以关注“LuckQI”。

优秀的个人博客,低调大师

你需要知道的Linux安全

1. 账号以及密码一定要复杂,密码需要符合这些规范:字符大于 10 个;至少包含大小写以及数字;密码中不能包含账号,不能包含自己的姓名全拼,不能有自己的生日数字,不能有自己的电话号码;密码要定期更换;不能把密码保存在记事本等文档中要用专业的存密码的软件保存。 2. 可以拿一台机器作为跳板机来登陆其他服务器,其他服务器做登陆 ip 限制。 /etc/shos.allow, /etc/hosts.deny 3.能使用密钥尽量避免使用密码登陆。 vim /etc/ssh/sshd_config //PermitRootLogin without-password 改为 PermitRootLogin no 4.可以禁止 root 直接登陆服务器,只允许普通用户登录,普通用户 su 到 root(PermitRootLogin no)。 vim /etc/ssh/sshd_config chkconfig --list chkconfig nginx off 5.服务器上用不到的端口关闭,用不到的服务停掉(ntsysv)。 6.应用环境程序软件(apache,nginx,php,mysql)避免使用太老版本。 7.不可逆操作在操作前一定要备份相关的数据或配置文件。 8.重要数据一定要备份,尽量本地和远程存两份。 9.敲命令切勿太快,避免误操作。 10.web 禁止目录浏览。 (apache:Option -Indexes;nginx编译时加上 --without-http_autoindex_module) 11.web 可写目录下禁止解析 php。 (apache:php_admin_flag engine off;nginx:location ~.*abc/.*\.php?${deny all;} 12.web 默认虚拟机主机禁止访问,apache 第一个虚拟主机,nginx 如果不单独分离虚拟主机配置文件也为第一个,否则就是有“listen 80 default”那个。 13.设定 php 禁用函数:php.ini 中增加。 disable_functions = popen,passthru,escapeshellarg,escapeshellcmd,escapeshellarg,shell_exec,proc_get_status,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,leak,popepassthru,stream_socket_server,popen,proc_open,proc_close,phpinfo 14.php.ini 中关闭 display_error。 15.站点后台访问需要限定 ip。 (apache http://hanwen.me nginx: http://hanwen.me) 16.建议每个站点都配置访问日志,并且做日志切割压缩归档,磁盘空间允许的话,尽量存放比较久的时间. 17.尽量避免开放 ftp 服务,如果要开放要满足两个原则:1. 限定 ip 访问(iptables实现);2. 密码设置一定要复杂。 最后,希望大家有所收获。

优秀的个人博客,低调大师

linux文件的查找和压缩命令

文件查找和压缩 文件查找的两个命令 locate find ————————————————————- locate locate file 非实时查找,查找文件的路径, 数据库不会实时更新,查找速度快 路径中只要包含file名就全部列出 -i 不区分大小写的搜索 例 搜索以”.conf”结尾的文件 locate -r “\.conf$” -n N 只列举前N个匹配项目 -r 使用正则表达式 例 locate -r “^/ect/.\.conf$” updatedb 数据库更新命令 —————————————————————- find 默认递归搜索 查找速度慢 查找更精确 实时查找 可能只搜索用户具备读取 和执行权限的目录 find [OPTION]… [查找路径] [查找条件] [处理动作] 查找路径:指定具体目标路径;默认为当前目录 查找条件:指定的查找标准,可以文件名、大小、类型、权限等标准进行; 默认为找出指定路径下的所有文件 处理动作:对符合条件的文件做操作,默认输出至屏幕 -maxdepth level 最大搜索目录深度,指定目录为第1级 -mindepth level 最小搜索目录深度 根据文件名和inode查找: -name “文件名称”:支持使用glob *, ?, [], [^] -iname “文件名称”:不区分字母大小写 -inum n 按inode号查找 -samefile name 相同inode号的文件 -links n 链接数为n的文件 -regex “PATTERN”:以PATTERN匹配整个文件路径字符串,而不仅仅是文 件名称 例 find /etc/ -maxdepth2 -mindepth2 -name passwd 显示/etc/下包含passwd的两级目录 find /data -name “*f1″查找data目录下包含f1的文件,此处的*表示通配符,引号必须加 find /home -user wang -ls 长格式显示所有者为wang的文件 useradd xixi -u 1004 将无主文件重新赋予新的所有者 根据属主、属组查找: -user USERNAME:查找属主为指定用户(UID)的文件 -group GRPNAME: 查找属组为指定组(GID)的文件 -uid UserID:查找属主为指定的UID号的文件 -gid GroupID:查找属组为指定的GID号的文件 -nouser:查找没有属主的文件 -nogroup:查找没有属组的文件 例 find /home -nouser -o -nogroup 查找无主或无组的文件 根据文件类型查找: -type TYPE: f: 普通文件 d: 目录文件 l: 符号链接文件 s:套接字文件 b: 块设备文件 c: 字符设备文件 p: 管道文件 空文件或目录 -empty find /app -type d -empty 组合条件: 与:-a 或:-o 非:-not, ! 德·摩根定律: (非 A) 或 (非 B) = 非(A 且 B) (非 A) 且 (非 B) = 非(A 或 B) 示例: !A -a !B = !(A -o B) !A -o !B = !(A -a B) 例 找出/tmp目录下,属主不是root,且文件名不以f开头的文件 find /tmp&#x2212;not&#x2212;userroot&#x2212;a&#x2212;not&#x2212;name&#x2018;f&#x2217;&#x2032;">−not−userroot−a−not−name‘f∗′−not−userroot−a−not−name‘f∗′-ls find /tmp -not&#x2212;userroot&#x2212;o&#x2212;name&#x2018;f&#x2217;&#x2032;">−userroot−o−name‘f∗′−userroot−o−name‘f∗′–ls 查找/etc/下,除/etc/sane.d目录的其它所有.conf后缀的文件 find /etc -path ‘/etc/sane.d’ -a –prune -o -name “*.conf” 查找/etc/下,除/etc/sane.d和/etc/fonts两个目录的所有.conf后缀的文件 find /etc&#x2013;path&#x2018;/etc/sane.d&#x2032;&#x2013;o&#x2013;path&#x2032;/etc/fonts&#x2032;">–path‘/etc/sane.d′–o–path′/etc/fonts′–path‘/etc/sane.d′–o–path′/etc/fonts′ -a -prune –o -name “*.conf” 查找data 目录下非空非普通的文件 find /data/ !&#x2212;empty&#x2212;o&#x2212;typef">−empty−o−typef−empty−o−typef 根据文件大小来查找:(表示不包括 ]包括 -size [+|-]#UNIT 常用单位:k, M, G,c(byte) #UNIT: (#-1, #] 如:6k 表示(5k,6k] -#UNIT:[0,#-1] 如:-6k 表示[0,5k] +#UNIT:(#,∞) 如:+6k 表示(6k,∞) 根据时间戳: 以“天”为单位; -atime [+|-]#, #: [#,#+1) +#: [#+1,∞] -#: [0,#) -mtime -ctime atimee [+|-]#以天为单位。 -atime 1 大于等于一天小于两天 -atime -1 小于一天到零天 -atime +1 大于等于一天的全部 以“分钟”为单位: -amin -mmin -cmin 示例 find /etc/ -mmin -1 查找一分钟以内被修改的文件 根据权限查找: -perm [/|-]MODE MODE: 精确权限匹配 /MODE:任何一类(u,g,o)对象的权限中只要能一位匹配即可,或关系,+ 从centos7开始淘汰 -MODE:每一类对象都必须同时拥有指定权限,与关系 0 表示不关注 find -perm 755 会匹配权限模式恰好是755的文件 只要当任意人有写权限时,find -perm +222就会匹配 只有当每个人都有写权限时,find -perm -222才会匹配 只有当其它人(other)有写权限时,find -perm -002才会匹配 find -perm 666 查找当前文件夹下权限位666的文件 find -perm /666 -ls 只要有一个权限符合就行 find -perm -666 -ls -和/的时候才用) 先666转化为110 对应匹配各位,检查1的位, 0的位不检查所以可有可无 -表示交集(都有) /表示并集 -222表示都要有写权限 处理动作 简单理解为当我们把要查找的内容搜索出来以后要做的事情 -print:默认的处理动作,显示至屏幕 -ls:类似于对查找到的文件执行“ls -l”命令 -delete:删除查找到的文件 -fls file:查找到的所有文件的长格式信息保存至指定文件中 -ok COMMAND {} \; 对查找到的每个文件执行由COMMAND指定的命令,对于每个文件执行命令之前,都会交互式要求用户确认 -exec COMMAND {} \; 对查找到的每个文件执行由COMMAND指定的命令 带ok exec结束必须要以\;结束 {}: 用于引用查找到的文件名称自身 find传递查找到的文件至后面指定的命令时,查找到所有符合条件的文件一次性传递给后面的命令 示例 find -perm -002 -delete 对符合条件的文件删除(没有任何提示建议慎用) 将查找的内容全部移动到另一个地方(改名,常用作备份) find /mnt -name “f*” -exec mv {} {}. bak \; ——————————————————————————————- 参数替换xargs 由于很多命令不支持管道|来传递参数,而日常工作中有这个必要,所以就有了xargs命令 xargs用于产生某个命令的参数,xargs 可以读入 stdin 的数据,并且以空格符或回车符将 stdin 的数据分隔成为arguments 注意:文件名或者是其他意义的名词内含有空格符的情况 有些命令不能接受过多参数,命令执行可能会失败,xargs可以解决 示例: xargs将前面的输入用空格分开然后传给后面的命令 echo f{1..100} | xargs -n1 touch n1 n1表示每次只创建一个文件 数字可以修改 ls f* |xargs rm find /sbin -perm +700 |ls -l 这个命令是错误的 find /sbin -perm +700 | xargs ls –l find和xargs格式:find | xargs COMMAND ———————————————————————————– find 示例 备份配置文件,添加.orig这个扩展名 find -name “*.conf” -exec cp {} {}.orig \; 提示删除存在时间超过3天以上的joe的临时文件 find /tmp -ctime +3 -user joe -ok rm {} \; 在主目录中寻找可被其它用户写入的文件 find ~ -perm -002 -exec chmod o-w {} \; 查找/data下的权限为644,后缀为sh的普通文件,增加执行权限 find /data –type f -perm 644 -name “*.sh” –exec chmod 755 {} \; 查看/home的目录 find /home –type d -ls ————————————————————————— 压缩、解压缩及归档工具 compress/uncompress compress [-dfvcVr] [-b maxbits] [file …] -d: 解压缩,相当于uncompress -c: 结果输出至标准输出,不删除原文件 -v: 显示详情 uncompress 解压缩 zcat file.Z >file compress file 压缩时会删除原文件 gzip/gunzip gzip [OPTION]… FILE … -d: 解压缩,相当于gunzip -c: 将压缩或解压缩的结果输出至标准输出 -#:1-9,指定压缩比,值越大压缩比越大 zcat:不显式解压缩的前提下查看文本文件内容 实例: gzip -9 mm gzip -c messages >messages.gz gzip -c -d messages.gz > messages zcat messages.gz > messages gunzip mm.gz 解压缩 zcat mm.gz 查看压缩文件 bzip2/bunzip2/bzcat bzip2 [OPTION]… FILE … -k: keep, 保留原文件 -d:解压缩 -#:1-9,压缩比,默认为9 bzcat:不显式解压缩的前提下查看文本文件内容 xz/unxz/xzcat xz [OPTION]… FILE … -k: keep, 保留原文件 -d:解压缩 -#:1-9,压缩比,默认为6 xzcat: 不显式解压缩的前提下查看文本文件内容 gz bz2 常用的两种压缩文件 zip/unzip 打包压缩 zip –r /testdir/sysconfig /etc/sysconfig/ 解包解压缩 unzip sysconfig.zip cat /var/log/messages | zip messages – unzip -p message > message 示例 zip -r /etc/sysconfig 把后面的文件压缩为z.zip cat /var/log/messages|zip messages – 此处的-表示把前面的作为 标砖输入传给zip ————————————————————– tar工具 tar(Tape ARchive,磁带归档的缩写) tar [OPTION]… (1) 创建归档 tar -cpvf /PATH/TO/SOMEFILE.tar FILE… c 表示创建 f表示需要打包的文件名 (2) 追加文件至归档: 注:不支持对压缩文件追加 tar -r -f /PATH/TO/SOMEFILE.tar FILE… (3) 查看归档文件中的文件列表 tar -t -f /PATH/TO/SOMEFILE.tar (4) 展开归档 tar -x -f /PATH/TO/SOMEFILE.tar tar -x -f /PATH/TO/SOMEFILE.tar -C /PATH/ (5) 结合压缩工具实现:归档并压缩 -j: bzip2, -z: gzip, -J: xz -T选项指定输入文件,-X选项指定包含要排除的文件列表 tar zcvf mybackup.tgz -T /root/includefilelist -X /root/excludefilelist tar -cpvf data.tar /data p表示保留属性 f表示文件 /data表示要打包的目录 tar tvf *.tar 预览打包文件 tar x.*tar -C/mnt 解压缩 -C/mnt 解压缩之后的路径 无论什么样的后缀都可以解开 tar xvf data.tar.bz2 -C /mnt 分割大的 tar 文件为多份小文件: split –b Size –d tar-file-name prefix-name prefix前缀 split -b 1M –d mybackup.tgz mybackup-parts split -b 1M mybackup.tgz mybackup-parts 合并: cat mybackup-parts* > mybackup.tar.gz ————————————————————————— cpio 功能:复制文件从或到归档 cpio命令是通过重定向的方式将文件进行打包备份,还原恢复的工具,它可以解压以“.cpio”或者“.tar”结尾的文件 cpio [选项] > 文件名或者设备名 cpio [选项] < 文件名或者设备名 选项 -o 将文件拷贝打包成文件或者将文件输出到设备上 -i 解包,将打包文件解压或将设备上的备份还原到系统 -t 预览,查看文件内容或者输出到设备上的文件内容 -v 显示打包过程中的文件名称。 -d 解包生成目录,在cpio还原时,自动的建立目录 -c 一种较新的存储方式 示例 将etc目录备份: find ./etc -print |cpio -ov >etc.cpio 内容预览 cpio –tv < etc.cpio 解包文件 cpio –idv < etc.cpio *********************************************************************** 处理文本的工具sed Stream EDitor, 行编辑器 sed是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space), 接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。然后读入下行,执行下一个循环。如果没有使诸如‘D’的特殊命令,那会在两个循环之间清空模式空间,但不会清空保留空间。这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。 功能:主要用来自动编辑一个或多个文件,简化对文件的反复操作,编写转换程序等 用法: 建议使用单引号 sed [option]… ‘script’ inputfile… 常用选项: -n:不输出模式空间内容到屏幕,即不自动打印 -e: 多点编辑 -f:/PATH/SCRIPT_FILE: 从指定文件中读取编辑脚本 -r: 支持使用扩展正则表达式 -i.bak: 备份文件并原处编辑 script: ‘地址命令’ 地址定界: (1) 不给地址:对全文进行处理 (2) 单地址: #: 指定的行,$:最后一行 /pattern/:被此处模式所能够匹配到的每一行 (3) 地址范围: #,# #,+# /pat1/,/pat2/ #,/pat1/ (4) ~:步进 1~2 奇数行 从1开始每隔2行 2~2 偶数行 示例 sed -n’2p’ f1 打印文件f1的第二行,系统默认是自动打印末尾 p就等于打印了两次,加-n只打印第二行(p不能取消) sed -n ‘2~2p’ f1打印文件f1的第二行每隔两行打印一次即打印2,4,。。 sed -n -e ‘2p’ -e ‘6p’ f1 多点编辑 实现结果是打印第二行和第六行 cat sedscript.txt sed -f sedscript.txt f1 sedscript.txt内容为 2~2p(即打印偶数行) 实现结果为1 2 2 3 44 5 66 7 88 9 1010 cat sedscript.txt sed -f sedscript.txt 在f1文件中找出符合sedcript内容的行246810 编辑命令: d: 删除模式空间匹配的行,并立即启用下一轮循环 p:打印当前模式空间内容,追加到默认输出之后 a [\]text:在指定行后面追加文本 支持使用\n实现多行追加 i [\]text:在行前面插入文本 c [\]text:替换行为单行或多行文本 w /path/somefile: 保存模式匹配的行至指定文件 r /path/somefile:读取指定文件的文本至模式空间中 匹配到的行后 =: 为模式空间中的行打印行号 !:模式空间中匹配行取反处理 s///:查找替换,支持使用其它分隔符,s@@@,s### 替换标记: g: 行内全局替换 p: 显示替换成功的行 w /PATH/TO/SOMEFILE:将替换成功的行保存至文件中 sed ‘2d’ f1删除f1文件中的第2行 sed ‘2!d’ f1 除第二行以外都删除 sed ‘2’= f1把第2行的内容换为2并打印(实际上删除了原来的内容) sed ‘2,5a\ ====’ f1 在f1文件的第2行第5行后面加==== sed ‘2,5i\ ====’ f1 在f1文件的第2行第5行前面加==== sed ‘2,5w f2’f1 sed ‘2,5r /etc/issue’ f1 即把/etc/issue/的内容放在f1文件第2到第5行的下面 sed ‘s/root/administrator/’ /etc/passwd 在/etc/passwd文件中的root替换为adminstrator(只替换了一个) sed ‘s/root/administrator/g’ /etc/passwd 全部替换 sed -r ‘s/(root)/\1er/g’ /etc/passwd把/etc/passwd中的root全部替换为rooter sed -r ‘s@/bin/bash$@/sbin/bash@’ /etc/passwd 或者 sed -r ‘s@/(bin/bash)$@/s\1@’ /etc/passwd把/etc/passwd中以bash/bash结尾的替换为sbin/bash sed -r ‘s/(.*)/\1mage/’ /etc/passwd 把/etc/passwd中所有的行尾加mage sed -r ‘s/(.*)/mage\1/’ /etc/passwd 在/etc/passwd中所有的行首加mage

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册