`
bwhzhl
  • 浏览: 100414 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Linux小技巧收集

阅读更多

前言:因为用Linux的时间越来越长,所需要做的事也越来越多,效率成了我必需突破的瓶颈。在此总结一下这段时间用过的一些好的Linux技巧。以后时常补充这样自己要用的时候就很方便了。
Author:Ajian
[文本处理]
1、查看某文件的一部分
如果你只想看文件的前 5 行,可以使用 head 命令,
如:head -5 /etc/passwd
如果你想查看文件的后 10 行,可以使用 tail 命令,
如:tail -10 /etc/passwd
查看文件中间一段,可以使用 sed 命令
如:sed –n ’5,10p’ /etc/passwd 这样你就可以只查看文件的第 5 行到第 10 行

2、将 file.txt 里的123改为 456
方法 1
sed ‘s/123/456/g’ file.txt > file.txt.new 修改的保存到其它文件
sed -i ‘s/123/456/g’ file.txt 直接修改原文件
方法 2
vi file.txt
输入命令:
:%s/123/456/g
注意:如果替换的文件有特殊符号如/就要用\来取消。
例:sed -i ‘s/\/usr\/local\/apache2\/htdocs/\/var\/www\/html/g’ /usr/local/apache2/conf/httpd.conf
如果只是下原有的行后添加就用&
例:sed -i ‘s/DirectoryIndex index.html index.html.var/& index.htm index.php /g’ /usr/local/apache2/conf/httpd.conf
3、echo 典型应用
echo “abcdefg” | perl -lne ‘{$a = reverse($_); print $a;}’ 把一个字符串翻转
echo bottle|rev 把一个字符串翻转

[文件目录管理]
1、删除几天以前的所有东西(包括目录名和目录中的文件)
1) find . -ctime +3 -exec rm -rf {} \;
2) find ./ -mtime +3 -print|xargs rm -f –r

2、在多级目录中查找某个文件的方法
1) find /dir -name filename.ext
2) du -a | grep filename.ext
3) locate filename.ext

3、删除软硬连接注意点
删除软件连接的时候一定要记得不要在删除的文件夹后加一斜杠,
rm -f filename/
会说这是一个文件夹不能删除
rm filename
会提示说是否要删除这个连接。
如果用的第一种可能会把其它文件都删除

4、删除目录中含输入关键字的文件
find /mnt/ebook/ -type f -exec grep “在此输入关键字” {} \; -print -exec rm {} \;

5、在当前目录下解压 rpm 文件
cat kernel-ntfs-2.4.20-8.i686.rpm | rpm2cpio | pax –r

6、用命令清空 Root 回收站中的文件
cd /var/.Trash-root
rm -rf *

[系统与安全]
1、让用户的密码必须有一定的长度,并且符合复杂度
vi /etc/login.defs,修改 PASS_MIN_LEN

2、用 dat 查询昨天的日期
date –date=’yesterday’

3、修改系统时
1) 设置你的时区: timeconfig 里选择Asia/Shanghai (如果你位于 GMT+8 中国区域)
2) 与标准时间服务器校准: ntpdate time.nist.gov
date -s “2003-04-14 cst”,cst 指时区,时间设定用 date -s 18:10
修改后执行 clock -w 写到 CMOS
3) 将当前软件系统时间写入硬件时钟: hwclock –systohc

4、改变 redhat 的系统语言/字符集
修改 /etc/sysconfig/i18n 文件,如
LANG=”en_US”,xwindow会显示英文界面,
LANG=”zh_CN.GB18030″,xwindow会显示中文界面。
还有一种方法
cp /etc/sysconfig/i18n $HOME/.i18n
vi $HOME/.i18n 文件,如
LANG=”en_US”,xwindow会显示英文界面,
LANG=”zh_CN.GB18030″,xwindow会显示中文界面。
这样就可以改变个人的界面语言,而不影响别的用户

5、查看系统信息
cat /proc/cpuinfo – CPU (i.e. vendor, Mhz, flags like mmx)
cat /proc/interrupts – 中断
cat /proc/ioports – 设备 IO端口
cat /proc/meminfo – 内存信息(i.e. mem used, free, swap size)
cat /proc/partitions – 所有设备的所有分区
cat /proc/pci – PCI设备的信息
cat /proc/swaps – 所有 Swap 分区的信息
cat /proc/version – Linux 的版本号 相当于 uname -r
uname -a – 看系统内核等信息

6、让 linux自动同步时间
vi /etc/crontab
加上一句:
00 0 1 * * root rdate -s time.nist.gov

7、如何防止某个关键文件被修改
在 Linux 下,有些配置文件是不允许任何人(包括 root)修改的。为了防止被误删除或修改
可以设定该文件的“不可修改位(immutable) ”。命令如下:
# chattr +i /etc/fstab
如果需要修改文件则采用下面的命令:
# chattr -i /etc/fstab
[管理与网络]
1、 lsof 用法小全
lsof abc.txt 显示开启文件 abc.txt 的进程
lsof -i :22 知道 22 端口现在运行什么程序
lsof -c nsd 显示 nsd 进程现在打开的文件
lsof -g gid 显示归属 gid 的进程情况
lsof +d /usr/local/ 显示目录下被进程开启的文件
lsof +D /usr/local/ 同上,但是会搜索目录下的目录,时间较长
lsof -d 4 显示使用 fd 为4 的进程
lsof -i [i] 用以显示符合条件的进程情况
语法: lsof -i[46] [protocol][@hostname|hostaddr][:service|port]
46 –> IPv4 or IPv6
protocol –> TCP or UDP
hostname –> Internet host name
hostaddr –> IPv4 位置
service –> /etc/service中的 service name (可以不止一个)
port –> 端口号(可以不止一个)
例子: TCP:25 – TCP and port 25
@1.2.3.4 – Internet IPv4 host address 1.2.3.4
tcp@ohaha.ks.edu.tw:ftp – TCP protocol host:ohaha.ks.edu.tw service name:ftp
lsof -n 不将 IP转换为 hostname,预设是不加上-n参数
例子: lsof -i tcp@ohaha.ks.edu.tw:ftp -n
lsof -p 12 看进程号为 12的进程打开了哪些文件

2、grep 不显示本身进程
#ps -aux|grep httpd|grep -v grep
grep -v grep可以取消显示你所执行的 grep 本身这个进程,-v 参数是不显示所列出的进程名

3、查看本机IP
ifconfig |grep “inet” |cut -c 0-36|sed -e ‘s/[a-zA-Z: ]//g’
hostname –i

4、查看有多少活动的Httpd进程
#!/bin/sh
while (true)
do
pstree |grep “*\[httpd\]$”|sed ‘s/.*-\([0-9][0-9]*\)\*\[httpd\]$/\1/’
sleep 3
done
同样可以引用到其它的进程

5、设置 com1口,让超级终端通过 com1口进行登录
第一步:确认有/sbin/agetty,编辑/etc/inittab,添加
7:2345:respawn:/sbin/agetty /dev/ttyS0 9600
9600bps 是因为连路由器时缺省一般都是这种速率,也可以设成
19200、38400、57600、115200
第二步:修改/etc/securetty,添加一行:ttyS0,确保 root 用户能登录
第三步:重启机器,就可以拔掉鼠标键盘显示器(启动时最好还是要看看输出信息)了

6、查找或删除正在使用某文件的进程
fuser filename
fuser -k filename

7、已知网络中一个机器的硬件地址,如何知道它所对应的 IP地址
在 Linux 下,假定要查“00:0A:EB:27:17:B9”这样一个硬件地址所对应的 IP 地址,可以使
用以下命令:
# cat /proc/net/arp |grep 00:0A:EB:27:17:B9
192.168.2.54 0×1 0×6 00:0A:EB:27:17:B9 *eth2
另外,还可以用“arp -a”命令查询:
# arp –a|grep 00:0A:EB:27:17:B9
(192.168.2.54)at 00:0A:EB:27:17:B9[ether] on eth2

8、在 Linux下如何绑定 IP地址和硬件地址
可以编辑一个地址对应文件,里面记录了 IP地址和硬件地址的对应关系,然后执行“arp –
f 地址对应文件”。如果没有指定地址对应文件,则通常情况下一默认文件/etc/ethers为准。
地址对应文件的格式如下:
192.168.0.1 00:0D:61:27:58:93
192.168.0.2 00:40:F4:2A:2E:5C
192.168.0.3 00:0A:EB:5E:BA:8E

9、更改 eth0是否混杂模式(混杂模式可以监听其它主机的信息)
网卡 eth0 改成混杂模式:
ifconfig eth0 promisc
关闭混杂模式:
ifconfig eth0 –promisc

10、linux下清空 arp表的命令
#arp -d -a(适用于 bsd)
for HOST in `arp | sed ‘/Address/d’ | awk ‘{ print $1}’` ; do arp -d $HOST; done

11、如何得到网卡的 MAC地址
arp -a | awk ‘{print $4}’
ifconfig eth0 | head -1 | awk ‘{print $5}’

12、一个网卡绑定多 ip
方法一、建立eth0:1在网卡后加冒号和数字的文件
cp /etc/sysconfig/network-scripts/eth0 /etc/sysconfig/network-scripts/eth0:1
再修改下eth0:1就可以了.
方法二、
在/etc/sysconfig/network-scripts/下创建一个文件:ifcfg-ethX-rangeX (”X”为网卡号)
文件内容:
IPADDR_START=
IPADDR_END=
CLONENUM=0
可以有 256个 ip

13、一个 ip如何绑定两块网卡
假设 192.168.0.88 是ip,192.168.0.1 是网关:
/sbin/modprobe bonding miimon=100 mode=1
/sbin/ifdown eth0
/sbin/ifdown eth1
/sbin/ifconfig bond0 192.168.0.88
/sbin/ifenslave bond0 eth0 eth1
/sbin/route add default gw 192.168.0.1

14、设置ssh 上来能不自动断线
修改自己 HOME 目录下的.bash_profile文件,加上
export TMOUT=1000000 (以秒为单位)
然后运行 source .bash_profile

15、mount 局域网上其他windows机器共享出的目录
mount -t smbfs -o username=guest,password=guest //machine/path /mnt/cdrom

16、向登陆到同一台服务器上的所有用户发一条信息
1)输入 wall并回车
2)输入要发送的消息
3)结束时按“Control-d”键,消息即在用户的控制窗口中显示

17、向远程机器上的所有用户发送消息
使用 rwall(向所有人远程写)命令同时发送消息到网络中的所有用户。
rwall hostname file
当使用 CDE或 OpenWindows 等窗口系统时,每个窗口被看成是一次单个的登录;
如果用户登录次数超过一次则消息直接发送到控制窗口

18、向网络中的所有用户发送消息
发送消息到网络中的所有用户
1)输入 rwall -n netgroup 并回车
2)输入要发送的消息
3)结束时按“Control-d”键,消息即在系统每个用户的控制窗口中显示,下面是系统管理员
发消息到网络组 Eng 每个用户的例子:
% rwall -n EngSystem will be rebooted at 11:00.(Control-d)
%
用户控制窗口中的消息:Broadcast message from root on console…System will be rebooted at
11:00.EOF
注意:也可以通过 rwall hostname(主机名)命令到系统的所有用户

19、 将 top的结果输出到文件中
top -d 2 -n 3 -b >test.txt
可以把 top 的结果每隔 2秒,打印 3次,这样后面页的进程也能够看见了

20、装双系统不能看到另一个系统的解决办法
首先光盘启动,进入 rescue 模式,运行 GRUB,进入 grub 提示符 grub>,然后敲入下面的
语句,重启就好了。
root (hd0,2),setup (hd0)

21、压缩传输文件或目录
传输到远程:tar czf – www | ssh server “tar zxf -”
压缩到远程:tar czf – www | ssh server “cat > www.tar.gz”
解压到远程:ssh server “tar zxf -” < www.tar.gz
解压到本地:ssh server "cat www.tar.gz" | tar zxf -

22、命令行下发送带附件的邮件
方法 1. uuencode | mail -s “title” mail@address
本地需要作为附件的文件名。
邮件中的附件文件名,可以和不同,其实内容一样。
方法 2. cat | mutt -s “title” -a mail@address
邮件正文内容。
本地需要作为附件的文件名。
[Mysql维护]
1、mysql 的数据库存放在什么地方
1) 如果使用 rpm包安装,应该在/var/lib/mysql 目录下,以数据库名为目录名
2) 如果源码安装在/usr/local/mysql中,应该在/usr/local/mysql/var中,以数据库名为目录名
2、 从 mysql 中导出和导入数据
导出数据库
mysqldump 数据库名 > 文件名
导入数据库
mysqladmin create 数据库名
mysql 数据库名 < 文件名

3、忘了 mysql 的 root 口令怎么办
# service mysql stop
# mysqld_safe --skip-grant-tables &
# mysqladmin -u user password 'newpassword''
# mysqladmin flush-privileges

4、 mysqld 起来了,却无法登录,提示"/var/lib/mysql/mysql.sock"不存在
这种情况大多数是因为你的 mysql 是使用 rpm 方式安装的,它会自动寻找
/var/lib/mysql/mysql.sock 这个文件,
通过 unix socket 登录 mysql。
常见解决办法如下:
1)创建/修改文件 /etc/my.cnf,至少增加/修改一行
[mysql]
[client]
socket = /tmp/mysql.sock
#在这里写上你的 mysql.sock 的正确位置,通常不是在 /tmp/ 下就是在 /var/lib/mysql/ 下
2)指定 IP地址,使用 tcp 方式连接mysql,而不使用本地 sock 方式
#mysql -h127.0.0.1 -uuser -ppassword
3)为 mysql.sock 加个连接,比如说实际的 mysql.sock 在 /tmp/ 下,则
# ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock即可

5、 导出数据的几种常用方法
1)使用 mysqldump
#mysqldump -uuser -ppassword -B database --tables table1 --tables table2 >
dump_data_20051206.sql
详细的参数
2)backup to语法
mysql>BACKUP TABLE tbl_name[,tbl_name...] TO ‘/path/to/backup/directory’;
详细请查看 mysql 手册
3)mysqlhotcopy
#mysqlhotcopy db_name [/path/to/new_directory]

#mysqlhotcopy db_name_1 … db_name_n /path/to/new_directory

#mysqlhotcopy db_name./regex/
详细请查看 mysql 手册
4)select into outfile
详细请查看 mysql 手册
5)客户端命令行
#mysql -uuser -ppassword -e “sql statements” database > result.txt
以上各种方法中,以 mysqldump 最常用

6、 如何在命令行上执行 sql 语句
#mysql -uuser -ppassword -e “sql statements” database

7、 导入备份出来文件的常见方法
1)由 mysqldump 出来的文件
#mysql -uuser -ppassword [database] < dump.sql
2)文件类型同上,使用 source 语法
mysql>source /path_to_file/dump.sql;
3)按照一定格式存储的文本文件或 csv 等文件
#mysqlimport [options] database file1 [file2....]
详细请查看 mysql 手册
4)文件类型同上,也可以使用 load data 语法导入
详细请查看 mysql 手册
一、Solaris修改主机名

1. 编辑/etc/hosts

2. 编辑/etc/hostname.网卡名

3. 编辑/etc/nodename

4. 编辑/etc/net/ticots/hosts

5. 编辑/etc/net/ticosord/hosts

6. 编辑/etc/net/ticlts/hosts

二、网卡配置方法

1.查看网卡是否已经安装

# ls /dev |grep “网卡名”

2.配置网卡接口名称

# vi /etc/hostname.网卡名

Myethernet

3.配置子网掩码

# vi /etc/inet/netmasks

192.168.0.0 255.255.255.0

4.配置网卡接口地址

# vi /etc/inet/hosts

127.0.0.1 localhost

192.168.0.100 Myethernet

5.统一配置文件

# vi /etc/inet/ipnodes

::localhost

127.0.0.1 localhost

192.168.0.105 Myethernet loghost

三、修改主机名

1.编辑/etc/hosts

2.编辑/etc/hostname.bge0

3.编辑/etc/nodename

4.编辑/etc/net/ticots/hosts

5.编辑/etc/net/ticotsord/hosts

6.编辑/etc/net/ticlts/hosts

四、建立、取消网卡逻辑IP

1.建立

# ifconfig e1000g0:1 plumb up

# ifconfig e1000g0:1 10.0.0.1 netmask 255.255.255.0 up

2.取消

# ifconfig e10000:1 unplumb

3.永久性生效,需要修改/etc/hosts、/etc/hostname.e1000g0:1、/etc/inet/ipnodes 文件。

五、SOLARIS运行级别

0 进入OK状态 (需要SUN的PROM芯片支持)

1 管理状态 (单用户模式,禁止其他用户登陆)

2 多用户模式 (没有网络文件共享服务)

3 多用户模式 (有网络文件共享服务)

4 保留,未使用

5 退出操作系统并关机

6 重启

S,s 单用户模式

六、磁盘命名

逻辑设备:在/dev/目录下的设备名

物理设备:在/device/目录下的设备名

说明:逻辑设备通常容易被我们区分,而物理设备由KERNEL直接去识别,所以比较难理解。一般我们去记某一设备的逻辑设备名就可以了。

Sun使用下列命名方式定义逻辑设备名

/dev/[r]dsk/cXtXdXsX

c:逻辑控制器号

t:物理总线目标号

d:磁盘式逻辑单元号(LUN SCSI设备为0)

s:分区号

七、文字模式与WINDOWS模式的开关命令

# /usr/dt/bin/dtconfig –[de]

-d disable

-e enable

八、显示完全程序名的ps命令

/usr/ucb/ps –auxwww

相当于linux下ps –ef –cols

九、Solaris – ping命令查看主机IP地址

ping命令加上-a或-s即可查看主机IP地址:
#ping -a hostname
or
#ping -s hostname

十、ls命令的几个技巧

按时修改间(modification time)排序:ls -t, ls -lt, ls -1t, ls -Ct

按访问时间(access time)排序:ls -u

按文件大小排序:ls -lS

显示所有文件,除了.及..:ls -A

十一、删除“-”开头的文件

对于文件名中含-的文件,rm命令容易认为这是命令选项,用rm *报:

rm: ERROR: Illegal option — c

usage: rm [-fiRr] file…

删除的方法:

1 rm ./-filename 这样使-不是第一个字符。

2.rm — -filename 用--告诉rm这是最后一个选项,参见getopt。有的系统用

rm - -filename

3.ls -i 列出inum ;用find . -inum inum_of_thisfile -exec rm ‘{}’ \;

用这种方法可以删除含特殊字符的文件。

十二、>重定向

1.你也可以输出重定向到一个设备里,因为linux把所有设备都看成文件

比如,当多用户登录是,A用户使用的是pts/0终端

你可以用这种方式和他聊天

echo “hi" > /dev/pts/0

不过这种方法很流氓,而且需要你对这个设备有写权

2.新建文件

>aaa 新建文件aaa

>-aaa 新建文件-aaa

3.清空文件

>aaa

linux技巧

++实现RedHat非正常关机的自动磁盘修复
先登录到服务器,然后在/etc/sysconfig里增加一个文件autofsck,内容如下:
AUTOFSCK_DEF_CHECK=yes
PROMPT=yes

++改变文件或目录之最后修改时间(变为当前时间)
执行格式:touch name ( name 可为文件或目录名称。)

++如何设置login后欢迎信息
修改/etc/motd,往里面写入文本即可。

++如何设置login前欢迎界面
修改/etc/issue或者issue.net,往里面写入文本。
issue的内容是出现在本机登录的用户界面上,而issue.net则是在用户通过网络telnet的时候出现。

++如何修改网卡MAC地址
首先必须关闭网卡设备,否则会报告系统忙,无法更改。
命令是: /sbin/ifconfig eth0 down
修改 MAC 地址,这一步较 Windows 中的修改要简单。
命令是:/sbin/ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE
重新启用网卡 /sbin/ifconfig eht0 up
网卡的 MAC 地址更改就完成了

++建立别名/删除别名
alias cp=’cp -i’
unalias cp

++如何知道某个命令使用了什么库文件
例如要知道ls使用了什么库文件,可以使用:
$ ldd /bin/ls

++如何使一个用户进程在用户退出系统后仍然运行
使用nohup command &,比如:nohup wget -c ftp://test.com/test.iso
#这样即使用户退出系统,wget进程仍然继续运行直到test.iso下载完成为止

++如何限制用户的最小密码长度
修改/etc/login.defs里面的PASS_MIN_LEN的值。比如限制用户最小密码长度是8:
PASS_MIN_LEN 8

++如何取消root命令历史记录以增加安全性
为了设置系统不记录每个人执行过的命令,就在/etc/profile里设置:
HISTFILESIZE=0
HISTSIZE=0
或者:
ln -s /dev/null ~/.bash_history

++如何测试硬盘性能
使用hdparm -t -T /dev/hdX就可以测试硬盘的buffer-cache reads和buffered disk reads两个数据,可以用来当作硬盘性能的参考。
同时使用hdparm -c3 /dev/hdaX还能设置硬盘以32bit传输,以加快数据传输的速度。

++如何列出一个目录占用的空间
du或du -s或du -k
du -S | sort -n 可以迅速发现那个目录是最大的。
用df可以看到已安装的文件系统的空间大小及剩余空间大小。
quota -v查看用户的磁盘空间信息,如果你用quota限制了用户空间大小的话。

++如何使新用户首次登陆后强制修改密码
#useradd -p ‘’ testuser; chage -d 0 testuser

++在Linux中有时开机不自动检查新硬件,新安装的网卡找不到。请问怎么解决?
答:自动检查新硬件的服务是Kudzu,用户可以用“ntsysv”命令启动该服务。下次重启就会找到用户的新网卡。

++从台湾省的一个 网站找到的,如何让系统密码和samba密码一致,并可以让用户自行修改他们的密码.
使用web界面來同步更改system passwd 及 samba password
下载 http://changepassword.sourceforge.net/
安装就可以了.先看README哈.
附加:
将系统用户批量倒成samba用户.
less /etc/passwd | mksmbpasswd.sh >; /etc/samba/smbpasswd

++更改Linux启动时用图形界面还是字符界面
cd /etc
vi inittab
将id:5:initdefault: 其中5表示默认图形界面
改id:3: initdefault: 3表示字符界面

++配置smb可以被哪些IP所用.
cd /etc/samba
Vi smb.conf
找到hosts allow = 192.168.1. 192.168.2. 127.
修改其为哪些机器所用,注意IP之间用逗号分开
举例:
hosts allow =192.168.1.110,192.168.1.120

++禁止在后台使用CTRL-ALT-DELETE重起机器
cd /etc/inittab
vi inittab 在文件找到下面一行
# Trap CTRL-ALT-DELETE
ca::ctrlaltdel:/sbin/shutdown -t3 -r now (注释掉这一行)
如: # Trap CTRL-ALT-DELETE
#ca::ctrlaltdel:/sbin/shutdown -t3 -r now

++修改主机名
vi /etc/sysconfig/network
修改HOSTNAME一行为HOSTNAME=主机名

++查看开机检测的硬件
dmesg | more

++查看硬盘使用情况
df –m

++查看目录的大小
du –sh dirname

++解压小全
tar xvfj lichuanhua.tar.bz2
tar xvfz lichuanhua.tar.gz
tar xvfz lichuanhua.tgz
tar xvf lichuanhua.tar
unzip lichuanhua.zip
注:压缩 tar cvfz FileName.tar.gz DirName

++显示内存使用情况
free –m

++显示系统运行了多长时间
uptime

++显示开机自检的内容命令
dmesg

++端口的详细列表
/etc/services

++查看物理信息
lspci

++文本截面的中文支持
RH 9.0自带安装包 zhcon_0.2.3_1.rh9.i386.rpm
安装完成后,执行: zhcon 就可以支持中文了

++linux 控制 windows
(1)用RH9.0自己带rdesktop,版本是1.2.0
命令:rdesktop –u user –f 192.168.1.70 色默认的是8位
(2)要达到16色,就要下载新版本1.3.0
rdesktop –a 16 –u lichuanhua –g 800*600 192.168.1.70

++不让显示器休眠
setterm –blank 0

++显示最后一个登录到系统的用户
last

++查看所有帐号的最后登录时间
lastlog /var/log/lastlog

++查看系统自开通以来所有用户的登录时间和地点
cat /var/log/secure

++显示当前用户所属信息
id

++如何知道Apache的连接数目
ps -ef|grep httpd|wc -l #其它服务可以类推
netstat -nat|grep -i “80″|wc -l # 以上结果再减1吧

++删除用户帐号的同时,把用户的主目录也一起删除
userdel -r 用户名

++修改已有用户的信息
usermod [参数] 用户名
参数: -c, -d, -m, -g, -G, -s, -u以及-o与adduser参数意义相同
新参数: -l 新用户名(指定一个新的账号,即将原来的用户名改为新的用户名)

++改变redhat的系统语言/字符集
改 /etc/sysconfig/i18n 文件,如
LANG=”en_US”,xwindow会显示英文界面,
LANG=”zh_CN.GB18030″,xwindow会显示中文界面。
还有一种方法
cp /etc/sysconfig/i18n $HOME/.i18n
修改 $HOME/.i18n 文件,如
LANG=”en_US”,xwindow会显示英文界面,
LANG=”zh_CN.GB18030″,xwindow会显示中文界面。
这样就可以改变个人的界面语言,而不影响别的用户
vi .bashrc
export LANG=zh_CN.GB2312
export LC_ALL=zh_CN.GB2312

++cd光盘做成iso文件
cp /dev/cdrom xxxx.iso

++快速观看开机的硬件检测
dmesg | more

++查看硬盘的使用情况
df -k 以K为单位显示
df -h 以人性化单位显示,可以是b,k,m,g,t..

++查看目录的大小
du -sh dirname
-s 仅显示总计
-h 以K、M、G为单位,提高信息的可读性。KB、MB、GB是以1024为换算单 位, -H以1000为换算单位。

++查找或删除正在使用某文件的进程
fuser filename
fuser -k filename

++linux中让用户的密码必须有一定的长度,并且符合复杂度
vi /etc/login.defs,改PASS_MIN_LEN

++以不同的用户身份运行程序
su – username -c “/path/to/command”
有时候需要运行特殊身份的程序, 就可以让su来做

++ adduser m -g cvsroot -s /bin/false
添加用户m,参数-s /bin/false表示不允许用户直接登录服务器
id m
显示m用户的uid和gid号。

++ 强制卸载rpm包
rpm -e –nodeps 包名称
#个别不正常情况下:
rm -f /var/lib/rpm/__*
rpm –rebuilddb

++拒绝除root用户的其它用户登陆
touch /etc/nologin
也可以在/etc/passwd中加!对指定用户限制登陆

++检查自己所属之群组名称
执行格式:groups

++修改文件/文件夹所属用户组(支持-R)
chown .组名 文件名(注:组名名勿忘”.”,“:”也可)
也可chgrp 组名 文件名
chown 用户名.组名 文件名(同时修改所属用户及用户组)

++用fuser命令查看一下是哪些进程使用这个分区上的文件:
fuser –v –m /usr
如果没有什么重要的进程,用以下命令停掉它们:
fuser -k –v –m /usr
然后就可以重新挂载这些文件系统了。

++网络唤醒主机
ether-wake 目标网卡MAC

++如何查找大小为500K到1000K之间的文件
find / -type f -size +500k -and -size -1000k

++让主机不响应ping
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
若想恢复就用
echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all
#必须是用命令改,不能是vi修改

++自动注销ROOT
编辑你的配置文件”vi /etc/profile”,在”HISTSIZE=”后面加入下面这行:
TMOUT=300
#300,表示300秒

++ls只列出目录
ls -lF | grep ^d
ls -lF | grep /$
ls -F | grep /$

++让cron任务不回馈信息
* * * * * cmd > /dev/null 2>&1

++lsof(list open files)用法
lsof -i :x x
lsof abc.txt 显示开启文件abc.txt的进程
lsof -i :22 知道22端口现在运行什么程序
lsof -c nsd 显示nsd进程现在打开的文件
lsof -g gid 显示归属gid的进程情况

++改变sshd 的端口
在/etc/ssh/sshd_config 中加入一行:Port 2222,/etc/init.d/sshd restart 重启守护进程

++防止任何人使用su 命令成为root
vi /etc/pam.d/su,在开头添加下面两行:
auth sufficient /lib/security/pam_rootok.so
auth required /lib/security/Pam_wheel.so group=wheel
然后把用户添加到“wheel”组:chmod -G10 username

++如何让ssh 只允许指定的用户登录
方法1:在/etc/pam.d/sshd 文件中加入
auth required pam_listfile.so item=user sense=allow file=/etc/sshusers onerr=fail
然后在/etc 下建立sshusers 文件,加入允许使用ssh 服务的用户名(每一个用户名都要单独一行),重新起动sshd

++利用ssh 复制文件
1、从A 复制B(推过去) #scp -rp /path/filename username@remoteIP:/path
2、从B 复制到A(拉过来)#scp -rp username@remoteIP:/path/filename /path

++linux机器挂载windows上的共享文件
windows IP:192.168.1.1
mount -t smbfs -o username=massky,password=massky //192.168.1.1/dbf /mnt/share
如想机器重启自动挂载,vi /etc/fstab最后加入:
//192.168.1.1/dbf /mnt/share smbfs defaults,auto,username=massky,password=massky 0 0

++定制linux 提示符
在bash 中提示符是通过一个环境变量$PS1 指定的。用export $PS1 查看现在的值,比较直
观常用的提示符可以设定为export PS1=“[\u@\h \W]\$”。其中\u 代表用户名,\h 代表主机
名,\W 代表当前工作目录的最后一层,如果是普通用户\$则显示$,root 用户显示#。

++清空文件
[echo] > 文件名

++DNS相关
host -a domain.com #显示相关资讯都列出来
host domain.com 202.106.0.20 #用202.106.0.20这台DNS服务器查询domain.com

++前后台任务相关
jobs 列出属于当前用户的进程
bg 将进程搬到后台运行(Background)
fg 将进程搬到前台运行(Foreground)
万一你运行程序时忘记使用“&”了,又不想重新执行。可以先使用ctrl+z挂起程序,然后敲入bg命令,这样程序就在后台继续运行了。

++查找当前目录下七天前的文件,并删除
find ./ -mtime +7 -type f -exec rm {} \;

++产生指定大小的文件(bs*count)
dd if=/dev/zero of=filename bs=1000000 count=10

++查找当前目录下文件并更改扩展名
更改所有.ss文件为.aa
# find ./ -name “*.ss” -exec rename .ss .aa ‘{}’ \;

++修改系统时间
date -s “2005-6-4 17:26″

++让服务器自动同步时间
0 1 * * * /usr/sbin/ntpdate 210.72.145.44
或 0 1 * * * rdate -s time.nist.gov

++解决打开文件过多的问题
在etc/security/limits.conf 配置文件中设置进程文件描述符极限:
* soft nofile 2048
* hard nofile 4096
系统级文件描述符极限及timeout时间修改,添加如下两行到 /etc/rc.d/rc.local 启动脚本中:
# Increase system-wide file descriptor limit.
echo 65536 > /proc/sys/fs/file-max
echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout
#一般情况下,最大打开文件数比较合理的设置为每4M物理内存256,比如1G内存可以设为65536,
#而最大的使用的i节点的数目应该是最大打开文件数目的3倍到4倍

++如何用tar打包一个目录时,去掉其中的某些子目录或指定文件
加参数 –exclude 即可, 可加文件名或目录名, 可多写
tar cvf –exclude {dirname,filename} #dirname不要加/

++终端下修改服务器时区
/usr/sbin/timeconfig
或直接#/etc/sysconfig/clock

++关闭启动时的内存不足256M提示
#vi /etc/rc.sysinit #把最后六行注释掉
或#vi /var/lib/supportinfo
把其中的 MinRAM: 256M 这个值调低点.

++在多层目录中查找到某一指定”字符串”
grep string -R /etc/sysconfig/
find ./pathname/ -name ‘*’ | xargs grep ‘string’

++占用CPU的一个命令
#yes string #有时候测试用得上。狂占CPU

++Kill相关
kill -STOP [pid]
 发送SIGSTOP (17,19,23)停止一个进程,而并不消灭这个进程。
kill -CONT [pid]
发送SIGCONT (19,18,25)重新开始一个停止的进程。
kill -KILL [pid]
发送SIGKILL (9)强迫进程立即停止,并且不实施清理操作。
kill -9 -1
终止你拥有的全部进程。

++在当前目录下建个bak目录,然后 cp * bak,会提示略过bak,有其它办法可以排除指定文件(夹)?
ls -F|grep -v \/|xargs -i cp {} bak #推荐
或 find ! -name “./bak”

++ 根据进程名显示进程号
# pidof httpd
1846 1845 1844 1843 1842 1841 1840 1839 1820

++e2fsck
检查使用 Linux ext2 档案系统的 partition 是否正常工作, 检查 /dev/hda5 是否正常,如果有异常便自动修复,并且设定若有问答,均回答[是] :
e2fsck -a -y /dev/hda5

++反向输出
rev 反向输出(以行为单位)
tac 反向输出(全文)

++显示终端号
tty

++文件行数/字数统计
wc –l file 计算文件行数
wc -w file 计算文件中的单词数
wc -c file 计算文件中的字符数

++出每行第5个到第9个字符
cut -b5-9 file.txt

++删除文本文件中出现的行列
uniq

++返回文件所在路径
dirname /bin/tux #将返回 /bin

++fcitx在英文环境下正常使用
#vi ~/.bashrc
xport LC_CTYPE=”zh_CN.UTF-8″
export XMODIFIERS=”@im=fcitx”
export XIM=fcitx
export XIM_PROGRAM=fcitx
#gnome-session-properties可以把fctix加入登入后自启动

++split分割合并文件
split -b1440k a_whopping_big_file chunk #拆
cat chunk* > a_whopping_big_file #合

删除 core 文件

# find ~ -name core -exec file {} ; -exec rm -i {} ;

查看使用文件的进程

# fuser -u /usr/my_application/foo

搜索字符串

#grep “hello world” `find ./ -name “*” -print -exec file {} ; |grep text | cut -d ‘:’ -f 1`

目录

#alias dir=’ls -Lla|grep ^d’

输出 IP 地址

#ifconfig | grep “inet addr” | grep -v “127.0.0.1″ | awk ‘{print $2;}’ | awk -F’:’ ‘{print $2;}’

按文件长度排序

#ls -l | grep ^- | sort -nr -k 5 | more

#ls -lR | grep ^- | sort -nr -k 5 | more

二进制文件中的可打印字符

# strings name of binary file

一个月的最后一个星期天执行任务:

18 * * * 0 [`date "+%d"` -gt 24] && /path/to/script

修改扩展名:

# for f in *.abc; do mv $f `basename $f .abc`.def ; done

查看硬盘情况:(Solaris)

# iostat -En

整个目录树拷贝:

# cd

# find . -depth -print | cpio -pudm

按长度排序目录下所有文件

# du -a | sort -n -r | more

检查文件内每行是否有相同列数

#awk ‘{print NF}’ test.txt |sort -nu|more

去除空行

#sed -e ‘/^[ ]*$/d’ InputFile >OutputFile

查看进程占用的对应文件 inode 号(Solaris)

#/usr/proc/bin/pfiles

删除指定用户的所有进程

# kill -9 `ps -fu username |awk ‘{ print $2 }’|grep -v PID`

Bash 操作快捷键:

ctrl-l — clear screen

ctrl-r — does a search in the previously given commands so that you don’t

have to repeat long command.

ctrl-u — clears the typing before the hotkey.

ctrl-a — takes you to the begining of the command you are currently typing.

ctrl-e — takes you to the end of the command you are currently typing in.

esc-b — takes you back by one word while typing a command.

ctrl-c — kills the current command or process.

ctrl-d — kills the shell.

ctrl-h — deletes one letter at a time from the command you are typing in.

ctrl-z — puts the currently running process in background, the process

can be brought back to run state by using fg command.

esc-p — like ctrl-r lets you search through the previously given commands.

esc-. — gives the last command you typed.

文件名里的空格替换为下划线

# for i in $1 ; do mv “$i” `echo $i | sed ‘s/ /_/g’` ; done

查看远程主机时间

# telnet remotehostname 13|grep :

只显示 top 命令的states 行

#while true; do top -d 2 | col -b | grep states; sleep 10; done

加速显示 tar 文件内容

# tar tvfn

让 目录名也能 Spell Check

#shopt -s cdspell

当输错命令时,系统会自动进入类似的目录

查看 Sun 服务器型号

# /usr/platform/`uname -m`/sbin/prtdiag -v | grep `uname -m`

在vi 中一行文字前后添加字符

:/^(.*)/s//我要 1 添加/

查找某包含字符串(Verita)软件包的详细信息 (Solaris)

pkginfo -l `pkginfo | grep -i VERITAS | awk ‘{print $2}’`


_________________________________________________________-
转自:http://www.0xf3sec.org/linux%E5%B0%8F%E6%8A%80%E5%B7%A7%E6%94%B6%E9%9B%86zz/
分享到:
评论

相关推荐

    Linux Shell的一些使用小技巧收集

    主要介绍了Linux Shell的一些使用小技巧收集,本文收集了几十个小技巧,非常实用,需要的朋友可以参考下

    RED HAT LINUX 6大全

    本书全面系统地介绍了Red Hat Linux 6。全书共分为五个部分,包括35章和四个附录。第一部分为Red Hat Linux的介绍和安装;第二部分为服务配置;第三部分为系统管理;第四部分为Linux编程;第五部分为附录。本书内容...

    Linux系统故障诊断与排除--James Kirkland

    本书详细介绍了Linux系统故障的诊断与排除技巧,是作者长期实践经验的结晶。全书共分15章:第1章介绍系统引导、启动和关闭问题,这是所有Linux用户都会碰到的基本问题;第2章介绍系统运行中可能出现的错误;第3章、...

    收集的48个Shell脚本小技巧

    本文收集了一堆的shell脚本技巧,我说过,我写博客主要是作一些学习笔记,方便自己查阅,所以,我会搞出这么一篇文章,也没有什么不可理解的。关于这些技巧的出处,诶,我也忘了,可能来自theunixschool、 ...

    weblogic平台J2EE调优策略

    1.5.5 其他的一些小技巧 第二章 应用服务器调优 2.1 JVM调优 2.1.1 垃圾收集和堆大小 2.1.2 jRockit调优 2.2 Server调优 2.2.1 尽量使用本地I/O库 2.2.2 调整默认执行线程数 2.2.3 调整连接参数 2.2.4 创建新的执行...

    Linux_unix_shell第一部分编程(共两部分)

    1.10 小结 13 第2章 使用find和xargs 14 2.1 find命令选项 14 2.1.1 使用name选项 15 2.1.2 使用perm选项 16 2.1.3 忽略某个目录 16 2.1.4 使用user和nouser选项 16 2.1.5 使用group和nogroup选项 16 2.1.6 按照更改...

    xps13:DELL xps13 2015(9343)Linux支持

    DELL xps13 2015(9343)Linux支持使XPS13 2015与Linux一起使用的提示和技巧。贡献者配置在查看收集的配置(按BIOS版本排序)的BIOS BIOS A01 BIOS A02 BIOS A03 BIOS A04 BIOS A05 BIOS A06即将BIOS A07 BIOS A08 ...

    电脑故障维修大全 1.0 CHM格式电子书

    常见系统故障 电脑小技巧 启动故障 死机故障 BLOS应用 DOS系统 98故障 Windows2000 Linux故障 XP故障 winnt故障 unix故障 NOVELL网障 病毒木马加解密 打印机故障 扫描仪故障 电源故障 光驱刻录故障 局域网故障 内存...

    电脑故障维修大全 3.5

    书籍简介 常见系统故障 电脑小技巧 启动故障 死机故障 BLOS应用 DOS系统 98故障 Windows2000 Linux故障 XP故障 winnt故障 unix故障 NOVELL网障 病毒木马加解密 打印机故障 扫描仪故障 电源故障 光驱刻录故障 ...

    java面试题以及技巧

    卷 data 的文件夹 PATH 列表 卷序列号为 64ED-8C1D D:\我的酷盘\FTP\学员面试资料 │ 164个完整Java代码.zip │ J2EE综合--Struts常见错误的全面汇总.txt │ java程序员面试资料.zip │ JAVA笔试题(上海释锐)....

    java面试题目与技巧1

    卷 data 的文件夹 PATH 列表 卷序列号为 64ED-8C1D D:\我的酷盘\FTP\学员面试资料 │ 164个完整Java代码.zip │ J2EE综合--Struts常见错误的全面汇总.txt │ java程序员面试资料.zip │ JAVA笔试题(上海释锐)....

    java面试题及技巧4

    卷 data 的文件夹 PATH 列表 卷序列号为 64ED-8C1D D:\我的酷盘\FTP\学员面试资料 │ 164个完整Java代码.zip │ J2EE综合--Struts常见错误的全面汇总.txt │ java程序员面试资料.zip │ JAVA笔试题(上海释锐)....

    java面试题及技巧3

    卷 data 的文件夹 PATH 列表 卷序列号为 64ED-8C1D D:\我的酷盘\FTP\学员面试资料 │ 164个完整Java代码.zip │ J2EE综合--Struts常见错误的全面汇总.txt │ java程序员面试资料.zip │ JAVA笔试题(上海释锐)....

    java面试题以及技巧6

    卷 data 的文件夹 PATH 列表 卷序列号为 64ED-8C1D D:\我的酷盘\FTP\学员面试资料 │ 164个完整Java代码.zip │ J2EE综合--Struts常见错误的全面汇总.txt │ java程序员面试资料.zip │ JAVA笔试题(上海释锐)....

    传智播客扫地僧视频讲义源码

    10_MyString类案例_其他技巧 11_MyString类案例_重载右移操作符 12_C++基础课程day03-day05_知识体系梳理 13_作业和考试 源码及文档 01_继承的概念 02_子类可以访问父类的属性和方法 03_派生类的访问控制 04_派生类...

    数据库基础

    §5.1.5 收集簇信息 156 §5.2 分区 158 §5.2.1 分区的优点 158 §5.2.2 分区的方法 159 §5.2.3 创建表的分区 159 §5.2.3 创建索引的分区 164 §5.2.4 维护表分区和索引分区 167 §5.3 簇与分区有关的数据字典 ...

    操作系统(内存管理)

    文将对 Linux™ 程序员可以使用的内存管理技术进行概述,虽然关注的重点是 C 语言,但同样也适用于其他语言。文中将为您提供如何管理内存的细节,然后将进一步展示如何手工管理内存,如何使用引用计数或者内存池来半...

    Java版水果管理系统源码-Git-Book-Library:各个地方收集来的教程资源文章的集散地

    使用与开发相关经验技巧与教程 Windows 使用 Tips Linux 配置经验 Mac 使用经验教程及精品软件推荐 个人日常出于爱好以及工作收藏的网页书签 新增关于电脑故障的维修,暂时定为硬件类的维修 如果你在日常生活中有...

Global site tag (gtag.js) - Google Analytics