hjk41的Linux常用技巧指南
Linux的命令很多,也很杂,一个命令一个月不用可能就会忘掉,所以我一直保持记笔记的习惯。碰到不知道的命令,我会先google,使用成功之后我们把它记在一个txt里,这样以后再碰到同样的问题就可以直接从txt文件里找到答案了。到现在为止,我已经记了很长的笔记了,所以干脆整理一下,立此存照。
转贴要专业,请注明来自http://blog.sinzy.net/hjk41,并注意保持格式 :-P
注意,这里列举的命令都是我的笔记里的命令,所以这里的“常用”并不是指ls或ll这样的命令,它们实在太常用了,以至于我永远都不会忘记,所以也就不会记在笔记上。这里指的“常用”指的是使用频率是一个月一次左右 :-)
另外,下面列举的命令有一些只对某些Linux发行版本有效,我主要使用Redhat出品的Linux,所以对Redhat/Fedora/RHEL系列应该都是有效的。
简单起见,下面的文本是格式化文本,格式如下:
<命令介绍>
[n.] [命令用途/索引字] -- [命令名]
[命令行格式] // [命令行作用解释]
[命令行举例] // [例子解释]
</命令介绍>
1. 计算程序运行时间/计时 -- time
time [程序] // 计算此程序运行时间
例: [hjk41@redhat]# time ls <回车> // 计算ls命令运行时间
a.out main.cpp // ls命令的输出
real 0m0.002s // 程序实际运行时间
user 0m0.000s // 程序在用户态运行时间
sys 0m0.002s // 内核态运行时间
2. 命令行输出重定向 -- > >>
[命令行] 1> [文件] // 将命令行的输出(stdout)重定向到文件
[命令行] 2> [文件] // 将命令行的错误输出(stderr)重定向到文件
[命令行] &> [文件] // 将命令行所有输出(stdout && stderr)重定向到文件
// 以上命令将覆盖原来的文件,将>替换成>>则是追加
例: [hjk41@readhat]# ls 1> file_list // 将ls的结果保存在file_list中,如果file_list存在则覆盖原来内容
3. 查看当前挂载的磁盘情况 -- df
df -lh
4. 查看磁盘分区表及分区结构 -- fdisk -l
fdisk -l
5. 用户管理命令集合
w // 查看当前登录用户
useradd [user_name] // 添加名为user_name的用户
userdel [user_name] // 删除名为user_name的用户
passwd [user_name] // 设置用户密码
usermod -l [new_name] [user_name] // 将名为user_name的用户改名为new_name
usermod -G [group_name] [user_name] // 将名为user_name的用户加入名为group_name的组
6. 帐号锁定与解锁/独占机器 -- passwd -l/-u
passwd -l [user_name] // 将名为user_name的帐号锁定,使其无法登录
passwd -u [user_name] // 解锁
解释:锁定帐号可以使用户无法登录,通过锁定所有帐号,你可以独占机器。但是锁定并不影响已经登陆的用户,如果要独占机器,就得通过重启sshd或者kill已登录用户所对应的ssh进程将其踢下线。
7. 查看cpu信息 -- cat /proc/cpuinfo 或者 x86info
cat /proc/cpuinfo // 查看cpu数量,频率,cache大小等等
x86info // 可列出更详细的信息,包括L1/L2/L3 cache大小,cache相联方式,TLB等等
备注:这两个命令所列出的信息并不是绝对正确的,如果你的Linux版本比较老,或者CPU型号过新,很可能出现错误的结果。比如我们的Nehalem CPU在Fedora Core 8里就无法正确显示L2 cache大小
8. 查看Linux版本 -- uname -r 或者 cat /proc/version 或者 cat /proc/redhat-release
uname -r // 查看内核版本号
cat /proc/version // 更详细的版本信息
cat /proc/redhat-release // 只对Redhat的产品有用,显示Release版本
9. 配置网络服务 -- ntsysv
ntsysv // 查看网络服务情况,并可进行配置,仅root权限可运行
10. 更改Linux启动时是否启动图形界面 -- 更改 /etc/inittab
解释:/etc/inittab 里除注释之外的第一行如下
id:5:initdefault; // 将其中的5改为3,Linux启动时就不会启动图形界面,反之,改为5则启动图形界面
11. 更改机器名与ip -- 更改/etc/sysconfig/network
12. 关机 -- poweroff
13. 检查已安装软件 -- rpm -qa|grep [软件名]
rpm -qa|grep [软件名] // 查找已安装软件
例:[root@redhat]# rpm -qa|grep intel
intel-vtune-rdc_runtimelibs-9.1p-102
intel-itt-ism_em64t-3.1-26185
intel-vdk-src-4.1-102
14. 卸载已经安装的软件 -- rpm -e [软件包名]
rpm -e [软件包名] // 卸载该软件,包名必须完全正确
例:[root@redhat]# rpm -e intel-vdk-src-4.1-102
15. 加快登录速度
更改 /etc/hosts ,在其中加入客户端的计算机名与IP
解释:客户端C使用ssh登录服务器S时,有时候会出现连接以后要等待很久才提示输入用户名/密码的情况,这时只需要在服务器上的/etc/hosts加入客户端C相应的计算机名及IP即可
16. 压缩目录 -- tar cvzf
tar cvzf dir.tar.gz dir_name // 将名为dir_name的目录压缩为dir.tar.gz
后面还有vnc,samba之类的配置,待续。。。