linux命令(实用!)

正文转发自网络

1.1 shell家族

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。它的名字是一密密麻麻缩写:Bourne-Again
SHell — 那是有关Bourne shell(sh)的一个双关语(Bourne again / born
again)
bash 是 许 多 Linux 平 台 的 内 定 Shell, 事 实 上, 还 有 许 多 传 统
UNIX 上 用 的 Shell, 像 tcsh、csh、ash、bsh、ksh等等,Shell
Script大约都类同,当您学会一种Shell以后,其余的Shell会很快就上手,一大半的时候,一个Shell
Script常常可以在很八种Shell上运用。

bash是大部分Linux系统以及Mac OS X
v10.4默许的shell,它能运作于超过半数Unix风格
的操作系统之上,甚至被移植到了Microsoft
Windows上的Cygwin系统中,以贯彻windows的POSIX虚拟接口。其它,它也被DJGPP项目移植到了MS-DOS上。

1.3 命令和途径补齐

在bash下敲命令时,Tab键可以补全已经敲了一局地的文本名和目录名。倘使是Ubuntu
系统,系统默许启用了bash
completion,还是可以补全命令的少数参数、Makefile目的等
等。要是是Debian系统,可以用以下命令启用bash completion:

$ source /etc/bash_completion

提出将这一行参加∼/.bashrc启航脚本中。比如拔取sudo后边接命令,若是没有bash
completion则唯有sudo可以补全,前边的吩咐不可能补全。如若启用了bash
completion,则
后边的一声令下,包涵命令的一点参数(比如aptitude命令的install)都足以补全了。

诸如在主目录下要列出桌面目录的内容,输入(不回车)

$ ls De

下一场敲Tab键,若是以De开始的文书或文件夹唯有Desktop一个,就活动补全为

$ ls Desktop

再不,再敲三次Tab键,将会把装有以De先导的公文或文件夹列在底下供您选用(在此间
我们手动创设此外一个以De伊始的文书)

$ touch Death
$ ls De
Death    Desktop/

您可以再补敲一个s再Tab,这一次Desktop就会补全到命令前面了。有 的 人 是 从
DOS 时 代 过 来 的, 留 下 一 个 很 不 好 的 习 惯 就 是 在 找 一 个 文
件 时 反 复
cd、ls、cd、ls等找到了要找的文书时再想回去以前的目录,已经不记得在此之前是
从哪些目录转到那里来的了。

俺们从下面可以见见,Tab补全本身就颇具了ls的功能,上面的Tab补全相当于ls -Fd De*一声令下。所以我们完全不必反复地cd到其他目录然后ls去找文件,多按几遍Tab就可以一条
命令完毕了,那样的补益是我们的当前目录不用变,不须求找完了文件再cd回来,同时省去
了汪洋的按键次数。更要紧的是,自动补全同时拥有了反省拼写错误的机能,假使面前多少个字母拼写错了,就补全不出东西来,用户就明白拼写错了,借使面前多少个假名没有拼写错,
那么由系统补全出来的文本名肯定也不会有拼写错误,幸免了用户在敲很长的文件名时易犯
的拼写错误。

1.4 历史记录

history

历史记录是其它一个百般便宜的效率。按上下移动光标键(或者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.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    //管理员应用程序

2.2 用户目录

位于/home/user,称之为用户工作目录或家目录,表示方法:

/home/user
~
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

2.6 pwd

翻开当前所在路线

pwd

2.7 mkdir

mkdir [OPTION] DIRECTORY…

始建目录DIRECTORY,可以一遍创设三个。OPTION借使是-p,表示可以会同父目录一起
成立。

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 a/b

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 -5 file1

2.17 tail

tail [OPTION]… FILE… 突显文件的结尾几行。若没有点名突显的行或字符数,则默许突显末尾10行。要是要显
示文件末5行:

$ tail -5 file1

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 /home/sihai/test

以B为单位

du -hb ./*

以K为单位,4k的平头倍

du -hk ./*

2.23 df

df查看磁盘使用情状

df --block-size=GB df --block-size=MB

文件属性和用户用户组

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 666 file1

3.3 chown

chown [OPTION]… [OWNER:GROUP] FILE…

chown [OPTION]… –reference=RFILE FILE… 更改某个文件或目录的属主和属组。那个命令也很常用。例如root用户把团结的一个文件拷贝给用户A,
为了让用户A可以存取那么些文件,root用户应该把那一个文件的属主设为A,
否则,用户A不可以存取那么些文件。

OPTION的主要参数:

  • -R 递归式地转移指定目录及其下的所有子目录和文件的拥有者。
  • -v 呈现chown命令所做的干活。
    比如把一个文件改为sihai用户和nogroup用户组所有

$ sudo chown sihai:nogroup file1

注意:

  • 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.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.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.3 原码安装

  • 解压缩源代码包
  • cd dir
  • ./configure 检测文件是或不是缺乏,成立Makefile,检测编译环境
  • make 编译源码,生成库和可执行程序
  • sudo make install 把库和可执行程序,安装到系统路径下

磁盘管理

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.1.1 挂接光盘镜像文件

由 于 近 年 来 磁 盘 技 术 的 巨 大 进 步, 新 的 电 脑 系 统 都 配 备
了 大 容 量 的 磁 盘 系 统, 在
Windows下洋洋人都习惯把软件和材料做成光盘镜像文件通过编造
光驱来使用。那样做有
许多益处:一、减轻了光驱的毁损;二、现在硬盘容量巨大存放几十个光盘镜像文件不成难题,随用随调非常福利;三、硬盘的读取速度要远
远超越光盘的读取速度,CPU占用率大大
下落。其实linux系统下制作和动用光盘镜像比Windows系统更便民,不必借用任何第三方软
件包。

1.从光盘制作光盘镜像文件。将光盘放入光驱,执行上边的命令。

cp /dev/cdrom /home/sunky/mydisk.iso

dd if=/dev/cdrom of=/home/sunky/mydisk.iso

注:执行上边的任何一条命令都可将眼前光驱里的光盘制作成光盘镜像文件/home/ sunky/mydisk.iso

2.文本和目录制作成光盘镜像文件,执行下边的命令。

mkisofs -r -J -V mydisk -o /home/sunky/mydisk.iso /home/sunky/ mydir

注:那条命令将/home/sunky/mydir目录下所有的目录和文件制作成光盘镜像文件/ home/sunky/mydisk.iso,光盘卷标为:mydisk

3.光盘镜像文件的挂接(mount)

mkdir /mnt/vcdrom

注:确立一个索引用来作挂接点(mount point)

mount -o loop -t iso9660 /home/sunky/mydisk.iso /mnt/vcdrom

注:动用/mnt/vcdrom就可以访问盘镜像文件mydisk.iso里的具有文件了。

6.1.2 挂载U盘

1.检测存储设备名称

sudo fdisk -l

2.挂载存储设备sdb1到挂载点/mnt目录

sudo mount /dev/sdb1 /mnt

3.访问/mnt

4.卸载/mnt

sudo umount /mnt

6.2 umount

卸载命令

sudo umount 挂在点

6.3 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=1

/dev/null,外号叫无底洞,你可以向它输出任何数据,它通吃,并且不会撑着!

/dev/zero,是一个输入设备,你可你用它来开端化文件,从内部读出来的多寡都是0。

压缩包管理

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.3zip

打包:

zip -r dir.zip dir

解包:

unzip dir.zip

进程管理

8.1 who

查看当前在线上的用户景况。所有的选项都是可选的,不采纳任何取舍时,who命令将
突显以下三项内容:

login name:登录用户名; terminal line:使用终端设备; login
time:登录到系统的时刻。

sihai@ubuntu:~/demo$ who -uH
名称    线路    时间    空闲    进程号 备注 sihai tty2    2014-08-14 13:31        .    6798
sihai tty7    2014-08-14 01:31 旧    2423
sihai pts/1    2014-08-14 01:31 12:00    2843 (:0)
sihai pts/3    2014-08-14 10:39    .    2843 (:0)

8.2 ps

ps [选项]

ps命令用于监控后台进程的行事景况,因为后台进度是不和显示器键盘那个规范输入/输
出设备进行通讯的,所以一旦急需检测其场合,便足以选取ps命令了。选项部分如下:

  • -e 突显所有进度。

  • -f 全格式。

  • -h 不显得标题。

  • -l 长格式。

  • -w 宽输出。

  • a 突显终端上的持有进度,包罗其余用户的历程。 r
    只显示正在运转的长河。

  • x 显示没有决定终端的经过。

其一命令参数有诸多,但貌似的用户只需控制一些最常用的下令参数就足以了。

最常用的多个参数是u、a、x
大家先是以root身份登录系统,查看当前进程情状

sihai@ubuntu:~$ ps aux
USER    PID %CPU %MEM    VSZ    RSS TTY    STAT START    TIME COMMAND
root    1 0.0 0.0    3672    2008 ?    Ss    08:46    0:01 /sbin/init

sihai@ubuntu:~$ ps ajx
PPID    PID PGID    SID TTY    TPGID STAT    UID    TIME COMMAND 4592 6948 6948 4592 pts/3        6948 R+    1000    0:00 ps ajx


sihai@ubuntu:~$ ps -Lf 2423
UID    PID PPID    LWP C NLWP STIME TTY    STAT    TIME CMD
1000    2423 2282 2423 0    4 08:46 ?    Ssl    0:00 gnome-session --session=ubuntu
1000    2423 2282 2465 0    4 08:46 ?    Ssl    0:00 gnome-session --session=ubuntu
1000    2423 2282 2466 0    4 08:46 ?    Ssl    0:00 gnome-session --session=ubuntu
1000    2423 2282 2468 0    4 08:46 ?    Ssl    0:00 gnome-session --session=ubuntu

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.4 fg

fg [job…]

把指定的后台作业或挂起作业移到前台运行。
参数job是一个或多少个经过的PID,或者
是命令名称,或者是作业号(作业号后面要带一个%号)。

见怪不怪在shell中输入指令启动进度后,即使该进程需求与用户交互,那么将来用户的键
盘输入都被该进度读取,直到该进程退出后才面世shell提醒符

不能识别此Latex公式:
,这种进程为前台进程。

假诺在命令行的终极加上&字符,则shell为那些命令创建一个后台进度,它尽管也足以 输出到显示器,可是不能读取键盘输入,不管执行命令的进度有没有剥离都及时回去shell提 示符接受下一条命令的输入。如果该进程也急需读取键盘输入,则被挂起等待直到用户用fg 命令把它成为前台进度。假若一个下令须要较长的拍卖时间还要不须要与用户交互,就适合 把它放在后台执行。

8.5 bg

  

bg [job…]

 

把被挂起的经过提到后台执行。    其中,job是一个或五个经过的PID、命令名称或者作 业号,在参数前要带%号。

8.6 kill

向指定进度发送信号

 

  

kill [ -signal | -s signal ] pid …

 

翻开信号编号

 

kill -l [ signal ]

 

给一个历程发信号,或甘休一个进度的运转。

 

kill命令假诺不带参数而直白跟pid,就是发放该进程SIGTERM信号,一大半进度收到该 信号就会终止。可是被挂起的进度不可以处理信号,所以必须发SIGKILL信号,由系统强制终  止进度。

8.7env

翻开当前经过环境变量

 

$env

 

 

  • vim ∼/.bashrc 配置当前用户环境变量

 

  • vim /etc/profile 配置体系环境变量,配置时要求有root权限

 

用户管理
9.1    创建用户

sudo useradd -s /bin/bash -g sihai -d /home/sihai -m sihai 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 sihai

9.3    设置密码

sudo passwd sihai

9.4    切换用户

  

su 用户名

 

su sihai

9.5    root用户

变成root用户

 

sudo su

 

设置root密码

 

passwd

9.6    删除用户

  

userdel 选项 用户名

 

常用的挑选是-r,他的效果是把用户的主目录一起删除。 例如:

 

sudo userdel -r sihai

 

此命令删除用户sihai在系统文件(首即使/etc/passwd,/etc/shadow,/etc/ group等)中的记录,同时删除用户的主目录。

网络管理
10.1 ifconfig

1.查看网卡音讯

 

 ifconfig

 

2.停歇网卡

 

sudo ifconfig eth0 down

 

3.开启网卡eth0

 

sudo ifconfig eth0 up

 

4.给eth0配置临时IP

 

sudo ifconfig eth0 IP

10.2ping

  

ping [选项] 主机名/IP地址

 

翻开互连网上的主机是或不是在做事。它向该主机发送ICMP ECHO_REQUEST包。有时大家想从互连网上的某台主机上下载文件,但是又不知道那台主机是或不是开着,就须要利用ping命令查看。

 

一声令下中各接纳的意义如下:

 

  

-c 数目 在殡葬指定数量的包后终止。
-d 设定SO_DEBUG的选项。
-f 大批量且高效地送互联网封包给一台机器,看它的回应。
-I 秒数 设定间隔几秒送一个互连网封包给一台机械,预设值是一秒送五回。
-l 次数 在指定次数内,以最快的办法送封包数据到指定机器(唯有一流用户可以动用此选项)。
-q 不出示任何传送封包的音讯,只体现最后的结果。
-r    不经由网关而直接送封包到一台机械,常常是翻开本机的互连网接口是或不是有标题。
-s 字节数 指定发送的多寡字节数,预设值是 class=”hljs-number”>56,加上 class=”hljs-number”>8字节的ICMP头,一共是 class=”hljs-number”>64ICMP数据字节。

10.3netstat

  

netstat [选项]

 

来得互连网连接、路由表和网络接口音讯,可以让用户得知如今都有啥样网络连接正在运 作。命令中各选择的意思如下:

 

  

-a 突显所有socket,蕴含正在监听的。
-c 每隔1秒就再次突显五次,直到用户中断它。
-i 突显所有网络接口的音讯,格式同“ifconfig -e”。
-n 以互连网IP地址代替名称,突显出互联网连接处境。
-r 显示要旨路由表,格式同“route -e”。
-t 突显TCP协议的连接意况。
-u 呈现UDP协议的连天处境。
-v 突显正在进行的办事。

10.4nslookup

  

nslookup name

 

查询一台机械的IP地址和其对应的域名。它一般须要一台域名服务器来提供域名服务。 假如用户已经设置好域名服务器,就可以用这一个命令查看分裂主机的IP地址对应的域名。

 

不带参数使用nslookup命令时,出现提醒符“>”,在背后输入要询问的IP地址或域名 并回车即可。假若要退出该命令,输入exit并回车即可。

 

sihai@ubuntu:~$ nslookup
> www.sihai.cn
Server:    127.0.0.1
Address:    127.0.0.1#53

10.5 finger

finger [-lmsp] user [user@host …] 查询用户的信息,平常会浮现系统中某个用 户的用户名、主目录、停滞时间、登录时间、登录shell等音信。倘使要询问远程机上的用 户新闻,需求在用户名后边接“@主机名”,选择[用户名@主机名]的格式,可是要查询的网 络主机要求周转finger守护过程。

 

一声令下中各选项的意义如下:

 

  

-s    突显用户的注册名、实际姓名、终端名称、写情形、停滞时间、登录时间等新闻。
-l    除了用-s选项显示的新闻外,还显得用户主目录、登录shell、邮件状态等新闻,以 及用户主目录下的.plan、.project和.forward文件的情节。
-p 除了不突显.plan文件和.project文件以外,与-l选项相同。

 

sihai@ubuntu:~$ finger sihai
Login: sihai    Name: sihai
Directory: /home/sihai    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.1 ftp
11.1.1ftp服务器

1.安装vsftpd服务器

 

sudo apt-get install vsftpd

 

2.配置vsftpd.conf文件

 

sudo vi /etc/vsftpd.conf

 

增进上边设置

 

anonymous_enable=YES
anon_root=/home/sihai/ftp
no_anon_password=YES
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_umask=0022

 

3.重启服务器,重新加载/etc/vsftpd.conf配置文件

 

ubuntu12.04下
sudo /etc/init.d/vsftpd restart


ubuntu14.04下
sudo /lib/init/upstart-job vsftpd restart

 

4.进来你的/home/sihai/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

 

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

11.3ssh

1.安装ssh服务器

 

sudo apt-get install openssh-server

 

2.远程登陆

 

ssh 用户名@IP

其它命令
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

清屏。使光标和提醒符回到显示器第一行。

 

快捷键: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'

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

关机重启

关机重启那些操作都需要有root权限

13.1 poweroff
13.2 shutdown

  

class=”hljs-keyword”>shutdown -t 秒数 [-rkhncfF] 时间 [提个醒音信]

 

选项:

 

  

-t 秒数 : 设定在切换至分化的runlevel以前, 警告和删除二讯号之间的延迟时间(秒).
-k : 仅送出警告消息文字, 但不是真的要 shutdown.
-r : shutdown 之後重新开机
-h : shutdown 之後关机.
-n : 不经过 init , 由  class=”hljs-keyword”>shutdown 指令本身来做关机动作.(不指出您用)
-f : 重新开机时, 跳过 fsck 指令, 不反省档案系统.
-F : 重新开机时, 强迫做 fsck 检查.
-c : 将已经正在  class=”hljs-keyword”>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

vim
16.1 vi简介

vi是“Visual interface”的简称,它在Linux上的身份就就好像Edit程序在DOS上亦然。 它可以进行输出、删除、查找、替换、块操作等很多文件操作,而且用户可以根据自己的需 要对其展开定制。Vi不是一个排版程序,它不象Word或WPS那样可以对字体、格式、段落等 其余质量举办编辑,它只是一个文本编辑程序。    vi没有菜单,唯有命令,且命令繁多。

 

Vi有两种为主工作方式:

 

 

  • 一声令下格局

 

  • 文件输入格局

 

  • 末行方式。

 

16.1.1 命令行模式

任什么日期候,不管用户处于何种格局,只要按一下ESC键,即可使Vi进入命令格局;大家 在shell环境(提醒符为

)下输入启动Vi命令,进入编辑器时,也是高居该情势下。在该情势下,用户可以输入各样合法的Vi命令,用于管理自己的文档。此时从键盘上输入的其他字符
都被作为编辑命令来表明,若输入的字符是合法的Vi命令,则Vi在接受用户命令之后完结相
应的动作。但需注意的是,所输入的吩咐并不在显示屏上显示出来。若输入的字符不是Vi的合
法命令,Vi会响铃报警。

16.1.2 文本输入方式

在指令格局下输入插入命令i、附加命令a
、打开命令o、修改命令c、取代命令r或沟通命令s都足以进去文本输入形式。在该格局下,用户输入的别的字符都被Vi当做文件内容保
存起来,并将其出示在显示屏上。在文件输入进程中,若想回来命令格局下,按键ESC即可。

16.1.3 末行格局

末行形式也称ex转义情势。在指令形式下,用户按“:”键即可进入末行情势下,此时
Vi会在浮现窗口的末段一行(经常也是显示器的末尾一行)呈现一个“:”作为末行格局的擢升符,等待用户输入指令。多数文书管理命令都是在此方式下实施的(如把编辑缓冲区的内容
写到文件中等)。末行命令执行完后,Vi自动回到命令格局。例如:

:sp newfile

则分出一个窗口编辑newfile文件。要是要从命令格局转换来编辑格局,可以键入命令a
或者i;如果急需从文本情势再次来到,则按Esc键即可。在命令情势下输入“:”即可切换来末
行情势,然后输入指令。

16.2 vim基础操作

进入插入格局:

i: 插入光标前一个字符 I: 插入行首
a: 插入光标后一个字符 A: 插入行未
o: 向下新开一行,插入行首 O: 向上新开一行,插入行首

进去命令格局: ESC:从插入情势或末行形式进入命令形式 移动光标:

h: 左移 j: 下移 k: 上移 l: 右移
M: 光标移动到中游行
L: 光标移动到显示屏最终一行行首 G: 移动到指定行,行号 -G
w: 向后五回活动一个字 b: 向前三次活动一个字
{: 按段移动,上移
}: 按段移动,下移 Ctr-d: 向下翻半屏 Ctr-u: 向上翻半屏 Ctr-f: 向下翻一屏
Ctr-b: 向上翻一屏
gg: 光标移动文件开端 G: 光标移动到文件末尾

除去命令:

x: 删除光标后一个字符,约等于 Del
X: 删除光标前一个字符,相当于 Backspace
dd: 删除光标所在行,n dd 删除指定的行数 D:
删除光标后本行所有内容,包涵光标所在字符 d0:
删除光标前本行所有内容,不含有光标所在字符
dw: 删除光标开头地方的字,包括光标所在字符

裁撤命令:

u: 一步一步取消
U: 四次性撤除当前行所作的持有操作 Ctr-r: 反撤除

重复命令:

.: 重复上两次操作的命令

文本行移动:

  • >>: 文本行右移
  • <<: 文本行左移

复制粘贴:

yy: 复制当前行,n yy 复制 n 行
p: 在光标所在地方向下新开拓一行,粘贴

可视格局:

v: 按字符移动,选普通话本
V: 按行移动,选中文本可视方式可以合营 d, y, >>, <<
完成对文件块的删除,复制,左右活动

轮换操作:

r: 替换当前字符
R: 替换当前行光标后的字符

搜索命令:

/: str查找
n: 下一个
N:上一个

轮换命令: 把abc全体替换成123

:%s/abc/123/g

代码排版:

gg=G: 代码自动缩进排版

16.3 vim分屏操作

分屏操作:

sp: 上下分屏,后可跟文件名
vsp: 左右分屏,后可跟文件名
Ctr+w+w: 在八个窗口切换

起首分屏

1.用到大写O参数进行垂直分屏

$ vim -On file1 file2 ...

2.应用小写o参数进行水平分屏

$ vim -on file1 file2 ...

注: n是数字,表示分屏的数量,n要超越等于文件个数

关门分屏

1.关门当前窗口

ctrl+w c

2.关闭当前窗口,如若只剩最终一个,则脱离vim

ctrl+w q

编制中分屏

1.前后分割当前打开的文书

ctrl+w s

2.上下私分,并打开一个新的公文

:sp filename

3.左右划分当前打开的文书

ctrl+w v

4.左右分割,并开拓一个新的文件

:vsp filename

分屏编辑中光标的移动
vi中的光标键是h,j,k,l,要在各样屏之间切换,只要求先按一下ctrl+w

1.把光标移动到上边的屏

ctrl+w k

2.把光标移动到上面的屏

ctrl+w j

3.把光标移动到右侧的屏

ctrl+w l

4.把光标移动到左手的屏

ctrl+w h

5.把光标移动到下一个的屏

ctrl+w w

运动分屏 1.迈入移动

ctrl+w K

2.向下活动

ctrl+w J

3.向右移动

ctrl+w L

4.向左移动

ctrl+w H

显示屏尺寸

1.日增中度

ctrl+w +

2.滑坡高度

ctrl+w -

3.让所有屏的中度一致

ctrl+w =

4.左加增幅

ctrl+w >

5.右加大幅度

ctrl+w <

6.右增加n宽 (如:n=30)

ctrl+w n <

相关文章