常用Linux命令

Linux 是一种自由和开放源代码的类UNIX操作系统。该操作系统的内核由林纳斯·托瓦兹在1991年10月5日首次发布。在加上用户空间的应用程序之后,成为Linux操作系统。Linux也是自由软件和开放源代码软件发展中最著名的例子。
作为一个前端或许很少用到linux,但是作为一个有理想、有道德、有激情的前端,linux是必须要了解的一项技能。尤其是立志成为全端(什么都会一点,什么都不精通)的前端工程师,更是需要知道了。

下面记录一下linux服务器上经常会用到的基本操作,便于以后回来查阅。

1
2
3
4
5
# 超级用户

$ 普通用户

命令 [选项] [参数]

系统

1
2
3
4
5
6
7
8
uname -a               # 查看内核/操作系统/CPU信息
head -n 1 /etc/issue # 查看操作系统版本
cat /proc/cpuinfo # 查看CPU信息
hostname # 查看计算机名
lspci -tv # 列出所有PCI设备
lsusb -tv # 列出所有USB设备
lsmod # 列出加载的内核模块
env # 查看环境变量

资源

1
2
3
4
5
6
7
free -m                # 查看内存使用量和交换区使用量
df -h # 查看各分区使用情况
du -sh <目录名> # 查看指定目录的大小
grep MemTotal /proc/meminfo # 查看内存总量
grep MemFree /proc/meminfo # 查看空闲内存量
uptime # 查看系统运行时间、用户数、负载
cat /proc/loadavg # 查看系统负载

磁盘和分区

1
2
3
4
5
mount | column -t      # 查看挂接的分区状态
fdisk -l # 查看所有分区
swapon -s # 查看所有交换分区
hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备)
dmesg | grep IDE # 查看启动时IDE设备检测状况

网络

1
2
3
4
5
6
ifconfig               # 查看所有网络接口的属性
iptables -L # 查看防火墙设置
route -n # 查看路由表
netstat -lntp # 查看所有监听端口
netstat -antp # 查看所有已经建立的连接
netstat -s # 查看网络统计信息

进程

1
2
ps -ef                 # 查看所有进程
top # 实时显示进程状态

应用程序

1
rpm -qa # 查看所有安装的软件包

用户

1
2
3
4
5
6
w                      # 查看活动用户
id <用户名> # 查看指定用户信息
last # 查看用户登录日志
cut -d: -f1 /etc/passwd # 查看系统所有用户
cut -d: -f1 /etc/group # 查看系统所有组
crontab -l # 查看当前用户的计划任务

登录

1
2
3
4
5
6
7
w 查询当前所有的登录用户

who 查询当前所有的登录用户

last 查询所有的登录信息

/val/log —— 系统日志信息

服务

1
2
chkconfig --list       # 列出所有系统服务
chkconfig --list | grep on # 列出所有启动的系统服务

程序

1
rpm -qa                # 查看所有安装的软件包

查看CPU信息(型号)

1
2
3
4
5
6
7
8
9
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c 

cat /proc/cpuinfo | grep physical | uniq -c

getconf LONG_BIT

cat /proc/cpuinfo | grep flags | grep ' lm ' | wc -l

dmidecode | grep 'Processor Information'

head tail cat awk grep vim

1
2
3
4
5
6
7
8
9
dmi 查看cpu信息

chmod +x filename.sh

chown —— 改变文件所属

/etc/rc.local —— 开机启动配置

cron —— 定时器相关

查看内存信息

1
2
3
4
5
cat /proc/meminfo 

uname -a

cat /etc/issue | grep Linux

查看机器型号

1
dmidecode | grep "Product Name"  

查看网卡信息

1
dmesg | grep -i eth

显示文件列表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
ls -a —— 显示隐藏文件  

ls -i —— 显示详细信息

ls -l —— 显示扩展名以及权限

ls -h —— 显示格式化列表

对于文件前面的这一串字符串的意思:-rw-r--r--

-表示文件类型

rw-表示所有者u

r--

g所属组

r--

o其他人

r读 w写 x执行

linux查找功能

1
2
3
4
5
6
7
8
9
10
11
12
locate locate // 更新locate数据库 updatedb

find 范围 -name 文件名

find 范围 -iname 文件名(不区分大小写)

find 范围 -mtime 文件名 +10 (10天内修改的文件)a访问

find 范围 -size -15k (小于25k的文件) M兆

find 范围 -size +1k -a -size -50k (大于1k小于50k) -o或

帮助命令

1
2
3
main 查看帮助文档

help 获取内部命令

压缩与解压缩命令

.zip .gz .bz2

1
2
.zip 在 window 和 linux 通用  压缩文件命令为:zip 压缩文件名 源文件名 ; 
压缩文件夹命令为:zip -r 压缩文件名 源目录 ;解压命令将zip改为unzip即可

.tar.gz .tar.bz2 打包命令tar

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
tar -cvf 打包文件名 源文件 

-c:打包

-v:显示过程

-f:指定打包后的文件名

-x:解打包

-z:压缩包名为.tar.gz

-C:指定解压目录

// 举例

tar -zcvf packfiles.tar.gz packfiles

tar -zxvf packfiles.tar.gz

tar -zxvf packfiles.tar.gz -C ./dirs

下面是shell相关部分

shell是什么?

shell是一个命令行解释器

用户 ——》shell ——》内核

内核 ——》sell ——》用户

创建一个可执行文件 hello.sh

1
2
3
#!/bin/bash

echo "hello zsr !!!"

执行可执行文件

1
2
3
chmod 755 hello.sh —— 给予文件可执行权限

./hello.sh —— 执行可执行文件
1
2
3
echo $SHELL 查看当前的shell环境变量

/etc/shells 查看当前shell支持的版本

echo命令

1
2
3
echo 选项 输出内容

选项:-e 支持反斜杠控制的字符转换

创建可执行文件 hello.sh

1
2
3
4
#!/bin/bash
#the first program

echo -e "\e[1;34m i live yellow \e[0m"

执行

两个方法:

赋予执行权限再执行

1
2
3
chmod 755 hello.sh

./hello.sh

直接用bash执行

1
bash hello.sh

bash的基本功能

alias 设置命令别名

1
2
3
4
5
6
7
alias 查看已有的别名

alias ll='ls -ilpa' 重命名显示文件详细信息的命令

unalias 删除别名

命令的生效顺序:绝对路径启动 》 别名 》 bash内部命令 》 $PATH环境变量定义的目录查找到的第一个命令

常用快捷键

1
2
3
4
5
6
7
8
9
10
11
12
13
ctl+c 强制终止当前命令

ctl+l 清屏

ctl+a 光标移到行首

ctl+e 光标移到行尾

ctl+u 从光标删除到行首

ctl+z 把命令放入后台

ctl+r 在历史命令中搜索

历史命令

1
2
3
4
5
history 显示所有的历史命令

保存位置在 ~/.bash_history文件里面

history -c 清除历史命令

重定向

dev目录 —— linux保存特殊文件的目录

输出重定向

1
2
3
4
5
6
7
8
9
10
11
12
13
命令 > 文件 —— 标准输出重定向

命令 >> 文件 —— 追加重定向

命令 2> 文件 —— 标准错误输出

命令 2>> 文件 —— 追加标准错误输出

命令 >> 文件 2>&1 —— 追加错误或者正确的命令

命令 &> /dev/null —— 放弃查看命令执行结果

命令 >> success.log 2 >> error.log —— 分别保存这两个正确和错误的信息

输入重定向

1
2
3
4
5
6
7
wc 选项 文件名 —— 统计(ctl+d结束)

- c 统计字节数。

- l 统计行数。

- w 统计字数。

多命令顺序执行

1
2
3
4
5
命令1; 命令2 —— 多个命令顺序执行,命令之间没有任何逻辑关系

命令1 && 命令2 —— 逻辑与关系

命令1 || 命令2 —— 逻辑或关系

管道符

1
2
3
4
5
命令1 | 命令2 —— 命令1的正确输出结果作为命令2的操作对象

eg:

netstat -an | grep "ESTABLISHED"

通配符

1
2
3
4
5
6
7
8
9
10
11
12
13
? —— 匹配任意字符

* —— 匹配0个或多个任意字符

[] —— 匹配中括号中任意一个字符

"" —— 可以调用变量的值

'' —— 所有特殊符号如 $ 都没有特殊含义

` ` —— 反引号可以执行命令

$(命令) —— 执行命令

远程拷贝

1
2
scp -r ./* admin@10.242.22.222:~/data1/ # scp将本地文件拷贝到远程机器
rsync -a ../views/* ubuntu@10.220.220.222:~/data1/htdocs/index.epoos.com/views/ # rsync方式拷贝文件

相关链接

Linux 命令大全