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 ab
将文件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
cpuMHz : 1862.093
cache size : 4096 KB
physical id : 3
siblings : 2
coreid : 7
cpucores : 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 pse36clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc pni monitords_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, 72746008576bytes
255 heads, 63 sectors/track, 8844cylinders
Units = cylinders of 16065 * 512 =8225280 bytes
DeviceBoot 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: BroadcomCorporation 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 CypressSemiconductor Corp. CY7C65640 USB-2.0 "TetraHub"
Bus 001 Device 001: ID 0000:0000
表示有5个usb接口可用.