linux怎么查看一个命令的环境变量
查看所有环境变量:env查看指定环境变量的内容:$echo$变量名例如执行:$echo$HOME返回:-bash:/root:isadirectory//结果是HOME变量的内容等于:/root:这是一个目录编辑环境变量:$export变量名="内容"大概就是这个样
Linux下shell编程中echo和printf哪个更强大
相对而言,printf命令比echo命令好。
其一、printf命令模仿C语言里的printf,所以其移植性好。
其二、printf命令使用引用文本或空格分隔的参数,外面可以在printf中使用格式化字符串。
其三、printf命令还可以制定字符串的宽度、左右对齐方式等。
注意:默认printf命令不会像echo命令那样自动添加换行符,所以需要手动添加“\n”
linux清理系统缓存的方法
清理Linux系统缓存的方法有多种。1.一种常见的方法是使用sync命令,该命令将内存中的数据刷新到磁盘,并释放被修改过的页面的缓存。您可以通过在终端中输入以下命令来执行该操作:sync2.另一种方法是使用sysctl命令来手动清理缓存。您可以执行以下命令来清理缓存:sysctl-wvm.drop_caches=3解释:这个命令将重置页缓存、目录项和inode的缓存,以及以前使用的物理页面和dentries。这将释放缓存并提供更多的可用内存空间。3.最后,您还可以使用脚本或工具来自动清理缓存。例如,可以使用Bash脚本编写一个定期执行sysctl命令的任务,或者使用第三方工具如bleachbit来清理系统缓存。综上所述,清理Linux系统缓存的方法有多种选择,您可以根据需求和个人偏好来选择适合您的方法。
linux开启端口命令
1、查看哪些端口被打开netstat-anp。
2、关闭端口号:iptables-AINPUT-ptcp--drop端口号-jDROP,iptables-AOUTPUT-ptcp--dport
端口号-jDROP。
3、打开端口号:iptables-AINPUT-ptcp--dport端口号-jACCEPT。
4、以下是linux打开端口命令的使用方法。nc-lp22&(打开22端口,即telnet),netstat-an|grep22(查看是否打开22端口)。
5、linux打开端口命令每一个打开的端口。
关闭端口号:iptables-AINPUT-ptcp--drop端口号-jDROP,iptables-AOUTPUT-ptcp--dport
端口号-jDROP。
扩展资料:
liunx常见端口详细说明:
1、端口:7
服务:Echo
说明:能看到许多人搜索Fraggle放大器时,发送到X.X.X.0和X.X.X.255的信息。
2、端口:21
服务:FTP
说明:FTP服务器所开放的端口,用于上传、下载。最常见的攻击者用于寻找打开anonymous的FTP服务器的方法。这些服务器带有可读写的目录。木马DolyTrojan、Fore、InvisibleFTP、WebEx、WinCrash和BladeRunner所开放的端口。
3、端口:22
服务:Ssh
说明:PcAnywhere建立的TCP和这一端口的连接可能是为了寻找ssh。这一服务有许多弱点,如果配置成特定的模式,许多使用RSAREF库的版本就会有不少的漏洞
存在。
4、端口:23
服务:Telnet
说明:远程登录,入侵者在搜索远程登录UNIX的服务。大多数情况下扫描这一端口是为了找到机器运行的操作系统。还有使用其他技术,入侵者也会找到密码。木马TinyTelnetServer就开放这个端口。
5、端口:25
服务:SMTP
说明:SMTP服务器所开放的端口,用于发送邮件。入侵者寻找SMTP服务器是为了传递他们的SPAM。入侵者的帐户被关闭,他们需要连接到高带宽的E-MAIL服务器上,将简单的信息传递到不同的地址。木马Antigen、EmailPasswordSender、HaebuCoceda、ShtrilitzStealth、WinPC、WinSpy都开放这个端口。
6、端口:53
服务:DomainNameServer(DNS)
说明:DNS服务器所开放的端口,入侵者可能是试图进行区域传递(TCP),欺骗DNS(UDP)或隐藏其他的通信。因此防火墙常常过滤或记录此端口。
7、端口:80
服务:HTTP
说明:用于网页浏览。木马Executor开放此端口。
8、端口:102
服务:Messagetransferagent(MTA)-X.400overTCP/IP
说明:消息传输代理。
9、端口:110
服务:pop3
说明:POP3(PostOfficeProtocol
服务器开放此端口,用于接收邮件,客户端访问服务器端的邮件服务。POP3服务有许多公认的弱点。关于用户名和密码交换缓冲区溢出的弱点至少有20个,这意味着入侵者可以在真正登陆前进入系统。成功登陆后还有其他缓冲区溢出错误。
10、端口:137、138、139
服务:NETBIOSNameService
说明:其中137、138是UDP端口,当通过网上邻居传输文件时用这个端口。而139端口:通过这个端口进入的连接试图获得NetBIOS/SMB服务。这个协议被用于windows文件和打印机共享和SAMBA。还有WINSRegisrtation也用它。
11、端口:143
服务:InterimMailAccessProtocolv2
说明:和POP3的安全问题一样,许多IMAP服务器存在有缓冲区溢出漏洞。
记住:一种LINUX蠕虫(admv0rm)会通过这个端口繁殖,因此许多这个端口的扫描来自不知情的已经被感染的用户。当REDHAT在他们的LINUX发布版本中默认允许IMAP后,这些漏洞变的很流行。这一端口还被用于IMAP2,但并不流行。
12、端口:161
服务:SNMP
说明:SNMP允许远程管理设备。所有配置和运行信息的储存在数据库中,通过SNMP可获得这些信息。许多管理员的错误配置将被暴露在Internet。Cackers将试图使用默认的密码public、private访问系统。他们可能会试验所有可能的组合。
SNMP包可能会被错误的指向用户的网络。
13、端口:389
服务:LDAP、ILS
说明:轻型目录访问协议和NetMeetingInternetLocatorServer共用这一端口。
14、端口:443
服务:Https
说明:网页浏览端口,能提供加密和通过安全端口传输的另一种HTTP。
15、端口:993
服务:IMAP
说明:SSL(SecureSocketslayer)
16、端口:1433
服务:SQL
说明:Microsoft的SQL服务开放的端口。
17、端口:1503
服务:NetMeetingT.120
说明:NetMeetingT.120
18、端口:1720
服务:NetMeeting
说明:NetMeetingH.233callSetup。
19、端口:1731
服务:NetMeetingAudioCallControl
说明:NetMeeting音频调用控制。
20、端口:3389
服务:超级终端
说明:WINDOWS2000终端开放此端口。
21、端口:4000
服务:QQ客户端
说明:腾讯QQ客户端开放此端口。
22、端口:5631
服务:pcAnywere
说明:有时会看到很多这个端口的扫描,这依赖于用户所在的位置。当用户打开pcAnywere时,它会自动扫描局域网C类网以寻找可能的代理(这里的代理是指agent而不是proxy)。入侵者也会寻找开放这种服务的计算机。所以应该查看这种扫描的源地址。一些搜寻pcAnywere的扫描包常含端口22的UDP数据包。
23、端口:6970
服务:RealAudio
说明:RealAudio客户将从服务器的6970-7170的UDP端口接收音频数据流。这是由TCP-7070端口外向控制连接设置的。
24、端口:7323
服务:[NULL]
说明:Sygate服务器端。
25、端口:8000
服务:OICQ
说明:腾讯QQ服务器端开放此端口。
26、端口:8010
服务:Wingate
说明:Wingate代理开放此端口。
27、端口:8080
服务:代理端口
说明:WWW代理开放此端口。
Linuxcrontab定时执行任务命令格式与详细例子
基本格式:
*****command
分时日月周命令
第1列表示分钟1~59每分钟用*或者*/1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令
crontab文件的一些例子:
3021***/usr/local/etc/rc.d/lighttpdrestart
上面的例子表示每晚的21:30重启apache。
4541,10,22**/usr/local/etc/rc.d/lighttpdrestart
上面的例子表示每月1、10、22日的4:45重启apache。
101**6,0/usr/local/etc/rc.d/lighttpdrestart
上面的例子表示每周六、周日的1:10重启apache。
0,3018-23***/usr/local/etc/rc.d/lighttpdrestart
上面的例子表示在每天18:00至23:00之间每隔30分钟重启apache。
023**6/usr/local/etc/rc.d/lighttpdrestart
上面的例子表示每星期六的11:00pm重启apache。
**/1***/usr/local/etc/rc.d/lighttpdrestart
每一小时重启apache
*23-7/1***/usr/local/etc/rc.d/lighttpdrestart
晚上11点到早上7点之间,每隔一小时重启apache
0114*mon-wed/usr/local/etc/rc.d/lighttpdrestart
每月的4号与每周一到周三的11点重启apache
041jan*/usr/local/etc/rc.d/lighttpdrestart
一月一号的4点重启apache
名称:crontab
使用权限:所有使用者
使用方式:
crontabfile[-uuser]-用指定的文件替代目前的crontab。
crontab-[-uuser]-用标准输入替代目前的crontab.
crontab-1[user]-列出用户目前的crontab.
crontab-e[user]-编辑用户目前的crontab.
crontab-d[user]-删除用户目前的crontab.
crontab-cdir-指定crontab的目录。
crontab文件的格式:MHDmdcmd.
M:分钟(0-59)。
H:小时(0-23)。
D:天(1-31)。
m:月(1-12)。
d:一星期内的天(0~6,0为星期天)。
cmd要运行的程序,程序被送入sh执行,这个shell只有USER,HOME,SHELL这三个环境变量
说明:
crontab是用来让使用者在固定时间或固定间隔执行程序之用,换句话说,也就是类似使用者的时程表。-uuser是指设定指定
user的时程表,这个前提是你必须要有其权限(比如说是root)才能够指定他人的时程表。如果不使用-uuser的话,就是表示设
定自己的时程表。
参数:
crontab-e:执行文字编辑器来设定时程表,内定的文字编辑器是VI,如果你想用别的文字编辑器,则请先设定VISUAL环境变数
来指定使用那个文字编辑器(比如说setenvVISUALjoe)
crontab-r:删除目前的时程表
crontab-l:列出目前的时程表
crontabfile[-uuser]-用指定的文件替代目前的crontab。
时程表的格式如下:
f1f2f3f4f5program
其中f1是表示分钟,f2表示小时,f3表示一个月份中的第几日,f4表示月份,f5表示一个星期中的第几天。program表示要执
行的程序。
当f1为*时表示每分钟都要执行program,f2为*时表示每小时都要执行程序,其馀类推
当f1为a-b时表示从第a分钟到第b分钟这段时间内要执行,f2为a-b时表示从第a到第b小时都要执行,其馀类推
当f1为*/n时表示每n分钟个时间间隔执行一次,f2为*/n表示每n小时个时间间隔执行一次,其馀类推
当f1为a,b,c,...时表示第a,b,c,...分钟要执行,f2为a,b,c,...时表示第a,b,c...个小时要执行,其馀类推
使用者也可以将所有的设定先存放在档案file中,用crontabfile的方式来设定时程表。
例子:
#每天早上7点执行一次/bin/ls:
07***/bin/ls
在12月内,每天的早上6点到12点中,每隔3个小时执行一次/usr/bin/backup:
06-12/3*12*/usr/bin/backup
周一到周五每天下午5:00寄一封信给alex@domain.name:
017**1-5mail-s"hi"alex@domain.name</tmp/maildata
每月每天的午夜0点20分,2点20分,4点20分....执行echo"haha"
200-23/2***echo"haha"
注意:
当程序在你所指定的时间执行后,系统会寄一封信给你,显示该程序执行的内容,若是你不希望收到这样的信,请在每一行空一格之
后加上>/dev/null2>&1即可
例子2:
#每天早上6点10分
106***date
#每两个小时
0*/2***date
#晚上11点到早上8点之间每两个小时,早上8点
023-7/2,8***date
#每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点
0114*mon-weddate
#1月份日早上4点
041jan*date
范例
$crontab-l列出用户目前的crontab
linux常用命令有哪些
Linux是我们开发人员必不可少的系统,也是经常接触到的。然而,Linux命令比较多,有些不常用也难记住。那么,我们如何更高效的使用Linux命令,而又不必全面地学习呢?今天就给大家分享一下我在开发过程中,比较常用、也比较实用的Linux命令。
01查看文件或日志
查看文件内容或日志文件,相信几乎所有人都会接触到。其中,用得最多的就是head、tail和cat命令。
1、head
表示头部,查看最前面几行数据。
headtest.log:test.log文件前几行日志内容
head-n20test.log:查看test.log文件前20行日志内容
head-n-20test.log:查看test.log除了最后20行日志内容
2、tail
表示尾部,查看最后几行或实时日志。
tail-ftest.log:实时查看test.log文件最后几行日志内容
tail-f-n20test.log:实时查看test.log文件最后20行日志内容
tail-n20test.log:查看test.log文件最后20行日志内容
tail-n+20test.log:查看test.log文件20行后的所有日志内容
3、cat
用于查看文件内容。
cattest.log:查看test.log文件所有内容
02本地复制
同一台服务器不同目录之间复制文件或目录也是经常用到的。
1、复制文件
cptest.log/home/geshan/logs:复制test.log文件到/home/geshan/logs/目录下
cptest.log/home/geshan/logs/cptest.log:复制test.log文件到/home/geshan/logs/目录下并重新命名为cptest.log
2、复制文件夹
cp-rlogs//home/geshan/:复制logs目录及目录下所有文件到/home/geshan/目录下,此时该目录会有logs目录
cp-rlogs//home/geshan/testlogs/:复制logs目录及目录下所有文件到/home/geshan/testlogs/目录下,并把logs目录重新命名为testlogs,前提是/home/geshan/目录没有testlogs目录
注:-r或-R表示循环,循环目录下所有文件和目录。下面所有命令也是如此。
03远程复制
当我们需要从远程服务器复制某个文件或目录到本地登录的服务器时,大部分人想到先登录远程服务器下载该文件,然后再登录本地服务器再上传文件。这样是比较麻烦,效率也不高。
1、本地服务器复制到远程服务器
(1)复制文件
命令1:
scplocal_fileremote_username@remote_ip:remote_folder
命令2:
scplocal_fileremote_username@remote_ip:remote_file
命令3:
scplocal_fileremote_ip:remote_folder
命令4:
scplocal_fileremote_ip:remote_file
第1,2个指定了用户名,命令执行后需要输入用户密码,第1个仅指定了远程的目录,文件名字不变;第2个指定了文件名;第3,4个没有指定用户名,命令执行后默认与当前服务器用户名并需要输入用户密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名。
实例1:从本地服务器复制test.log至192.168.130.130服务器的/home/geshan/目录,并重新命名为
20190125.log
命令:
实例2:从本地服务器复制test.log至192.168.130.130服务器的/home/geshan/目录
命令:
(2)复制目录
命令1:
scp-rlocal_folderremote_username@remote_ip:remote_folder
命令2:
scp-rlocal_folderremote_ip:remote_folder
第1个指定了用户名,命令执行后需要输入用户密码;第2个没有指定用户名,命令执行后需要输入用户名和密码。
实例:从本地服务器/home/appuser/目录下的tomcat目录复制到192.168.130.130服务器的/home/geshan/目录命令:
2、从远程服务器复制到本地服务器
从远程复制到本地的scp命令与上面的命令雷同,只要将从本地复制到远程的命令后面2个参数互换顺序就行了。
(1)复制文件
实例:
从192.168.130.130远程服务器的/home/geshan/路径下test.log文件复制到本地服务器/home/appuser/路径
命令:
scproot@192.168.130.130:/home/geshan/test.log/home/appuser/
(2)复制目录
实例:从192.168.130.130远程服务器的/home/geshan/路径下tomcat文件夹复制到本地服务器/home/appuser/路径
命令:
注:ip地址和路径之间(即冒号之间)没有任何空格,否则会报错。当第一次和另外一台服务通信(如复制文件),会提示是否信任,输入yes即可。
04压缩和解压
压缩和解压文件也是经常遇到的。如果下载一个目录下的所有文件,可以直接下载这个目录,但是直接下载目录的话,文件一旦很多,下载过程中很容易丢失文件,下载速度也比较慢。一般情况下是先压缩文件夹再下载。下面给大家介绍四种压缩和解压命令。
1、tar命令
解压:
压缩:
实例:解压一个log.tar文件:
压缩log目录并命名为log.tar:
2、gz命令
压缩:
注:压缩为.gz文件源文件会消失如果想保留源文件,使用下面命令
解压:
.tar.gz和.tgz解压:
压缩:
压缩多个文件:
实例:解压tomcat.tar.gz文件
压缩tomcat目录,并命名为tomcat.tar.gz文件
3、zip命令
解压:unzipfileName.zip压缩:
注:压缩目录时,需加-r,表示循环该目录下所有文件和目录。压缩多个文件或目录时,文件或目录之间需要空格。
实例:解压一个log.zip文件:
压缩log文件目录并命名为log.zip:
压缩log1和log2目录并命名为log.zip:
压缩test1.log和test2.log文件并命名为log.zip:
4、rar命令
同理,和zip命令类似,只需把zip改为rar即可。
05修改权限
Linux系统中文件和目录访问权限是不同的,通过些方式可以确定谁可以对该文件和目录进行相应的操作。
其中,文件或目录的访问权限分为只读,只写和可执行三种,分别代表可读、可写和可执行。
1、chgrp命令
改变文件或目录所属的组。命令:
实例:把test.log文件所属的组修改为geshan组
把logs目录及该目录下所有文件所属的组修改为geshan组
2、chown命令
更改某个文件或目录所属的用户。命令:
实例:把test.log文件所属用户修改为geshan用户
把logs目录及该目录下所有文件所属用户修改为geshan用户
3、chmod命令
用于改变文件或目录的访问权限。用户用它控制文件或目录的访问权限。命令:
其中,mode有很多种表示含义,下面只对数字说明。大部分人看到mode有777或776等权限,这些表示什么呢?
为了方便,把mode改为abc,其中a,b,c各为一个数字,分别表示user、group及other的权限。r=4,w=2,x=1,r表示Read读,w表示Write写,x表示eXecute。
若要rwx属性则4+2+1=7;
若要rw-属性则4+2=6;
若要r-x属性则4+1=5。
实例:把test.log文件修改可读写执行(即777)操作。
把logs目录及目录下所有文件修改为读写(666)操作。
在Linux系统中输入ll(两个小写LL),如果文件或目录为777(读写执行)权限,可看到最前面为-rwxrwxrwx。如果为666(读写)权限,可看到最前面为-rw-rw-rw。
注:一般修改文件或目录权限需要超级用户(root)进行修改,否则可能会报权限不足。
这些Linux命令是比较常用实用的命令,肯定会有用得到的时候,如果对你有所帮助,记得点赞收藏转发哦!