目录
[7 压缩包管理](#7 压缩包管理)
[7.1 tar](#7.1 tar)
[7.2 rar](#7.2 rar)
[7.3 zip](#7.3 zip)
[8 进程管理](#8 进程管理)
[8.1 who](#8.1 who)
[8.2 ps](#8.2 ps)
[8.3 jobs](#8.3 jobs)
[8.4 fg](#8.4 fg)
[8.5 bg](#8.5 bg)
[8.6 kill](#8.6 kill)
[8.7 env](#8.7 env)
[8.8 top](#8.8 top)
[9 用户管理](#9 用户管理)
[9.1 创建用户](#9.1 创建用户)
[9.2 设置用户组](#9.2 设置用户组)
[9.3 设置密码](#9.3 设置密码)
[9.4 切换用户](#9.4 切换用户)
[9.5 root用户](#9.5 root用户)
[9.6 删除用户](#9.6 删除用户)
[10 网络管理](#10 网络管理)
[10.1 ifconfig](#10.1 ifconfig)
[10.2 ping](#10.2 ping)
[10.3 netstat](#10.3 netstat)
[10.4 nslookup](#10.4 nslookup)
[10.5 finger](#10.5 finger)
[11 常用服务器构建](#11 常用服务器构建)
[11.1 ftp](#11.1 ftp)
[11.1.1 ftp服务器](#11.1.1 ftp服务器)
[11.1.2 ftp客户端](#11.1.2 ftp客户端)
[11.1.3 lftp客户端](#11.1.3 lftp客户端)
[11.2 nfs](#11.2 nfs)
[11.3 ssh](#11.3 ssh)
[11.4 scp](#11.4 scp)
[11.5 telnet](#11.5 telnet)
[12 其它命令](#12 其它命令)
[12.1 终端翻页](#12.1 终端翻页)
[12.2 man](#12.2 man)
[12.3 clear](#12.3 clear)
[12.4 alias](#12.4 alias)
[12.5 echo](#12.5 echo)
[12.6 date](#12.6 date)
[12.7 umask](#12.7 umask)
[12.8 创建终端](#12.8 创建终端)
[13 关机重启](#13 关机重启)
[13.1 poweroff](#13.1 poweroff)
[13.2 shutdown](#13.2 shutdown)
[13.3 reboot](#13.3 reboot)
[13.4 查看内核版本信息](#13.4 查看内核版本信息)
[13.5 查看发行版信息](#13.5 查看发行版信息)
[13.6 查看空闲内存](#13.6 查看空闲内存)
[14 练习](#14 练习)
[15 需要安装的组件](#15 需要安装的组件)
7 压缩包管理
7.1 tar
tar [主选项+辅选项] 文件或者目录
tar可以为文件和目录创建档案。利用tar命令用户可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件。使用该命令时,主选项是必须要有的,辅选项是辅助使用的,可以选用。 主选项包括:
c 创建新的档案文件。如果用户想备份一个目录或是一些文件,就要选择这个选项。
r 把要存档的文件追加到档案文件的未尾。
t 列出档案文件的内容,查看已经备份了哪些文件。
u 更新文件。用新增的文件取代原备份文件,如果在备份文件中找不到要更新的文件,则把它追加到备份文件的最后。
x 从档案文件中释放文件。(常用)
辅选项包括:
f 使用档案文件或设备,这个选项通常是必选的。(常用)
k 保存已经存在的文件。
m 在还原文件时,把所有文件的修改时间设定为现在。
M 创建多卷的档案文件,以便在几个磁盘中存放。
v 详细报告tar处理的文件信息。如无此选项,tar不报告文件信息。(常用)
w 每一步都要求确认。
z 用gzip来压缩/解压缩文件,加上该选项后可以将档案文件进行压缩,但还原时也一定要使用该选项进行解压缩。(常用)
j 用bzip2来压缩/解压缩文件,加上该选项后可以将档案文件进行压缩,但还原时也一定要使用该选项进行解压缩。(常用)
要将文件备份到一个特定的设备,只需把设备名作为备份文件名。
打包:
tar cvf dir.tar dir
tar xvf dir.tar dir
打gz压缩包:
tar zcvf dir.tar.gz dir
tar zxvf dir.tar.gz
打bz2压缩包:
tar jcvf dir.tar.bz2 dir
tar jxvf dir.tar.bz2
指定目录解压缩:
tar zxvf dir.tar.gz -C ~/test
7.2 rar
打包:把dir压缩成newdir.rar
rar a -r newdir dir
解包:把newdir.rar解压缩到当前目录
unrar x newdir.rar
7.3 zip
打包:
zip -r dir.zip dir
解包:
unzip dir.zip
8 进程管理
8.1 who
查看当前在线上的用户情况。所有的选项都是可选的,不使用任何选项时,who命令将显示以下三项内容:
login name:登录用户名;
terminal line:使用终端设备;
login time:登录到系统的时间。
8.2 ps
ps [选项]
ps命令用于监控后台进程的工作情况,因为后台进程是不和屏幕键盘这些标准输入/输出设备进行通信的,所以如果需要检测其情况,便可以使用ps命令了。选项部分如下:
-e 显示所有进程。
-f 全格式。
-h 不显示标题。
-l 长格式。
-w 宽输出。
-r 只显示正在运行的进程。
-a:即all,查看当前系统所有用户的所有进程
-u:查看进程所有者及其他一些详细信息
-x:显示没有控制终端的进程
这个命令参数有很多,但一般的用户只需掌握一些最常用的命令参数就可以了。 最常用的三个参数是u、a、x, 我们首先以root身份登录系统,查看当前进程状况。
Head标头:
ss
状态:
S
:睡眠状态(Sleeping or interruptible sleep)指示进程正在等待某个事件的发生。这个事件可能是IO操作的完成、等待用户输入等。当进程处于这个状态时,它是可以被中断的,响应系统信号。
R
:运行状态(Running)表示进程正在运行或准备运行。进程正在执行指令或者正在等待CPU时间片以继续执行。
D
:不可中断状态(Uninterruptible sleep)指示进程正在等待某个事件,但这个状态不可被中断。通常是由于进程正在执行系统调用或者等待IO操作的完成。
T
:停止状态(Stopped)表示进程已被停止,通常由用户或其他进程发送的信号导致。进程在停止状态下不会执行任何指令。
Z
:僵尸状态(Zombie)表示进程已经终止执行,但是其父进程尚未处理该进程的退出状态。僵尸进程会继续占用系统资源,直到被其父进程收回。
s+
状态:
S+
:使用s表示睡眠状态(Sleeping or interruptible sleep),表示进程处于可中断的睡眠状态。R+
:使用R表示运行状态(Running),表示进程正在运行
8.3 jobs
用来显示当前shell 下正在运行哪些作业(即后台作业)
$ cat
(按下Ctrl-z挂起当前进程)
[1]+ Stopped
cat
$ cat
(按下Ctrl-z挂起当前进程)
[1]+ Stopped
cat
$ jobs
[1]- Stopped
cat
[2]+ Stopped
cat
第一列方括号中的数字表示作业序号,它是由当前运行的shell 分配的,而不是由操作系统统一分配的。在当前shell 环境下,第一后台作业的作业号为1,第二作业的作业号为2,等等。第二列中的"+"号表示相应作业的优先级比"-"号对应作业的优先级高。第三列表明作业状态,是否为运行、中断、等待输入或停止等。最后列出的是创建当前这个作业所对应的命令行。
8.4 fg
fg [job...]
把指定的后台作业或挂起作业移到前台运行。 参数job是一个或多个进程的PID,或者是命令名称,或者是作业号(作业号前面要带一个%号)。通常在shell中输入命令启动进程后,如果该进程需要与用户交互,那么此后用户的键盘输入都被该进程读取,直到该进程退出后才出现shell提示符$,这种进程为前台进程。如果在命令行的末尾加上&字符,则shell为这个命令创建一个后台进程,它虽然也可以输出到屏幕,但是不能读取键盘输入,不管执行命令的进程有没有退出都立刻回到shell提示符接受下一条命令的输入。如果该进程也需要读取键盘输入,则被挂起等待直到用户用fg命令把它变成前台进程。如果一个命令需要较长的处理时间并且不需要与用户交互,就适合把它放在后台执行。
8.5 bg
bg [job...]
把被挂起的进程提到后台执行。 其中,job是一个或多个进程的PID、命令名称或者作业号,在参数前要带%号。
$ cat
(按下Ctrl-z挂起当前进程)
[1]+ Stopped
cat
$ bg %1
[1]+ cat &
(再回车一次) \[1\]+ Stopped cat fg %1
cat
(按Ctrl-d输入文件结束符)
$
8.6 kill
向指定进程发送信号
kill [ -signal | -s signal ] pid ...
查看信号编号
kill -l [ signal ]
给一个进程发信号,或终止一个进程的运行。
kill命令如果不带参数而直接跟pid,就是发给该进程SIGTERM信号,大部分进程收到该信号就会终止。但是被挂起的进程不能处理信号,所以必须发SIGKILL信号,由系统强制终止进程。
8.7 env
查看当前进程环境变量
$env
* vim ∼ /.bashrc
配置当前用户环境变量
* vim /etc/profile
配置系统环境变量,配置时需要有root权限
export PATH=$PATH:新路径
8.8 top
top
命令在Linux中用于实时监视系统的关键性能指标和运行中的进程。它提供了一个动态更新的任务管理器,可以显示CPU、内存、磁盘IO、网络等系统资源的使用情况,同时还列出了当前运行的进程的详细信息。
9 用户管理
9.1 创建用户
sudo useradd -s /bin/bash -g itcast -d /home/itcast -m itcast
sudo useradd -s /bin/sh -g group -G adm,root xwp
此命令新建了一个用户xwp,该用户的登录Shell是/bin/sh,他属于group用户组,同时又属于adm和root用户组,其中group用户组是其主组。
-s 指定新用户登陆时shell类型
-g 指定所属组,该组必须已经存在
-G 指定附属组,该组必须已经存在
-d 用户家目录
-m 用户家目录不存在时,自动创建该目录
9.2 设置用户组
sudo groupadd itcast
9.3 设置密码
sudo passwd itcast
9.4 切换用户
su 用户名
su itcast
9.5 root用户
变成root用户
sudo su
设置root密码
passwd
9.6 删除用户
userdel 选项 用户名
常用的选项是-r,他的作用是把用户的主目录一起删除。 例如:
sudo userdel -r itcast
此命令删除用户itcast在系统文件(主要是/etc/passwd,/etc/shadow,/etc/group等)中的记录,同时删除用户的主目录。
10 网络管理
安装
10.1 ifconfig
1.查看网卡信息
ifconfig
2.关闭网卡
sudo ifconfig eth0 down
3.开启网卡eth0
sudo ifconfig eth0 up
4.给eth0配置临时IP
sudo ifconfig eth0 IP
10.2 ping
ping [选项] 主机名/IP地
查看网络上的主机是否在工作。它向该主机发送ICMP ECHO_REQUEST包。有时我们想从网络上的某台主机上下载文件,可是又不知道那台主机是否开着,就需要使用ping命令查看。
命令中各选项的含义如下:
-c 数目 在发送指定数目的包后停止。
-d 设定SO_DEBUG的选项。
-f 大量且快速地送网络封包给一台机器,看它的回应。
-I 秒数 设定间隔几秒送一个网络封包给一台机器,预设值是一秒送一次。
-l 次数 在指定次数内,以最快的方式送封包数据到指定机器(只有超级用户可以使用此选项)。
-q 不显示任何传送封包的信息,只显示最后的结果。
-r 不经由网关而直接送封包到一台机器,通常是查看本机的网络接口是否有问题。
-s 字节数 指定发送的数据字节数,预设值是56,加上8字节的ICMP头,一共是64ICMP数据字节。
10.3 netstat
netstat [选项]
显示网络连接、路由表和网络接口信息,可以让用户得知目前都有哪些网络连接正在运作。命令中各选项的含义如下:
-a 显示所有socket,包括正在监听的。
-c 每隔1秒就重新显示一遍,直到用户中断它。
-i 显示所有网络接口的信息,格式同"ifconfig -e"。
-n 以网络IP地址代替名称,显示出网络连接情形。
-r 显示核心路由表,格式同"route -e"。
-t 显示TCP协议的连接情况。
-u 显示UDP协议的连接情况。
-v 显示正在进行的工作。
10.4 nslookup
nslookup name
查询一台机器的IP地址和其对应的域名。它通常需要一台域名服务器来提供域名服务。如果用户已经设置好域名服务器,就可以用这个命令查看不同主机的IP地址对应的域名。不带参数使nslookup命令时,出现提示符">",在后面输入要查询的IP地址或域名并回车即可。如果要退出该命令,输入exit并回车即可。
itcast@ubuntu:~$ nslookup
> www.itcast.cn
Server:
127.0.0.1
Address:
127.0.0.1#53
Non-authoritative answer:
Name:
www.itcast.cn
Address: 115.29.149.42
>
10.5 finger
finger [-lmsp] user [user@host ...] 查询用户的信息,通常会显示系统中某个用户的用户名、主目录、停滞时间、登录时间、登录shell等信息。如果要查询远程机上的用户信息,需要在用户名后面接"@主机名",采用[用户名@主机名]的格式,不过要查询的网络主机需要运行finger守护进程。 命令中各选项的含义如下:
-s 显示用户的注册名、实际姓名、终端名称、写状态、停滞时间、登录时间等信息。
-l 除了用-s选项显示的信息外,还显示用户主目录、登录shell、邮件状态等信息,以及用户主目录下的.plan、.project和.forward文件的内容。
-p 除了不显示.plan文件和.project文件以外,与-l选项相同。
itcast@ubuntu:~$ finger itcast
Login: itcast
Name: itcast
Directory: /home/itcast
Shell: /bin/bash
On since Mon Sep 8 08:55 (CST) on tty7 14 hours 48 minutes idle
On since Mon Sep 8 21:57 (CST) on pts/1 from :0
11 minutes 18 seconds idle
On since Mon Sep 8 23:12 (CST) on pts/2 from :0
6 seconds idle
No mail.
No Plan.
11 常用服务器构建
11.1 ftp
11.1.1 ftp服务器
1.安装vsftpd服务器
sudo apt-get install vsftpd
2.配置vsftpd.conf文件
sudo vi /etc/vsftpd.conf
添加下面设置
anonymous_enable=YES
anon_root=/home/itcast/ftp
no_anon_password=YES
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_umask=0022
3.重启服务器,重新加载/etc/vsftpd.conf配置文件
注意:在重启服务器前要在/home/itcast目录下创建好ftp目录。
ubuntu12.04下
sudo /etc/init.d/vsftpd restart
ubuntu14.04下
sudo /lib/init/upstart-job vsftpd restart
4.进入你的/home/itcast/ftp目录下创建一个空目录,供用户上传
cd ~/ftp
mkdir anonymous
chmod 777 anonymous
5.测试上传功能,登陆ftp服务器,进入到anonymous目录
ftp IP
cd anonymous
6.上传命令,可以把你当前目录下的文件上传到ftp服务器的anonymous目录
put somefile
get somefile
11.1.2 ftp客户端
Ubuntu 默认已经安装ftp客户端
11.1.3 lftp客户端
lftp也是一种 ftp客户程序。它是以文本方式操作的,但是比起图形界面更为方便。lftp几乎具有bash的所有方便功能,Tab 补全,bookmark, queue, 后台下载等可以得到支持。用法与ftp类似,主要的指令如下:
put 上传文件
mput 上传多个文件
get 下载文件
mget 下载多个文件
mirror 下载整个目录及其子目录
mirror --R 上传整个目录及其子目录
!command 调用本地shell执行命令command
注意,有的发行版可能缺省没有安装lftp工具,需要用户自己安装。如果是Debian或 Ubuntu系统,则安装lftp软件包。
sudo apt-get install lftp
11.2 nfs
1.安装nfs服务器
sudo apt-get install nfs-kernel-server
2.设置/etc/exports配置文件
sudo vi /etc/exports
添加这行配置
/home/用户名/nfs *(rw,sync,no_root_squash)
3.在用户目录下创建nfs目录
mkdir /home/用户名/nfs
4.重启服务器,重新加载配置文件
sudo /etc/init.d/nfs-kernel-server restart
充当nfs服务器的主机,启动服务以后,可以使用showmount -e 查看共享出来的目录
5.在/home/用户名/nfs目录下创建测试文件hello
cd /home/用户名/nfs
touch hello
6.测试服务器,把服务器共享目录nfs挂在到/mnt节点
sudo mount -t nfs -o nolock -o tcp IP:/home/用户名/nfs /mnt
7.进入/mnt目录可以看到hello文件,表示构建成功
8.卸载网络共享目录
sudo umount /mnt
补充常见错误
(1).虚拟机下,mount 之前使用install nfs-common可以结决虚拟机不能mount实体系统的情况。
(2).如在mount期间出现类似"超级坏块"错误导致无法挂载,很有可能是因为nfs-kernel-server未安装
11.3 ssh
1.安装ssh服务器
sudo apt-get install openssh-server
2.远程登陆
ssh 用户名@IP
使用ssh访问,如访问出现错误。可查看是否有该文件 ~/.ssh/known_ssh 尝试删除该文件解决。
11.4 scp
远程拷贝文件,scp -r 的常用方法:
1.使用该命令的前提条件要求目标主机已经成功安装openssh-server
如没有安装使用 sudo apt-get install openssh-server 来安装
2.使用格式:
scp -r 目标用户名@目标主机IP地址:/目标文件的绝对路径 /保存到本机的绝对/相对路径
举例:
scp -r itcast@192.168.1.100:/home/itcast/QQ_dir/ ./mytest/lisi
在后续会提示输入"yes"此时,只能输"yes"而不能简单输入"Y"
拷贝单个文件可以不加 -r参数,拷贝目录必须要加。
11.5 telnet
明文传输数据,请大家自行测试
12 其它命令
12.1 终端翻页
Shift-pageup
Shift-pagedown
12.2 man
看手册(叫做manual或man page)。每一个命令和系统函数都有自己的man page。
man man
man read 查看read命令的man page
man 2 read 查看read系统函数的man page(在第二个section中,表示为read(2))
man -k read 以read为关键字查找相关的man page
12.3 clear
清屏。使光标和提示符回到屏幕第一行。
命令:clear
快捷键:Ctrl-l
12.4 alias
alias [-p] name=value ...
将value字符串起个别名叫 name,以后在命令行输入 name,shell自动将其解释为value,如果不带参数执行本命令,或以参数-p执行,则显示当前定义的别名列表。
$ alias
alias ls='ls --color=auto'
alias rm='rm -i'
防止rm误删除,把下面这段代码写到*∼*/.bashrc里最后面。
mkdir -p ~/.trash
alias rm=trash
trash()
{
mv $@ ~/.trash/
}
12.5 echo
echo [-n] 字符串
在显示器上显示一段文字,一般起到一个提示的作用。其中选项n表示输出文字后不换行;字符串可以加引号,也可以不加引号。用echo命令输出加引号的字符串时,将字符串原样输出;用echo命令输出不加引号的字符串时,将字符串中的各个单词作为字符串输出,各字符串之间用一个空格分割。查看上一个程序退出数值,正常情况程序退出值是0
echo $?
12.6 date
查看当前时间
12.7 umask
umask [-p] -S [mode]
umask指定用户创建文件时的掩码,其中的mode和chmod的命令中的格式一样。如果不用mode参数,则显示当前的umask设置。如果用-S参数,则以符号形式显示设置。
$ umask
0022
$ umask -S
u=rwx,g=rx,o=rx
比如该用户touch或gedit创建一个文件,则其默认权限为-rw-r-r--,如果该用户创 建一个可执行文件(比如编译生成的程序),则其默认权限为-rwxr-xr-x。也就是说,由于umask的设定,创建的文件默认是不具有g的w权限和o的w权限的,除非用chmod更改权限。
12.8 创建终端
创建终端标签 Ctrl + Shift + t
切换标签 Alt+n(n=1)
新开终端 Ctrl + Shift + n
13 关机重启
关机重启这些操作都需要有root权限
13.1 poweroff
13.2 shutdown
shutdown -t 秒数 [-rkhncfF] 时间 [警告讯息]
-t 秒数 : 设定在切换至不同的runlevel之前, 警告和删除二讯号之间的延迟时间(秒).
-k : 仅送出警告讯息文字, 但不是真的要 shutdown.
-r : shutdown 之後重新开机.
-h : shutdown 之後关机.
-n : 不经过 init , 由 shutdown 指令本身来做关机动作.(不建议你用)
-f : 重新开机时, 跳过 fsck 指令, 不检查档案系统.
-F : 重新开机时, 强迫做 fsck 检查.
-c : 将已经正在 shutdown 的动作取消.
例子:
shutdown -r now 立刻重新开机
shutdown -h now 立刻关机
shutdown -k now 'Hey! Go away! now....' 发出警告讯息, 但没有真的关机
shutdown -t3 -r now 立刻重新开机, 但在警告和删除processes 之间, 延迟3秒钟.
shutdown -h 10:42 'Hey! Go away!' 10:42 分关机
shutdown -r 10 'Hey! Go away!' 10 分钟後关机
shutdown -c 将刚才下的 shutdown 指令取消,必须切换至其它tty, 登入之後, 才能下此一指令.
shutdown now 切换至单人操作模式(不加任何选项时)
注意事项:
时间参数务必要加: 不是用 now, 便是用 hh:mm 或 mm now 其实就是 0 的意思
13.3 reboot
重启系统
13.4 查看内核版本信息
uname -a
13.5 查看发行版信息
lsb_release -a
13.6 查看空闲内存
free -m
14 练习
1.创建test目录,在里面创建aa bb cc三个目录,在aa里创建hello文件,在bb里创建 world目录,在cc里创建itcast.c,然后执行tree/ls -R,最后删除test
打开终端。
创建test目录:输入以下命令并按下Enter键。
插入代码复制代码
mkdir test
这将在当前目录下创建一个名为test的目录。
进入test目录:输入以下命令并按下Enter键。
插入代码复制代码
cd test
现在你在test目录中进行操作。
创建aa、bb和cc目录:输入以下命令并按下Enter键。
插入代码复制代码
mkdir aa bb cc
这将在test目录下创建名为aa、bb和cc的三个子目录。
进入aa目录:输入以下命令并按下Enter键。
插入代码复制代码
cd aa
现在你在aa目录中。
创建hello文件:输入以下命令并按下Enter键。
插入代码复制代码
touch hello
这将在aa目录中创建一个名为hello的空文件。
退出aa目录:输入以下命令并按下Enter键。
插入代码复制代码
cd ..
现在你回到了test目录。
进入bb目录:输入以下命令并按下Enter键。
插入代码复制代码
cd bb
现在你在bb目录中。
创建world目录:输入以下命令并按下Enter键。
插入代码复制代码
mkdir world
这将在bb目录中创建一个名为world的子目录。
退出bb目录:输入以下命令并按下Enter键。
插入代码复制代码
cd ..
现在你回到了test目录。
进入cc目录:输入以下命令并按下Enter键。
插入代码复制代码
cd cc
现在你在cc目录中。
创建itcast.c文件:输入以下命令并按下Enter键。
插入代码复制代码
touch itcast.c
这将在cc目录中创建一个名为itcast.c的空文件。
退出cc目录:输入以下命令并按下Enter键。
插入代码复制代码
cd ..
现在你回到了test目录。
查看目录结构:使用tree命令或者ls -R命令都可以显示目录结构。输入以下命令并按下Enter键。
使用tree命令: 插入代码复制代码
tree
使用ls -R命令: 插入代码复制代码
ls -R
这将显示test目录及其子目录和文件的树状结构或分层列表。
删除test目录及其内容:输入以下命令并按下Enter键。
插入代码复制代码
rm -r test
这将递归地删除test目录及其所有子目录和文件。
请注意,在执行删除操作之前,请务必确保你确实想要删除这些目录和文件,并且已经备份了重要的数据。
15 需要安装的组件
sudo apt-get install openssh-server
sudo apt-get install nfs-kernel-server
sudo apt-get install vsftpd