Linux 基本命令
Linux是一个基于命令的系统,它有很多很强的命令. 但它也有桌面系统,比如KDE, Gnome等,甚至还有仿windows桌面. 但真正在Linux下面工作的人,却不喜欢这些桌面,独爱命令行. 当你学会了在命令行下工作的时候,会体会到它的强大(黑客大都在命令行下干活的). 要学好使用Linux,得从命令行开始. Les go now.
Note:这里所讲的都是命令的基本用法,每个命令都有很多参数可用. 如果想了解其复杂使用,可以使用man查看命令帮助. 比如想看ls使用: man ls .
1. 文件管理
文件管理的基本命令包括ls, rm, mv, ln, mkdir,touch,cat ....
- ls - 是查看文件列表.
比如:要查看当前目录文件列表: ls.
查看根目录文件列表:ls /
查看文件列表并显示文件属性,包括时间,组, 用户, 权限等: ls -l
按时间排序: ls -lctr
如果文件熟悉的前面字符是d,表示是一个目录. 比如:
drwxr-xr-x 2 root root 4096 Apr 16 2007 filterip
-rm 删除文件
比如删除文件a: rm a
删除目录b: rm -r b
-mv 移动/改名文件
比如改名文件名a为b: mv a b
将文件a移动到目录/tmp: mv a /tmp
-mkdir 创建目录
比如创建目录 a: mkdir a
-touch 修改文件时间/生成新文件
比如生成一个新的空文件a: touch a
修改文件b到当前时间: touch b
-cat 输出文件内容
比如输出文本文件A.TXT到屏幕: cat A.TXT.
2. 进程管理
-ps 查看系统进程
比如查看当前用户进程: ps
查看所有进程,包括活动非活动进程: ps -ef.
查看所有java进程: ps -ef | grep java
显示的第二列为进程号.
-kill/killall 终止进程
比如终止进程号500的进程: kill 500
比如终止进程名为java的所有进程: killall p1
-bg/fg 切换进程到后台/前台
当进程运行在当前命令行的时候,可以按Ctrl+z暂停进程,再用命令bg将进程切换到后台. 相反,可以用命令fg将进程切换到前台. 有时候用&符号将进程运行在了后台,这个时候可以用fg将其切换到前台来.
-查询系统进程树
运行pstree可以输出当前进程树.
3.用户管理
-who 查看登陆的用户
-adduser 为系统创建新的用户(需要root权限,下同)
比如增加用户qq: adduser qq;
增加用户qq,秘密123456: adduser -p 123456 qq
-passwd修改用户密码
比如修改qq的密码为666666: passwd qq,系统提示输入旧的密码,再输入新的密码.
-userdel 删除用户
比如删除用户qq: userdel aa
-usermod 修改用户属性
比如修改qq到admin组: usermod -p admin aa
4.资源管理
-top 查看系统资源状况
top是最常用的查看系统当前状态的工具.可以查看CPU, memory, load等.
-查看主机CPU信息
运行cat /proc/cpuinfo, 输出:
.....
......
processor : 3
vendor_id : GenuineIntel
cpu family : 6
model : 15
model name : Intel(R) Xeon(R) CPU 5120 @ 1.86GHz
stepping : 6
cpu MHz : 1862.093
cache size : 4096 KB
physical id : 3
siblings : 2
core id : 7
cpu cores : 2
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 10
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc pni monitor ds_cpl est tm2 xtpr
bogomips : 3724.15
这个表示是第4颗CPU, 这个CPU有2个core, 也就是系统有4个双核的CPU. 如果系统开启了超线程, 则等价于系统有8个CPU. (注: 超线程选项一般在BIOS中开启)
-查询系统内存信息
运行cat /proc/meminfo,可以查看当前系统的内存信息:
MemTotal: 4149104 kB
MemFree: 706788 kB
Buffers: 220900 kB
Cached: 2981520 kB
SwapCached: 0 kB
Active: 2734120 kB
Inactive: 572920 kB
HighTotal: 3276448 kB
HighFree: 608064 kB
LowTotal: 872656 kB
LowFree: 98724 kB
SwapTotal: 2096472 kB
SwapFree: 2096472 kB
Dirty: 4 kB
Writeback: 0 kB
Mapped: 129976 kB
Slab: 117164 kB
CommitLimit: 4171024 kB
Committed_AS: 2507740 kB
PageTables: 1968 kB
VmallocTotal: 106488 kB
VmallocUsed: 2984 kB
VmallocChunk: 102920 kB
HugePages_Total: 0
HugePages_Free: 0
Hugepagesize: 2048 kB
-fdisk 查看硬盘分区
fdisk -l /dev/sda 可以输出硬盘/dev/sda的分区列表,比如输出类似:
Disk /dev/sda: 72.7 GB, 72746008576 bytes
255 heads, 63 sectors/track, 8844 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 16 128488+ 83 Linux
/dev/sda2 17 526 4096575 83 Linux
/dev/sda3 527 787 2096482+ 82 Linux swap
/dev/sda4 788 8844 64717852+ 5 Extended
/dev/sda5 788 2062 10241406 83 Linux
/dev/sda6 2063 2572 4096543+ 83 Linux
/dev/sda7 2573 3082 4096543+ 83 Linux
/dev/sda8 3083 3569 3911796 83 Linux
/dev/sda9 3570 8844 42371406 83 Linux
这里可以看出,/dev/sda硬盘被分成了9个区, 带*号的是启动分区.
-df 查看在用文件系统
运行df -h, 输出类似:
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 3.9G 278M 3.4G 8% /
/dev/sda1 122M 17M 99M 15% /boot
/dev/sda9 40G 21G 17G 56% /home
/dev/sda8 3.7G 40M 3.5G 2% /opt
none 2.0G 0 2.0G 0% /dev/shm
/dev/sda6 3.9G 40M 3.7G 2% /tmp
/dev/sda5 9.7G 5.4G 3.8G 59% /usr
/dev/sda7 3.9G 1.2G 2.5G 32% /var
192.168.206.231:/opt/taobao 3.9G 3.2G 537M 86% /opt/taobao
192.168.206.231:/home/admin/cms 40G 3.8G 34G 11% /opt/cms
192.168.206.231:/home/admin/htdocs 40G 3.8G 34G 11% /opt/htdocs
10.1.6.131:/home/images 167G 83G 76G 53% /opt/images
10.1.6.131:/home/imagesvr 167G 83G 76G 53% /mnt
每个/dev/xxx代表一个分区. 同时,这里还有远程文件系统. 百分比代表已经使用的空间比例.
-查询系统有几个网卡
运行 lspci | grep Ethernet, 输出类似:
05:00.0 Ethernet controller: Broadcom Corporation NetXtreme II BCM5708 Gigabit Ethernet (rev 12)
有几条记录就是几个网卡.
想进一步查看网卡信息,运行 lspci -vv -s 05:00.0
-hdparm查看硬盘信息
比如查看硬盘hda转速, 运行hdparm -i /dev/hda,
-查询系统usb接口信息
运行命令lsusb可以知道当前系统有几个usb接口,比如输出:
Bus 004 Device 001: ID 0000:0000
Bus 003 Device 001: ID 0000:0000
Bus 002 Device 001: ID 0000:0000
Bus 001 Device 002: ID 04b4:6560 Cypress Semiconductor Corp. CY7C65640 USB-2.0 "TetraHub"
Bus 001 Device 001: ID 0000:0000
表示有5个usb接口可用.