1. 搜索文件或目录
比如要搜索名称为 xxx 的文件或目录,
在当前目录及各级子目录下搜索:find . -name "xxx"
在根目录及各级子目录下搜索:find / -name "xxx"
2. 查找字符串
(1)在指定目录下查找字符串
例如:在 home 目录下的所有文件中查找“hello”字符串:
grep -r hello /home
(2)在指定匹配文件中查找字符串
例如:在当前目录下的所有.c文件中查找字符串“hello”
find . -name "*.c" | xargs grep "hello"
3. 查看是否安装了某软件
(1) 如果是用 make && make install 安装的,就用上面讲的 find 命令查询。
(2) 如果是用 rpm 或 yum 命令安装的(注:yum 是基于 rpm 实现的),就用 rpm 和 grep 命令查询。如下:
$ rpm -qa | grep <软件名>
或
$ rpm -ql <软件名>
4. 显示环境变量
$ echo $HOME
/home/redbooks
5. 设置一个新的环境变量hello
$ export HELLO="Hello!"
$ echo $HELLO
Hello!
6. 使用env命令显示所有的环境变量
$ env
HOSTNAME=redbooks.safe.org
PVM_RSH=/usr/bin/rsh
Shell=/bin/bash
TERM=xterm
HISTSIZE=1000
7. 查看指定进程的信息
先用 pidof 命令获取进程ID:
$ pidof test
21567
再用 top 命令查看这个进程的信息:
$ top -p 21567
8. 从Internet同步标准时间
使用 ntpdate 命令,比如:
$ ntpdate time.windows.com
18 Apr 12:21:17 ntpdate[9883]: adjust time server 65.55.21.14 offset 0.030976 sec
9. 修改文件/文件夹的权限
文件/目录权限设置命令:chmod
其语法格式为:chmod [who] [opt] [mode] 文件/目录名
其中who表示对象,是以下字母中的一个或组合:
u:表示文件所有者
g:表示同组用户
o:表示其它用户
a:表示所有用户
opt则是代表操作,可以为:
+:添加某个权限
-:取消某个权限
=:赋予给定的权限,并取消原有的权限
而mode则代表权限:
r:可读
w:可写
x:可执行
例如:
1.为同组用户增加对文件a.txt的读写权限:
chmod g+rw a.txt
2.为所有用户增加对目录d的读写权限:
chmod a+rw d/
如果是为各级子目录增加权限,就加上 -R 参数:
chmod -R a+rw d/
10. 命令行浏览器
curl 是命令行浏览器,这东西是苹果机上的内置命令,可见其魅力之大。
二话不说,赶快试试吧!
# curl http://www.baidu.com
回车之后,www.baidu.com 的 html 就稀里哗啦地显示在屏幕上了~~~~~
11. 创建用户/删除用户
下面分别举例说明如何创建用户和删除用户。
创建用户tom:
# useradd tom
# pwd
/home
# ls
jack john mike tom
删除用户tom:
# userdel tom
不带选项使用 userdel,只会删除用户,用户的“家目录”将仍会在/home目录下。
# pwd
/home
# ls
jack john mike tom
为了在删除用户时完全删除用户的“家目录”,我们可以使用 -r 选项。这个选项同样会删除用户的邮件池,如果存在的话。
删除用户mike:
# userdel -r mike
# pwd
/home
# ls
jack john tom
--------------------------------------------------------------------------------------------
$ uname -a # 查看内核/操作系统/CPU信息
$ head -n 1 /etc/issue # 查看操作系统版本
$ cat /proc/cpuinfo # 查看CPU信息
$ hostname # 查看计算机名
$ lspci -tv # 列出所有PCI设备
$ lsusb -tv # 列出所有USB设备
$ lsmod # 列出加载的内核模块
$ env # 查看环境变量 资源
$ free -m # 查看内存使用量和交换区使用量
$ df -h # 查看各分区使用情况
$ du -sh <目录名> # 查看指定目录的大小
$ du -h . 查看当前目录下所有目录以及子目录的大小,“.” 代表当前目录下,可以换成一个明确的路径。
$ grep MemTotal /proc/meminfo # 查看内存总量
$ grep MemFree /proc/meminfo # 查看空闲内存量
$ uptime # 查看系统运行时间、用户数、负载
$ cat /proc/loadavg # 查看系统负载 磁盘和分区
$ mount | column -t # 查看挂接的分区状态
$ fdisk -l # 查看所有分区
$ swapon -s # 查看所有交换分区
$ hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备)
$ dmesg | grep IDE # 查看启动时IDE设备检测状况
=== 网络 ===
$ ifconfig # 查看所有网络接口的属性
$ iptables -L # 查看防火墙设置
$ route -n # 查看路由表
$ netstat -lntp # 查看所有监听端口
$ netstat -antp # 查看所有已经建立的连接
$ netstat -s # 查看网络统计信息
--- 查看网络端口占用情况 ---
通过进程名或进程ID查询网络端口占用情况,举例:
$ netstat -tuap | grep mysql
tcp 0 0 localhost:mysql *:* LISTEN 12453/mysqld
$ netstat -tuap | grep mys*
tcp 0 0 localhost:mysql *:* LISTEN 12453/mysqld
$ netstat -tuap | grep 12453
tcp 0 0 localhost:mysql *:* LISTEN 12453/mysqld
$ netstat -tuap | grep 124*
tcp 0 0 localhost:mysql *:* LISTEN 12453/mysqld
参数说明
-t, [--tcp|-t]
-u, [--udp|-u]
-a, --all
Show both listening and non-listening sockets. With the --interfaces option, show interfaces that are not up.
-p, --program
Show the PID and name of the program to which each socket belongs.
=== 进程 ===
1. 查看所有进程
$ ps -ef
2. 实时显示进程状态
$ top
3. 查看进程的线程数
使用“ps -Lf Pid | wc -l” 命令查看Pid(进程ID)进程下的线程数。例如:
$ ps -ef | grep tomcat
root 1145 1 0 Oct25 ? 00:05:25 /usr/bin/java -Djava.util.logging.config.file=/data ...
$ ps -Lf 1145 | wc -l
59
=== 用户 ===
$ w # 查看活动用户
$ id <用户名> # 查看指定用户信息
$ last # 查看用户登录日志
$ cut -d: -f1 /etc/passwd # 查看系统所有用户
$ cut -d: -f1 /etc/group # 查看系统所有组
$ crontab -l # 查看当前用户的计划任务 服务
$ chkconfig --list # 列出所有系统服务
$ chkconfig --list | grep on # 列出所有启动的系统服务