热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linux——小技巧

1、关于sysctl:其实etcsysctl.conf对应的是procsys目录例如要修改procsysnetipv4ip_default_ttl的话,就修改e
1、关于sysctl:

其实/etc/sysctl.conf对应的是/proc/sys/目录...
例如要修改/proc/sys/net/ipv4/ip_default_ttl的话,就修改/etc/sysctl.conf文件如下...
添加一行为:
net.ipv4.ip_default_ttl=255,也就是把文件夹变成小数点就可以啦
然后执行一次
#sysctl -p
就可以生效啦。

2、关于arp协议:
关于arp命令,注意其中的Flags,如果是C,表示是动态的,但是如果使用arp -s 来绑定的话则是显示M,是静态
所以后边每个侦都需要加入填充字符以达到以太网的最小长度要求60字节。
大多数的bsd实现把完成tcp连接请求的时间限制设置为75秒。
1byte=8bit

3、关于tcpdump
想输出点分十进制:tcpdump -n ***
想输出mac地址:tcpdump -e ***
抓到目标为A的包:tcpdump dst A
问题:如何使用Tcpdump显示抓到的包的长度,因为以太网包的最小长度为60,用packetyzer抓到48

4、关于vim的使用:
替换当前行的某个单词    :s/old/new/g
替换全文所有符合的单词  :%s/old/new/g
替换全文所有符合的单词并让用户确认: :%s/old/new/gc

5、如何使用date修改系统时间:
$ date 1124170004
此命令将日期设置为 2004 年 (04) 11月 24 日 (1124) 17时 (1700)。
#hwclock写入bios

6、Linux的路由重定向
/proc/sys/net/ipv4/conf/uall/send_redirects
/proc/sys/net/ipv4/conf/default/send_redirects
/proc/sys/net/ipv4/conf/eth0/send_redirects



7、查看Linux分区
#fdisk -l
或者#parted
(parted)print
这样可以看到各个分区的类型及大小,不过这两个看到的结果并非相同
#cat /proc/partitions
查看分区卷标:
#e2label /dev/hdXn

8、find命令常见使用方法:
查找名字为conf的目录
#find /目录  -type  d -name conf
注意type可能为b,c,d,l等...
查找文件权限为755的文件
#find /目录 -perm 755 -print
如果用八进制,则可以用
#find /目录 -perm -007 -print  (跟chmod里的表示方法相同)
查找文件属主为kt的文件
#find /目录 -user kt -print
查找group为kt的文件
#find /目录 -group kt -print
查找名字为file的文件
#find /目录 -name file
查找大小为0的文件
#find /目录 -size 0
忽略某个目录:
#find /目录 -name "/目录名" -prune -o -print
查找属主帐户已经被删除的文件:
#find /目录 -nouser -print
按更改时间查找文件
#find /目录 -mtime -5 -print  单位是5,查找更改时间在5日以内的文件
查找更改时间在3日以内的文件
#find /目录 -mtime +3 -print
查找更改时间比file1新但比file2旧的文件
#find /目录 file1 ! -newer file2 -exec ls -l {} \;
不仅查询根目录,而且查询子目录
#find /目录 -name file -depth -print
只在当前文件系统内部查询,而不进入其他文件系统
#find /目录 -name file -mount -print
用exec对查找出的文件进行操作
#find /目录 -type f -exec ls -l {} \;     //-exec ls -l {} \;则表示执行“ls -l”的操作.
用exec安全模式,在删除前有提示
#find /目录 -name "*.log" -mtime +5 -ok rm {} \;   //这样在删除文件前会先提示
根据inode号来取得硬链接
#find /目录 -inum inode号

对find找出的文件执行操作可以使用-exec 执行指令 {} \;也可以使用 | xargs 指令

9、如何修改Linux网卡的mtu
 (1) ifconfig eth0 mtu 1400        (使用系统都带的ifconfig)
 (2) ip link set eth0 mtu 1400     (使用系统都带的ip)

10、修改系统时间
date -s “2003-04-14 cst”,cst指时区,时间设定用date -s 18:10
修改后执行clock -w 写到CMOS

11、以Tomcat用户来启动tomcat
#su - tomcat -c "/usr/local/tomcat"
但是难道这样不需要输入密码吗?

12、如何查看当前运行级别 
#runlevel
或者
#who -r


13、修改主机名
主要是三个文件(1)/etc/sysconfig/network-scripts/ifcfg-eth0 (2)/etc/hosts
(3)/etc/sysconfig/network

14、修改网卡MAC地址:
#ifconfig eth0 down
#ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE
#ifconfig eth0 up


15、在Linux上释放所有arp:
#arp -d -a

16、在SCO上scosh不能telnet到Linux,要修改TERM
#export TERM=ANSI

17、用sysctl -a查看/proc/sys/下各个值

18、查询22端口正运行什么程序
#lsof -i :22

19、Linux上添加路由
添加到某网段的路由:route add -net desIP rouIP dev eth0
添加到某ip的路由:  route add -host desIP rouIP dev eth0

20、使退出登陆后程序继续运行:
# disown
或者是
nohup command &

21、Linux共有几种类型的文件:
d 目录。
l 符号链接(指向另一个文件)。
s 套接字文件。
b 块设备文件。
c 字符设备文件。
p 命名管道文件。
- 普通文件,或者更准确地说,不属于以上几种类型的文件。

22、针对文件的权限:
r 读权限。
w 写权限。
x 执行权限。
s 文件属主和组set-ID。
t 粘性位*。
l 给文件加锁,使其他用户无法访问。

23、redhat的版本如何判断
#cat /proc/version               (如何怎么修改使系统启动后就为默认的Jintao Linux v2.0)
#cat /etc/redhat-release
#cat /etc/issue

24、使用md5sum来校验文件
#md5sum isofile > hashfile
#md5sum -c hashfile

25、查看硬盘的使用情况
#df -k  以k为单位
#df -m  以m为单位
#df -h  以人性化单位显示

26、查看目录的大小
#du -sh dirname
-s 仅仅显示总计
-h 显示人性化的信息

27、字符模式下设置环境变量
#export 变量名=变量值

28、关于.vimrc


29、关于fstab


30、系统默认的suid/sgid程序
/usr/bin/passwd
如果不让用户自己有权限修改自己密码,可以把其s位去掉
/usr/sbin/userhelper
/usr/sbin/userisdnctl
/usr/sbin/usrnetctl
/sbin/pam_timestamp_check
/sbin/unix_chkpwd
/sbin/pwdb_chkpwd


31、关于中文处理


32、关于grub
重新安装一次grub
#grub-install /dev/hda1


33、关于pam
/etc/pam.d



34、关于TCP_WRAPPERS
这个跟xinetd有关系...而现在一般使用standalone模式...



35、关于dns的查询使用办法
nslookup
host
dig

36、关于ssh
scp
制造密钥

37、设置网卡为混杂模式
#ifconfig eth0 promisc


38、自动化任务  cron,at,batch
系统管理员通过cron.deny和cron.allow来禁止和允许用户拥有自己的crontab文件...
crontab的格式:  分 时 日 月 星期 要运行的命令(注意使用的命令必须是绝对路径)
crontab -e 编辑
crontab -r 删除
crontab -u user 用某用户来执行
crontab -l 列出当前crontab内容
at也通过/etc/at.allow和at.deny文件空子后哪些用户可以使用at命令,哪些不行



39、关于ip层的路由
路由器在查找路由表的时候,路由表有三种
1、特定主机 2、特定网络 3、默认路由
优先级依次递减,主机路由高于网络路由,网络路由高于默认路由,同时也是由掩码最大匹配来决定优先级

40、创建文件时即规定日期
#touch -t 11091531 file            //11.09日15:31分

41、如何修改文件属性?
用chattr
用setfacl
例如修改文件的更新日期?

42、关于if语句的test
EXPRESSION1 -a EXPRESSION2 两条语句都为true
EXPRESSION1 -o EXPRESSION2 两条语句任意一条为true
[-n] STRING                String串非零
-z STRING                  串的长度为0
STRING1 = STRING2          两个串相等
STRING1 != STRING2        两个串不相等
INTEGER1 -eq INTEGER2      两个整数相同                      equal
INTEGER1 -ge INTEGER2      INTEGER1大于等于INTEGER2          greater equal
INTEGER1 -gt INTEGER2      INTEGER1大于INTEGER2           greater than
INTEGER1 -le INTEGER2      INTEGER1小于等于INTEGER2          less equal
INTEGER1 -lt INTEGER2      INTEGER1小于INTEGER2              less than
INTEGER1 -ne INTEGER2      INTEGER1不等于INTEGER2         not equal
FILE1 -ef FILE2            file1跟file2有同个设备和inode号   equal file 
FILE1 -nt FILE2            file1比file2新                    newer than
FILE1 -ot FILE2            file1比file2老           older than
-b file          file存在也是块设备           block
-c file          file存在且是字符设备           character
-d file          file存在且是文件夹           directory
-e file          file存在              exist
-f file          file存在并是个普通文件
-g file                    file存在并是SGID
-h file          file存在并是个符号链接
-G file          file存在并被有效的组拥有
-k file          file存在并有s位
-L file          file存在并是个符号链接
-O file                    file存在并被有效用户拥有
-p file          file存在并是个named pipe
-r file                 file存在并可读
-s file                    file存在并不为0(greater than 0)
-S file          file存在并是个socket
-t [FD]          文件描述FD ?????  这个主要是为了测试shell是否是交互式...
-u file          file存在并且s位设置过
-w file           file存在并可写
-x file          file存在并可执行

42、修改Linux网卡为混杂模式以sniff
#ifconfig eth0 promisc
虽然说是可以抓获所有的包,但是这种是否捕获或分析抓到的包是由os决定是否接收的,也就是说并不能真正的...

43、物理安全--->防止ctrl_alt_del重新启动服务器
#vi /etc/inittab
# Trap CTRL-ALT-DELETE
#ca::ctrlaltdel:/sbin/shutdown -t3 -r now
将ca这行给注释掉...

44、关闭Linux Kernel的路由重定向功能
在/etc/sysctl.conf中加入如下行:
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.eth0.send_redirects = 0
net.ipv4.conf.eth1.send_redirects = 0

45、关于netstat -rn中的flags的解释
U 该路由可以使用。
G 该路由是到一个网关(路由器)。如果没有设置该标志,说明目的地是直接相连的。
H 该路由是到一个主机,也就是说,目的地址是一个完整的主机地址。如果没有设置该
标志,说明该路由是到一个网络,而目的地址是一个网络地址:一个网络号,或者网
络号与子网号的组合。
D 该路由是由重定向报文创建的。
M 该路由已被重定向报文修改。
S 该路由是静态路由

46、关于grep的选项
常用的grep选项有:
-c 只输出匹配行的行数。
-i 不区分大小写(只适用于单字符)。
-h 查询多文件时不显示文件名。
-l 查询多文件时只输出包含匹配字符的文件名。
-n 显示匹配行及行号。
-s 不显示不存在或无匹配文本的错误信息。
-v 显示不包含匹配文本的所有行。
-w 精确匹配某个单词
'\' file 精确匹配file文件中的abc字符

精确匹配的三种grep:
1 grep -w "abc" data.f
2 grep &#39;\<48\>&#39; data.f
3 grep "48\>" data.f
常用grep,   cniv
grep在使用正则表达式的时候,在匹配策略外面最好用单引号来括上

47、判断当前登陆用户
echo $LOGNAME
echo $USER
id
whoami
who am i
logname

48、关于unset
#firstVar&#61;first
#set
#unset firstVar

49、awk的使用...
精确匹配第三个字符为48的行
awk &#39;{ if($3~/^48$/ ) print $0}&#39; test.txt    //注意这里尽管用正则表达式来匹配&#xff0c;但不能用/\^48\$/,而是可以直接使用^48$
如果是匹配第三个字符包含48的行
awk &#39;{ if($3~/48/) print $0}&#39; test.txt
awk中正则表达式中使用.来表示单个字符&#xff0c;但是shell中使用&#xff1f;匹配单个字符。
用|表示1或2的关系&#xff0c;但只取一个&#xff0c;使用|时&#xff0c;必须使用圆括号括起来&#xff0c;如
awk &#39;$0~/(Yellow|Brown)/&#39; test.txt
用&&表示与的关系&#xff0c;&&的两天最好也要用括号括起来&#xff0c;如
awk &#39;{ if($1&#61;&#61;"fist" && $2&#61;&#61;"second") print $0}&#39; test.txt
用||表示或的关系&#xff0c;可以取一个&#xff0c;也可以取两个
awk &#39;{ if ($4&#61;&#61;"forth" || $5&#61;&#61;"fifth") print $0 }&#39; test.txt
同时匹配两个条件的使用:
awk &#39;条件1 &&  条件2 { print $xxx }&#39;

50、shell中&#96;的作用
表达不清楚了...如
test&#61;&#96;echo $LOGNAME&#96;
则echo $test的结果为echo $LOGNAME的结果...


51、tr的使用
将test.txt中的小写字母转换成大写
tr "[a-z]" "[A-Z]" .txt
不能用 tr "[a-z]" "[A-Z]" .txt



52、关于用户登陆终端的显示&#xff1a;
如果使用网络登陆&#xff0c;则TTY显示为如下&#xff1a;
USER     TTY      FROM              LOGIN&#64;   IDLE   JCPU   PCPU  WHAT
root     pts/0    169.254.1.2       6:57am  0.00s 25.28s  0.03s  w
如果使用本地登陆&#xff0c;则显示如下&#xff1a;
root     tty1     -                12:36pm  3.00s  0.43s  0.43s  -bash


53、关于shell中控制字符对应的二进制码
 字符      代码
 ^      136
 ^M      015
 tab      011
 ^Z      032
响铃      007
 \n
空格      040

 54、cat的用法
 cat -v test.txt    显示转换字符





55、关于参数
$# 传递到脚本的参数个数
$* 以一个单字符串显示所有向脚本传递的参数。与位置变量不同&#xff0c;此选项参数可超过9个
$$ 脚本运行的当前进程ID号
$! 后台运行的最后一个进程的进程ID号
$&#64; 与$#相同&#xff0c;但是使用时加引号&#xff0c;并在引号中返回每个参数
$- 显示shell使用的当前选项&#xff0c;与set命令功能相同
$? 显示最后命令的退出状态。0表示没有错误&#xff0c;其他任何值表明有错误。

56、关于sed
sed -n &#39;2p&#39; test.txt  //打印test.txt中第二行的内容
sed -n &#39;1,3p&#39; test.txt //打印test.txt中第一到第三行的内容  单引号有无无所谓,","表示行到行
sed -n &#39;4,/The/p&#39; test.txt  //打印第四行中匹配The
sed -n &#39;1,$p&#39; quote.txt   //打印整个文件
sed &#39;s/a/b/8&#39;   //替换每行中匹配第8a&#xff0c;改为b
sed &#61; filename | sed &#39;N;s/\n/:/&#39; filename   
正则表达式:
字符类 描述
[:alnum:] 字母数字 [a-z A-Z 0-9]
[:alpha:] 字母 [a-z A-Z]
[:blank:] 空格或制表键
[:cntrl:] 任何控制字符
[:digit:] 数字 [0-9]
[:graph:] 任何可视字符&#xff08;无空格&#xff09;
[:lower:] 小写 [a-z]
[:print:] 非控制字符
[:punct:] 标点字符
[:space:] 空格
[:upper:] 大写 [A-Z]
[:xdigit:] 十六进制数字 [0-9 a-f A-F]
利用sed来定位
xx为一行号&#xff0c;如1
x,y 表示行号范围从x到y&#xff0c;如2&#xff0c;5表示从第2行到第5行
/pattern/ 查询包含模式的行。例如/ disk /或/[a-z]/
/pattern/pattern/ 查询包含两个模式的行。例如/ disk/disks/
pattern/,x 在给定行号上查询包含模式的行。如/ ribbon / , 3
x,/pattern/ 通过行号和模式查询匹配行。3 . / vdu /
x,y! 查询不包含指定行号x和y的行。1 , 2 !

57、关于test
可以使用如下命令判断文件是否可写
&#xff08;1&#xff09;#[ -w fruit.txt ]    //注意其中空格
#echo $?
&#xff08;2&#xff09;#test -w fruit.txt
#echo $?
这里根据返回的状态来判断是否可写&#xff0c;如果返回0&#xff0c;则表示可写。0就表示成功...

58、关于expr
首先请注意&#xff0c;必须是整数计算...
#expr 10&#43;10 结果为10&#43;10
#expr 10 &#43; 10则结果为20
用乘号时需要用\转义..

59、实时查看系统所使用内存
#free -b -s5
5秒循环一次...

60 shell中的系统变量
$LOGNAME   当前用户的名字...

61 一般需要用\屏蔽的字符
$.&#39;"*[]^|0\&#43;?

62 关于正则表达式
匹配某字符出现次数
pattern\{n\} 匹配模式出现n次。
pattern\{n,\} 匹配模式出现最少n次。
pattern\{n,m} 匹配模式出现n到m次之间&#xff0c;n , m为0 - 2 5 5中任意整数。

63 使用gpg校验
#gpg --verify xxx.asc



64 正则表达式
用来匹配IP:
&#39;[0-9][0-9][0-9].[0-9][0-9][0-9].[0-9][0-9][0-9].[0-9][0-9][0-9]&#39;
等同
&#39;[0-9]\{3\}\.[0-9]\{3\}&#39;

65 ./configure
./configure生成Makefile时查看帮助
./configure --help
66 关于man
1 用户级命令和应用程序
2 系统调用和内核出错代码
3 库调用
4 设备驱动和网络协议
5 标准文件格式
6 游戏和演示
7 各种文件和文档
8 系统管理命令
9 少见隐秘的内核规范和接口

转:https://www.cnblogs.com/linzhanyu/archive/2005/04/12/136386.html



推荐阅读
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • 在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板
    本文介绍了在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板的方法和步骤,包括将ResourceDictionary添加到页面中以及在ResourceDictionary中实现模板的构建。通过本文的阅读,读者可以了解到在Xamarin XAML语言中构建控件模板的具体操作步骤和语法形式。 ... [详细]
  • 本文介绍了Windows操作系统的版本及其特点,包括Windows 7系统的6个版本:Starter、Home Basic、Home Premium、Professional、Enterprise、Ultimate。Windows操作系统是微软公司研发的一套操作系统,具有人机操作性优异、支持的应用软件较多、对硬件支持良好等优点。Windows 7 Starter是功能最少的版本,缺乏Aero特效功能,没有64位支持,最初设计不能同时运行三个以上应用程序。 ... [详细]
  • r2dbc配置多数据源
    R2dbc配置多数据源问题根据官网配置r2dbc连接mysql多数据源所遇到的问题pom配置可以参考官网,不过我这样配置会报错我并没有这样配置将以下内容添加到pom.xml文件d ... [详细]
  • 本文介绍了如何清除Eclipse中SVN用户的设置。首先需要查看使用的SVN接口,然后根据接口类型找到相应的目录并删除相关文件。最后使用SVN更新或提交来应用更改。 ... [详细]
  • 配置IPv4静态路由实现企业网内不同网段用户互访
    本文介绍了通过配置IPv4静态路由实现企业网内不同网段用户互访的方法。首先需要配置接口的链路层协议参数和IP地址,使相邻节点网络层可达。然后按照静态路由组网图的操作步骤,配置静态路由。这样任意两台主机之间都能够互通。 ... [详细]
  • JDK源码学习之HashTable(附带面试题)的学习笔记
    本文介绍了JDK源码学习之HashTable(附带面试题)的学习笔记,包括HashTable的定义、数据类型、与HashMap的关系和区别。文章提供了干货,并附带了其他相关主题的学习笔记。 ... [详细]
author-avatar
Alistar1991_281
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有