2.linux系统命令详解
1 shell
shell:命令解释器,根据输入的命令执行相应命令.
1.1 shell家族
察看当前系统下有哪些shell:
cat /etc/shells
察看当前系统正在使用的shell
echo $SHELL
常见的shell
/bin/sh (已经被 /bin/bash 所取代)
/bin/bash (就是 Linux 默认的 shell)
/bin/ksh (Kornshell 由 AT&T Bell lab. 发展出来的,兼容于 bash)
/bin/tcsh (整合 C Shell ,提供更多的功能)
/bin/csh (已经被 /bin/tcsh 所取代)
/bin/zsh (基于 ksh 发展出来的,功能更强大的 shell)
1.2 bash
bash是一个为GNU计划编写的Unix shell.bash是大多数Linux系统以及Mac OS X v10.4默认
的shell,它可以运行在大多数Unix风格的操作系统之上,甚至被移植到了windows上,以实现windows的POSIX虚拟接口.
1.3 命令和路径补齐
在bash下敲命令的时候,有时候偷点懒,可以Tab键补齐以及敲了一部分的文件名和目录名.
1.4 历史记录
历史记录是另外一个非常方便的功能。按上下移动光标键(或者Ctrl-p、Ctrl-n)可以
一条一条浏览以前输过的命令。如果有需要重复输入的命令就不用输第二次了。如果你能记
住以前输过的某条命令中的某个关键字,可以按Ctrl-r,然后输入关键字,随着你每输入一
个字母,bash会做增量式(increasingly)查找,也可以反复按Ctrl-r或Ctrl-s向前向后查
找。如果找到了,按左右移动光标键或Home键(Ctrl-a)或End键(Ctrl-e)将该命令带回提示
符下进一步修改,或者直接按Enter键原封不动地执行该命令。
1.5 主键盘快捷键
bash的快捷键和emacs保持一致,用惯其中之一再用另一个程序会很顺手的。请记住一
条原则:尽量使用主键盘快捷键而不使用移动光标键和编辑键。因为手不必离开主键盘是效
率最高的,这样在你一生之中所节省的来回移动手的时间绝对可以用星期来计算,是绝对值
得你花十分钟的时间记住这些快捷键的。
功能 | 快捷键 | 助记 |
上 | Ctrl-p | previous |
下 | Ctrl-n | next |
左 | Ctrl-b | backward |
右 | Ctrl-f | forward |
Del | Ctrl-d | delete光标前面的 |
Home | Ctrl-a | the first letter |
End | Ctrl-e | end |
Backspace | Backspace | delete光标前面的 |
2 目录和文件
2.1 类Unix系统目录结构
ubuntu没有盘符这个概念,只有一个根目录/,所有文件都在它下面
/ 根目录
bin //系统可执行程序,如命令
boot //内核和启动程序,所有和启动相关的文件都保存在这里
grub //引导器相关文件
dev //设备文件
etc //系统软件的启动和配置文件,系统在启动过程中需要读取的文件都在这个目录。如LILO参数、用
户账户和密码。
home //用户的主目录。下面是自己定义的用户名的文件夹
lib //系统程序库文件,这个目录里存放着系统最基本的动态链接共享库,类似于Windows下的system32
目录,几乎所有的应用程序都需要用到这些共享库。
media //挂载媒体设备,如光驱、U盘等
mnt //目录是让用户临时挂载别的文件系统,如挂载Windows下的某个分区,ubuntu默认还是挂载在/media
目录。
opt //可选的应用软件包(很少使用)
proc //这个目录是系统内存的映射,我们可以直接访问这个目录来获取系统信息。也就是说,这个目录
的内容不在硬盘上而是在内存里。
sbin //管理员系统程序
selinux
srv
sys //udev用到的设备目录树,/sys反映你机器当前所接的设备
tmp //临时文件夹
usr //这是个最庞大的目录,我们要用到的很多应用程序和文件几乎都存放在这个目录下。]
bin // 应用程序
game //游戏程序
include
lib //应用程序的库文件
lib64
local //包含用户程序等
sbin //管理员应用程序
一个小案例之万事万物皆文件,鼠标也是文件,接下来演示查看鼠标文件:
cd /
ls
cd /dev
ls
cd input/
ls
ls -l mice
sudo chmod mice
cat mice
鼠标移动则会显示如下效果:
2.2 用户目录
位于/home/user,称之为用户工作目录或家目录,表示方式:
cd ~(回到用户目录)
cd -//从哪来回哪去(相当于windows的返回)
在用户目录创建删除文件
cd /
touch ~/aabbcc
cd ~
ls
rm aabbcc
ls
2.2.1 相对路径和绝对路径
绝对路径
从/目录开始描述的路径为绝对路径如:
cd /home
ls /usr
相对路径
从当前位置开始描述的路径为相对路径,如:
cd ../../
ls abc/def
.和..
每个目录下都有.和..
. 表示当前目录
.. 表示上一级目录,即父目录
根目录下的.和..都表示当前目录
2.3 ls(列出目录的内容)
ls [OPTION]… [FILE]…
ls是英文单词list的简写,其功能为列出目录的内容。这是用户最常用的一个命令,因
为用户需要不时地查看某个目录的内容。该命令类似于DOS下的dir命令。 对于每个目录,
该命令将列出其中的所有子目录与文件。对于每个文件,ls将输出其文件名以及所要求的其
他信息。默认情况下,输出条目按字母顺序排序。当未给出目录名或是文件名时,就显示当
前目录的信息。主要的OPTION有:
-a 列出隐藏文件,文件中以“.”开头的均为隐藏文件,如:~/.bashrc
-l 列出文件的详细信息
-R 连同子目录中的内容一起列出
用ls -l命令显示的信息中,开头是由10个字符构成的字符串,其中第一个字符表示文
件类型.
它可以是下述类型之一:
- 普通文件
d 目录
l 符号链接
b 块设备文件
c 字符设备文件
s socket文件,网络套接字
p 管道
后面的9个字符表示文件的访问权限,分为3组,每组3位。第一组表示文件属主的权
限,第二组表示同组用户的权限,第三组表示其他用户的权限。每一组的三个字符分别表示
对文件的读、写和执行权限。
各权限如下所示:
r 读
w 写
x 可执行。对于目录,表示进入权限。
s 当文件被执行时,把该文件的UID或GID赋予执行进程的UID(用户ID)或GID(组 ID)。
t 设置标志位(sticky bit)。如果是有sticky bit的目录,在该目录下任何用户只要有适当的权限即可创建文
件,但文件只能被超级用户、目录拥有者或文件属主删除。如果是有sticky bit的可执行文件,在该文件执行后,
指向其正文段的指针仍留在内存。这样再次执行它时,系统就能更快地装入该文件。
- 没有相应位置的权限
访问权限后面的数字表示与该文件共享inode的文件总数,即硬链接数(参见下面ln命
令)。
权限的概念:
2.4 cd(改变当前所在路径)
change dir 改变当前所在路径
cd ~
cd dir1/dir2
cd ..
2.5 which(查看指定命令所在路径)
查看指定命令所在路径
which ls
实战修改ls的权限
which ls
ls /bin/ls -l
//修改权限为-wx -w- -w-
sudo chmod /bin/ls
//修改权限为rwx -wx -wx
sudo chmod /bin/ls
2.6 pwd(查看当前所在路径)
查看当前所在路径
2.7 mkdir(创建目录)
mkdir [OPTION] DIRECTORY…
创建目录DIRECTORY,可以一次创建多个。OPTION如果是-p,表示可以连同父目录一起
创建。
mkdir
mkdir -p ff/aa/bb/cc
2.8 rmdir(删除空目录)
rmdir [OPTION]… DIRECTORY…
删除空目录,可以一次删除多个。OPTION如果是-p,表示可以连同空的父目录一起删
除。mkdir和rmdir的用法举例:
$ mkdir a
$ mkdir a/b
$ ls a
b
$ rmdir a/b
$ ls a
$ rmdir a
$ mkdir a/b
mkdir: cannot create directory `a/b': No such file or directory
$ mkdir -p a/b
$ rmdir -p
rm 删除一个文件
rm -r ff 删除一个文件夹(采用一个递归的方式)
2.9 touch(创建文件或者更新时间)
touch [OPTION]… FILE…
* 将每个文件的访问及修改时间都更新为目前的时间。
* 如果文件不存在,则创建一个字节数为0的文件。
2.10 rm(删除文件)
删除文件:
rm file
删除目录:
rm dir -rf
2.11 mv(移动文件)
重命名:
mv file1 file2
移动文件
mv file1 ~/
2.12 cp(拷贝文件)
拷贝文件:
cp file1 file2
cp file1 dir/
cp file1 ../
拷贝目录:
cp dir1 dir2 -r
cp dir1 ~/ -r
2.13 cat(查看文件内容(全部))
查看文件里内容,输出到终端,如果cat时没跟文件名,则读标准输入,遇到\n后,输
出到标准输出,终端下输入Ctrl-d表示结束
2.14 more(查看文件内容(滚动))
more [OPTION] FILE…
查看文本文件的内容,屏幕显示完一屏就等待用户按下任意键再滚动到下一屏,如果中
途不想继续看下去了,可以按Ctrl+C或q终止显示。
2.15 less(查看文件内容(逐行))
less [OPTION] FILE…
查看文本文件的内容,屏幕显示完一屏就等待用户按键,用户可以向上或向下查看,如果中途不想继续看下去了,可以按Ctrl+C或q终止显示。
2.16 head(显示前几行)
head [OPTION]… FILE…
显示指定文件的前面几行。如果没有指定文件,将从标准输入(键盘)上读取。如果没
有指定要显示的行数,则默认显示前10行。如果要显示文件的前5行:
head - file1
2.17 tail (显示后几行)
tail [OPTION]… FILE…
显示文件的最后几行。若没有指定显示的行或字符数,则默认显示末尾10行。如果要显
示文件末5行:
tail - file
2.18 ln(连接方式)
链接有两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic
Link)。建立硬链接时,链接文件和被链接文件必须位于同一个文件系统中,并且不能建立
指向目录的硬链接。而对符号链接,则不存在这个问题。默认情况下,ln产生硬链接。如果
给ln命令加上-s选项,则建立符号链接。举例如下,注意ls -l列出文件的硬链接数和字节
数:
硬连接;
touch hello
ln hello word_h
软连接;
ln -s hello word_s
2.19 tree(树形目录)
这个命令需要下载安装,ubuntu下
sudo apt-get install tree
按结构树的形状显示目录和文件.
安装完成后:
2.20 wc(计算字节数)
利用 wc 指令我们可以计算文件的 Byte 数、字数、或是行数,若不指定文件名称、或
是所给予的文件名为“-”,则 wc 指令会从标准输入设备读取数据。
wc -l ./*
-c 或–bytes 或–chars 只显示 Bytes 数。
-l 或–lines 只显示行数。
-w 或–words 只显示字数。
2.21 od(显示方式)
od -tcx file1
-t 指定数据的显示格式,主要的参数有:
c ASCII字符或反斜杠序列
d[SIZE] 有符号十进制数,每个整数SIZE字节。
f[SIZE] 浮点数,每个整数SIZE字节。
o[SIZE] 八进制(系统默认值为02),每个整数SIZE字节。
u[SIZE] 无符号十进制数,每个整数SIZE字节。
x[SIZE] 十六进制数,每个整数SIZE字节。
2.22 du(查看某个目录的大小)
查看某个目录的大小:
以M为单位
du -hm file
以B为单位
du -hb file
以K为单位,4k的整数倍
du -hk file
2.23 df(查看磁盘使用情况)
df查看磁盘使用情况
df --block-size=GB
df --block-size=MB
3 文件属性和用户用户组
3.1 whoami(当前登录用户)
查看当前登录用户
3.2 chmod(修改文件的权限命令)
chmod [who] [+|-|=] [mode] 文件名
操作对象who可是下述字母中的任一个或者它们的组合:
u 表示“用户(user)”,即文件或目录的所有者。
g 表示“同组(group)用户”,即与文件属主有相同组ID的所有用户。
o 表示“其他(others)用户”。
a 表示“所有(all)用户”。它是系统默认值。
操作符合可以是:
+ 添加某个权限。
- 取消某个权限。
= 赋予给定权限并取消其他所有权限(如果有的话)。
设置mode所表示的权限可用下述字母的任意组合:
r 可读。
w 可写。
x 可执行
* 数字设定法
chmod [mode] 文件名
我们必须首先了解用数字表示的属性的含义:
0表示没有权限,
1表示可执行权限,
2表示可写权限,
4表示可读权限,
然后将其相加。所以数字属性的格式应为3个从0到7的八进制数,其顺序是(u)(g)
(o)。
例如,如果想让某个文件的属主有“读/写”二种权限,需要把4(可读)+2(可写)=
6(读/写)。
比如设置一个文件允许所有用户可写
chmod a+w file1
设置一个文件允许所有用户可读,可写,不可执行
chmod file1
3.3 chown(更改某个文件或目录的属主和属组)
chown [OPTION]… [OWNER:GROUP] FILE…
chown [OPTION]… –reference=RFILE FILE…
更改某个文件或目录的属主和属组。这个命令也很常用。例如root用户把自己的一个文
件拷贝给用户A, 为了让用户A能够存取这个文件,root用户应该把这个文件的属主设为A,
否则,用户A无法存取这个文件。
OPTION的主要参数:
* -R 递归式地改变指定目录及其下的所有子目录和文件的拥有者。
* -v 显示chown命令所做的工作。
比如把一个文件改为itcast用户和nogroup用户组所有
sudo chown cgw:root file
注意:
* chown需要特权用户才能执行
* 一个文件的owner和owning group是没有关联的。一个文件属于用户A,也属于用户组
B,并不表示用户A属于用户组B。
3.4 chgrp(改变指定文件所属的用户组)
chgrp [OPTION]… GROUP FILE…
chgrp [OPTION]… –reference=RFILE FILE…
该命令改变(指定)指定文件所属的用户组。其中group可以是用户组ID,也可以是/
etc/group文件中用户组的组名。文件名是以空格分开的要改变属组的文件列表,支持通配
符。如果用户不是该文件的属主或超级用户,则不能改变该文件的组。
OPTION的主要参数:
-R 递归式地改变指定目录及其下的所有子目录和文件的属组。
4 查找与检索
4.1 find(搜索文件)
find [OPTION] path… [expression]
在目录中搜索文件,path指定目录路径,系统从这里开始沿着目录树向下查找文件。它
是一个路径列表,相互用空格分离,如果不写path,那么默认为当前目录。Expression 是
find命令接受的表达式,find命令的所有操作都是针对表达式的。
一条最常用的find命令--在当前目录及子目录下查找所有以file开头的文件名。
$ find . -name 'file*'
$ find / -name 'vimrc'
$ find ~ -name '*.c
4.2 grep(根据内容检索)
根据内容检索
grep [options] PATTERN [FILE...]
在指定文件中搜索特定的内容,并将含有这些内容的行输出到标准输出。若不指定文件
名,则从标准输入读取。
[options]部分包含的主要参数:
-c:只输出匹配行的计数。
-I:不区分大小写(只适用于单字符)。
-h:查询多文件时不显示文件名。
-l:查询多文件时只输出包含匹配字符的文件名。
-n:显示匹配行及行号。
-s:不显示不存在或无匹配文本的错误信息。
-v:显示不包含匹配文本的所有行。
-R: 连同子目录中所有文件一起查找
比如到系统头文件目录下查找所有包含printf的文件
$ grep 'printf' /usr/include -R
5 安装卸载软件
5.1 apt-get(更新服务器列表)
更新服务器列表
sudo vi /etc/apt/sources.list
更新完服务器列表后需要更新下源
sudo apt-get update 更新源
sudo apt-get install package 安装包
sudo apt-get remove package 删除包
sudo apt-cache search package 搜索软件包 (比较常用)
sudo apt-cache show package 获取包的相关信息,如说明、大小、版本等
sudo apt-get install package --reinstall 重新安装包
sudo apt-get -f install 修复安装
sudo apt-get remove package --purge 删除包,包括配置文件等
sudo apt-get build-dep package 安装相关的编译环境
sudo apt-get upgrade 更新已安装的包
sudo apt-get dist-upgrade 升级系统
sudo apt-cache depends package 了解使用该包依赖那些包
sudo apt-cache rdepends package 查看该包被哪些包依赖
sudo apt-get source package 下载该包的源代码
sudo apt-get clean && sudo apt-get autoclean 清理无用的包
sudo apt-get check 检查是否有损坏的依赖
示例:
5.2 deb包安装
安装deb软件包命令: sudo dpkg -i xxx.deb
删除软件包命令: sudo dpkg -r xxx.deb
连同配置文件一起删除命令: sudo dpkg -r --purge xxx.deb
查看软件包信息命令: sudo dpkg -info xxx.deb
查看文件拷贝详情命令: sudo dpkg -L xxx.deb
查看系统中已安装软件包信息命令: sudo dpkg -l
重新配置软件包命令: sudo dpkg-reconfigure xxx
5.2.1 实战:安装QQ2013
qq2013 for linux下载地址:http://www.longene.org/download/WineQQ2013-20131120-Longene.deb
至此,qq已经安装好了
接下来就可以登录qq了
5.3 源码安装
1. 解压缩源代码包
2. cd dir
3. ./configure
检测文件是否缺失,创建Makefile,检测编译环境
4. make
编译源码,生成库和可执行程序
5. sudo make install
把库和可执行程序,安装到系统路径下
6 磁盘管理
6.1 mount (挂载)
命令格式:
mount [-t vfstype] -o options device dir
其中:
* -t vfstype 指定文件系统的类型,通常不必指定。mount 会自动选择正确的类型。常
用类型有:
光盘或光盘镜像:iso9660
DOS fat16文件系统:msdos
Windows 9x fat32文件系统:vfat
Windows NT ntfs文件系统:ntfs
Mount Windows文件网络共享:smbfs
UNIX(LINUX) 文件网络共享:nfs
* -o options 主要用来描述设备或档案的挂接方式。常用的参数有:
loop:用来把一个文件当成硬盘分区挂接上系统
ro:采用只读方式挂接设备
rw:采用读写方式挂接设备
iocharset:指定访问文件系统所用字符集
* device 要挂接(mount)的设备。
* dir设备在系统上的挂接点(mount point)
6.2 挂载U盘
什么是挂载?(如图所示)
1.检测存储设备名称
sudo fdisk -l
2.挂载存储设备sdb1到挂载点/mnt目录
sudo mount /dev/sdb1 /mnt
3.访问/mnt
4.卸载/mnt
sudo umount /mnt
6.3 umount(卸载命令)
卸载命令
sudo umount 挂在点
6.4 dd (拷贝)
dd:拷贝
例1:拷贝光碟(注意,你的光碟是标准的 iso9660格式才可以这么做)
dd if=/dev/cdrom of=cdrom.iso
例2:将文件sfile拷贝到文件 dfile中
$ dd if=sfile of=dfile
例3:创建一个100M的空文件
dd if=/dev/zero of=hello.txt bs=100M count=
/dev/null,外号叫无底洞,你可以向它输出任何数据,它通吃,并且不会撑着!
/dev/zero,是一个输入设备,你可你用它来初始化文件,从里面读出来的数据都是0。
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
解压缩示例:
打gz压缩包
指定解压缩路径
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 宽输出。
a 显示终端上的所有进程,包括其他用户的进程。
r 只显示正在运行的进程。
x 显示没有控制终端的进程。
这个命令参数有很多,但一般的用户只需掌握一些最常用的命令参数就可以了。 最常
用的三个参数是u、a、x, 我们首先以root身份登录系统,查看当前进程状况
Head标头:
USER 用户名
UID 用户ID(User ID)
PID 进程ID(Process ID)
PPID 父进程的进程ID(Parent Process id)
SID 会话ID(Session id)
%CPU 进程的cpu占用率
%MEM 进程的内存占用率
VSZ 进程所使用的虚存的大小(Virtual Size)
RSS 进程使用的驻留集大小或者是实际内存的大小,Kbytes字节。
TTY 与进程关联的终端(tty)
STAT 进程的状态:进程状态使用字符表示的(STAT的状态码)
R 运行 Runnable (on run queue) 正在运行或在运行队列中等待。
S 睡眠 Sleeping 休眠中, 受阻, 在等待某个条件的形成或接受到信号。
I 空闲 Idle
Z 僵死 Zombie(a defunct process) 进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调
用后释放。
D 不可中断 Uninterruptible sleep (ususally IO) 收到信号不唤醒和不可运行, 进程必须等待直到有中
断发生。
T 停止 Terminate 进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行。
P 等待交换页
W 无驻留页 has no resident pages 没有足够的记忆体分页可分配。
X 死掉的进程< 高优先级进程 高优先序的进程
N 低优先 级进程 低优先序的进程
L 内存锁页 Lock 有记忆体分页分配并缩在记忆体内
s 进程的领导者(在它之下有子进程);
l 多进程的(使用 CLONE_THREAD, 类似 NPTL pthreads)
+ 位于后台的进程组
START 进程启动时间和日期
TIME 进程使用的总cpu时间
COMMAND 正在执行的命令行命令
NI 优先级(Nice)
PRI 进程优先级编号(Priority)
WCHAN 进程正在睡眠的内核函数名称;该函数的名称是从/root/system.map文件中获得的。
FLAGS 与进程相关的数字标识
8.3 jobs
用来显示当前shell 下正在运行哪些作业(即后台作业)。
$ cat
(按下Ctrl-z挂起当前进程)
[]+ Stopped cat
$ cat
(按下Ctrl-z挂起当前进程)
[]+ Stopped cat
$ jobs
[]- Stopped cat
[]+ 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、命令名称或者作
业号,在参数前要带%号
8.6 kill
向指定进程发送信号
kill [-signal | -s signal] pid...
查看信号编号
kill -l [ signal ]
给一个进程发信号,或终止一个进程的运行。
$ cat
(按Ctrl-z挂起当前进程)
[1]+ Stopped cat
$ ps
PID TTY TIME CMD
5819 pts/1 00:00:00 bash
5893 pts/1 00:00:00 cat
5894 pts/1 00:00:00 ps
$ kill -SIGKILL 5893
$(再次按回车键)
[1]+ Killed cat
$
kill命令如果不带参数而直接跟pid,就是发给该进程SIGTERM信号,大部分进程收到该
信号就会终止。但是被挂起的进程不能处理信号,所以必须发SIGKILL信号,由系统强制终
止进程。
kill 杀死案例分析(9号信号)
8.7 env
查看当前进程环境变量
* vim ∼/.bashrc
配置当前用户环境变量
* vim /etc/profile
配置系统环境变量,配置时需要有root权限
9 用户管理
9.1 创建用户
sudo useradd -s /bin/bash -g cgw -d /home/cgw1 -m cgw1
(以上是创建一个用户,所属组为cgw,所在目录为/home/cgw1,用户名为cgw1)
sudo useradd -s /bin/sh -g group -G adm,root cgw1(此命令新建了一个用户cgw1,该用户的登录Shell是/bin/sh,他属于group用户组,同时
又属于adm和root用户组,其中group用户组是其主组 .)
-s 指定新用户登陆时shell类型
-g 指定所属组,该组必须已经存在
-G 指定附属组,该组必须已经存在
-d 用户家目录
-m 用户家目录不存在时,自动创建该目录
如图所示,创建了一个用户.
9.2 设置用户组
sudo groupadd cgw
9.3 设置密码
sudo passwd 123
9.4 切换用户
su 用户名
su cgw
9.5 root用户
变成root用户
sudo su
设置root密码
passwd
9.6 删除用户
userdel 选项 用户名
常用的选项是-r,他的作用是把用户的主目录一起删除。 例如:
sudo userdel -r cgw1
此命令删除用户cgw1在系统文件(主要是/etc/passwd,/etc/shadow,/etc/
group等)中的记录,同时删除用户的主目录。
10 网络管理
10.1 ifconfig
1.查看网卡信息ifconfig
2.关闭网卡sudo ifconfig eth0 down
3.开启网卡eth0sudo ifconfig eth0 up4.给eth0配置临时IPsudo ifconfig eth0 IP
操作网卡示例:
10.2 ping
ping [选项] 主机名/IP地址
查看网络上的主机是否在工作。它向该主机发送ICMP ECHO_REQUEST包。有时我们想从
网络上的某台主机上下载文件,可是又不知道那台主机是否开着,就需要使用ping命令查
看。
命令中各选项的含义如下:
-c 数目 在发送指定数目的包后停止。
-d 设定SO_DEBUG的选项。
-f 大量且快速地送网络封包给一台机器,看它的回应。
-i 秒数 设定间隔几秒送一个网络封包给一台机器,预设值是一秒送一次。
-i 次数 在指定次数内,以最快的方式送封包数据到指定机器(只有超级用户可以使用此选项)。
-q 不显示任何传送封包的信息,只显示最后的结果。-r 不经由网关而直接送封包到一台机器,通常是查看本机的网络接口是否有问题。
-s 字节数 指定发送的数据字节数,预设值是56,加上8字节的ICMP头,一共是64ICMP数据字节。
11.3 netstat
netstat [选项]
显示网络连接、路由表和网络接口信息,可以让用户得知目前都有哪些网络连接正在运
作。命令中各选项的含义如下:
-a 显示所有socket,包括正在监听的。
-c 每隔1秒就重新显示一遍,直到用户中断它。
-i 显示所有网络接口的信息,格式同“ifconfig -e”。
-n 以网络IP地址代替名称,显示出网络连接情形。
-r 显示核心路由表,格式同“route -e”。
-t 显示TCP协议的连接情况。
-u 显示UDP协议的连接情况。
-v 显示正在进行的工作。
11.4 nslookup
nslookup name
查询一台机器的IP地址和其对应的域名。它通常需要一台域名服务器来提供域名服务。
如果用户已经设置好域名服务器,就可以用这个命令查看不同主机的IP地址对应的域名。
不带参数使用nslookup命令时,出现提示符“>”,在后面输入要查询的IP地址或域名
并回车即可。如果要退出该命令,输入exit并回车即可
12 常用服务器的构建
13 其他命令
13.1 终端翻页
Shift-pageup
Shift-pagedown
13.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
13.3 clear
清屏。使光标和提示符回到屏幕第一行。
13.4 alias
alias [-p] name=value …
将value字符串起个别名叫name,以后在命令行输入name,shell自动将其解释为
value,如果不带参数执行本命令,或以参数-p执行,则显示当前定义的别名列表。
$ alias
alias ls='ls --color=auto'
alias rm='rm -i'
13.5 echo
echo [-n] 字符串
在显示器上显示一段文字,一般起到一个提示的作用。其中选项n表示输出文字后不换
行;字符串可以加引号,也可以不加引号。用echo命令输出加引号的字符串时,将字符串原
样输出;用echo命令输出不加引号的字符串时,将字符串中的各个单词作为字符串输出,各
字符串之间用一个空格分割。
查看上一个程序退出数值,正常情况程序退出值是0
13.6 date
查看当前时间
13.7 umask
umask [-p] -S [mode]
umask指定用户创建文件时的掩码,其中的mode和chmod的命令中的格式一样。如果不用
mode参数,则显示当前的umask设置。如果用-S参数,则以符号形式显示设置。
$ umask $ umask -S
u=rwx,g=rx,o=rx
比如该用户touch或gedit创建一个文件,则其默认权限为-rw-r-r–,如果该用户创
建一个可执行文件(比如编译生成的程序),则其默认权限为-rwxr-xr-x。也就是说,由于
umask的设定,创建的文件默认是不具有g的w权限和o的w权限的,除非用chmod更改权限。
14 关机重启
关机重启这些操作都需要有root权限
14.1 poweroff
14.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 的意思
14.3 reboot
14.4 查看内核版本信息
uname -a
14.5 查看发行版信息
lsb_release -a
14.6 查看空闲内存
free -m
2.linux系统命令详解的更多相关文章
- Linux系统命令详解
目录 1. su 1.1. su命令中passwd的自动输入 2. sshpass 3. locate/mlocate 4. top/htop 5. lftp 6. kill/killall 1. s ...
- (转)Linux PS 详解
原文:https://cn.aliyun.com/jiaocheng/162702.html 摘要:原文地址:http://www.cnblogs.com/wangkangluo1/archive/2 ...
- Linux命令详解之—tail命令
tail命令也是一个非常常用的文件查看类的命令,今天就为大家介绍下Linux tail命令的用法. 更多Linux命令详情请看:Linux命令速查手册 Linux tail命令主要用来从指定点开始将文 ...
- Linux命令详解之—less命令
Linux下还有一个与more命令非常类似的命令--less命令,相比于more命令,less命令更加灵活强大一些,今天就给大家介绍下Linux下的less命令. 更多Linux命令详情请看:Linu ...
- Linux命令详解之—more命令
Linux more命令同cat命令一样,多用来查看文件内容,本文就为大家介绍下Linux more命令的用法. 更多Linux命令详情请看:Linux命令速查手册 Linux的more命令类似 ca ...
- 【转】linux命令详解:md5sum命令
[转]linux命令详解:md5sum命令 转自:http://blog.itpub.net/29320885/viewspace-1710218/ 前言 在网络传输.设备之间转存.复制大文件等时,可 ...
- Linux命令详解之—cat命令
cat命令的功能是连接文件或标准输入并打印,今天就为大家介绍下Linux中的cat命令. 更多Linux命令详情请看:Linux命令速查手册 Linux 的cat命令通常用来显示文件内容,也可以用来将 ...
- Linux命令详解之—pwd命令
Linux的pwd命令也是一个非常常用的命令,本文为大家介绍下Linux中pwd命令的用法. 更多Linux命令详情请看:Linux命令速查手册 Linux pwd命令用于显示工作目录. 执行pwd指 ...
- Linux命令详解之–cd命令
cd命令是linux实际使用当中另一个非常重要的命令,本文就为大家介绍下Linux中cd命令的用法. 更多Linux命令详情请看:Linux命令速查手册 Linux cd命令用于切换当前工作目录至 d ...
随机推荐
- 关于React-native的介绍以及环境搭建
React-Native介绍(后面内容的RN就是指react-native) 由facebook公司推出的,基于react,能开发原生app 原理: 1. 利用react框架写好js代码 2. 利用p ...
- Promise API 简介
Promise API 简介 译者注: 到处是回调函数,代码非常臃肿难看, Promise 主要用来解决这种编程方式, 将某些代码封装于内部. Promise 直译为"承诺",但一 ...
- 管窥python语法
刚接触python,mark下所见所得: 1.Python调用底层API,可在任何platform上运行,包括Windows.Mac.Unix: 2.用#符号对代码或语句进行注释,#后的代码不被编译: ...
- 使用Eric构建Caffe应用程序-Baby年龄识别
训练好的Caffe网络结构,可以固定下来,直接载入程序作为数据库接口使用.本文使用Eric构建运行于Python环境下的图片识别应用程序,因为Eric使用QT作为GUI,且有Python的接口,可直接 ...
- layui table 时间戳
, { field: , title: '时间', templet: '<div>{{ laytpl.toDateString(d) }}</div>' }, 或者 , { f ...
- 给html里面的class添加一个判断语句,判断当前class是否显示(vue)
当我们想判断这个class是否出现时,其实有很多方法, 我这个是做了一个选项卡,当点击的时候navTitle的值和循环的item的值相同时class就等于borderbottom, 这样我们点击的图层 ...
- bootstrap中container 类和container-fluid类的区别container类所谓的自适应也是通过margin的改变来完成,container-fluid类的百分百宽度是指在固有的15px的padding前提下宽度总是当前视口的宽度。
container 类和container-fluid类的区别体现在是否有随视口宽度改变的margin存在. container类所谓的自适应也是通过margin的改变来完成,container-fl ...
- mysql 最大连接数
方式一: 一次性修改 服务重启后还原 查看 show variables like 'max_connections%'; 修改 set GLOBAL max_connections=1024; ...
- Java判断字符串中是否含有英文
实现代码: /* * 判断字符串中是否含有英文,包含返回true */ public boolean isENChar(String string) { boolean flag = false; P ...
- 路飞学城Python-Day136
列举Http请求中常见的请求方式 根据HTTP标准,HTTP请求可以使用多种请求方法. HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法. HTTP1.1新增了五种请求方法:O ...