Linux是众多操作系统之一 , 目前流行的服务器和 PC 端操作系统有 Linux、Windows、UNIX 等
Linux的创始人 Linus Torvalds 林纳斯 (同时也是git的开发者)
Linux主要的发行版:
Ubuntu(乌班图)、RedHat(红帽)、CentOS、Debain[蝶变]、Fedora、SuSE、OpenSUSE
unix是怎么来的
理查德·斯托曼发起的GNU计划
- 在自由的时代用户应该免费享有对软件源代码阅读、修改的权利。
- 软件公司可以靠提供服务和训练获得盈利。
Linux和Unix的关系
(Redhat又衍生出两个版本,redhat和centOS)
Refrences:
www.w3cschool.cn/linux/
c.biancheng.net/linux_tutor…
《鸟哥的Linux私房菜》
shouce.jb51.net/vbird-linux…
在linux中的每个用户必须属于一个组,不能独立于组外。在linux中每个文件有所有者、所在组、其它组的概念
ls -al(l):
ls -l(别名ll 就可以查看)
从左到又每一列的信息依次为 权限、 连接数、 所有者 、 用户组 、 文件容量 、 修改日期 、 文件名
第一列的十位字母代表的是文件的类型和权限,第一个字符代表这个文件是“目录、文件或链接文件等”含义:
- d:代表是目录
- -:代表是文件
- l:代表是连接文件
- b:代表设备文件里可供存储的接口设备
- c:代表设备文件里面的串行端口设备。如键盘,鼠标等
后边9个字符,每3个字符为一组,“rwx”(可读、可写、可执行eXecute)这三个参数的组合,(rwx3者的顺序不能改变,换句话说,第一个要么是r,要么啥都没有,不能是w或者x),三个组合分别代表“文件所有者的权限”、“同用户组的权限”、“其他非本用户组的权限”。
权限的重要性:
- 系统保护的功能;
- 团队开发软件或数据共享的功能;
改变文件属性和权限:
- chgrp: 改变文件所属用户组(change group) chgrp [-R] users 目录或文件 : 将这个路径下的文件的用户组改成“users“ 这个新用户组一定得是/etc/group下有的,否则会报错。 若最后一个参数是目录,则表示只将这个目录下的文件的用户组改成这个。 R表示若最后一个参数是目录,则将当前目录下的文件连同子目录下的所有文件的用户组都改成这个。
- chown: 改变文件所有者(change owner) chown [-R] 用户名 文件或目录 : 将这个目录下的所有文件的所有者都改成这个用户名。 这个用户名必须是/etc/passwd下有的才行。 这个命令可以既修改文件主又修改用户组: chown [-R] 用户名:用户组名 目录/文件(:和 . 都可以) chown [-R] 用户名.用户组名 目录/文件 由于用户名可以存在小数点,当出现含有小数点的用户名时,系统会发生误判,所以我们一般都使用:来连接用户名和用户组名。 还可以仅修改用户组名:chown [-R] .用户组名 目录/文件
- chmod: 改变文件的权限 改变文件的权限有两种方法:用数字或者符号进行权限的修改 用数字进行权限的修改 Linux文件的基本权限有9个,分别是owner、group、others三种身份各有自己的read、write、execute 权限。在这种方式中,r=4、w=2、x=1,将每一组的三个值加起来,组成一个三位数即可。
- 例如: 文件主:rwx = 4+2+1=7; 同组用户:rwx=4+2+1=7; 其他人:---=0+0+0=0; 所以命令如下: chmod [-R] 770 文件/目录 用符号进行权限的修改 用u、g、o 代表user、group、others三种身份的权限,a 代表 all,也就是全部的身份。 +(加入),-(除去),=(设置)。 chmod u/g/o/a +/-/= r/w/x 文件/目录
- 例子:文件主能够读、写、执行;同组用户和其他用户能够读、执行。
- chmod u=rwx,go=rx 文件名 假设原先不知道文件的属性,现在只想让所有的人能够执行这个文件,则: chmod a+x 文件/目录 假设原先不知道文件的属性,现在只想让同组用户和其他用户无法写,则: chmod go-w 文件/目录
目录和文件的权限意义:
- 权限对文件的意义. r:代表可读取此文件的实际内容 w:代表可以编辑、新增或者修改文件的内容(但是不包含删除文件) x:代表该文件具有可以被系统执行的权限。<与windows不同,在Linux中判断一个文件是否可以执行,不是根据后缀名(如.exe ,.bat,.com),而是和这个文件是否具有“x”权限决定的。>
- 权限对目录的意义 r:代表具有读取目录结构列表的权限(你可以使用ls命令将目录下的所有列表读出来) w:这个权限对目录来说可是很强大的,表示你具有更改该目录结构列表的权限 主要有: 新建新的文件与目录 删除已经存在的文件或者目录(无论文件的权限是怎样的) 将已经存在的文件或者目录重命名 转移该目录内的文件、目录位置 x:目录虽然不可以被拿来执行,但是目录的x代表的是用户能否进入该目录成为工作目录的用途。(所谓工作目录就是你当下的目录,也就是时候,如果目录不具有x权限,那么你就不能通过cd命令进入到该目录下工作)。
能不能进入某一目录,只与该目录的x 权限有关。
Linux的单一文件或者目录的最大容许文件名为255个字符,包含完整路径名记(/)的完整文件名为4096个字符。
linux的文件系统是采用级层式的树状目录结构,在此结构中的最上层是根目录“/”,然后在此目录下再创建其他的目录。在Linux世界里,一切皆文件
【Linux系统目录结构】
登录系统后,在当前命令窗口下输入 ls / 你会看到
以下是对这些目录的解释:
/bin bin是Binary的缩写。这个目录存放着最经常使用的命令。
/boot 这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。
/dev dev是Device(设备)的缩写。该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。
/etc 这个目录用来存放所有的系统管理所需要的配置文件和子目录。
/home 用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
/lib 这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。
/lost+found 这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
/media linux 系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。
/mnt 系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。
/opt 这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。
/proc 这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器: echo 1 >
/proc/sys/net/ipv4/icmp_echo_ignore_all。
/root 该目录为系统管理员,也称作超级权限者的用户主目录。
/sbin s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
/selinux 这个目录是Redhat/CentOS所特有的目录,Selinux是一个安全机制,类似于windows的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。
/srv 该目录存放一些服务启动之后需要提取的数据。
/sys 这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs ,sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。该文件系统是内核设备树的一个直观反映。当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。
/tmp 这个目录是用来存放一些临时文件的。
/usr 这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似与windows下的program files目录。
/usr/bin:系统用户使用的应用程序。
/usr/sbin:超级用户使用的比较高级的管理程序和系统守护程序。
/usr/src:内核源代码默认的放置目录。
/var 这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
在linux系统中,有几个目录是比较重要的,平时需要注意不要误删除或者随意更改内部文件。/etc: 上边也提到了,这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。/bin, /sbin, /usr/bin, /usr/sbin: 这是系统预设的执行文件的放置目录,比如 ls 就是在/bin/ls 目录下的。值得提出的是,/bin, /usr/bin 是给系统用户使用的指令(除root外的通用户),而/sbin, /usr/sbin 则是给root使用的指令。 /var: 这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在/var/log 目录下,另外mail的预设放置也是在这里。
绝对路径:
路径的写法,由根目录 / 写起,例如: /usr/share/doc 这个目录。
相对路径:
路径的写法,不是由 / 写起,例如由 /usr/share/doc 要到 /usr/share/man 底下时,可以写成: cd http://www.360doc.com/content/22/0122/man 这就是相对路径的写法啦!
ls(查看文件与目录)
cd(切换目录)
pwd(显示当前所在目录)
mkdir(创建新目录)
mkdir 【-mp】目录名称
加了-p 参数,可以自行创建多层目录, 加了-m,可以强制设置属性。
rmdir(删除“空”目录)
rmdir [-p] 目录名称(-p 可以连同上层空目录一起删除)
cp(复制文件或目录)
- -a:相当于-pdr的意思;
- -i:若目标文件已经存在且无法开启,则删除后再尝试一次;
- -p:连同文件的属性一起复制过去,而非使用默认属性(备份常用);
- -r:递归持续复制,用于目录的复制行为;
rm(移除文件或目录)
- -f:force的意思,忽略不存在的文件,不会出现警告信息;
- -i:互动模式,在删除前会询问用户是否操作;
- -r:递归删除,危险
mv(移动文件与目录,或更名)
- -f:force强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
- -i:若目标文件已经存在,就会询问是否覆盖;
- -u:若目标文件已经存在,且source比较新,才会更新;
cat:由第一行开始显示文件内容;
tac:从最后一行开始显示,可以看出tac是cat的倒写形式;
nl:显示的时候,顺便输出行号;
more:一页一页的显示文件内容;
less:与more类似,但是可以往前翻页;
head:只看开头几行;
tail:只看结尾几行;
od:以二进制的方式读取文件内容
直接查看文件内容 cat、tac、nl
cat(concatenate)
- -A:相当于-vET的整合参数,可列出一些特殊字符,而不是空白而已;
- -b:列出行号,仅针对非空白行做行号显示,空白行不标行号;
- -E:将结尾用断行字符 $ 显示出来;
- -n:打印出行号,连同空白行也会有行号,区别于-b;
- -T:将Tab按键以^T显示出来;
- -v:列出一些看不出来的特殊字符
cat -n 文件路径 | tail -n +5 | head -n 6 // 显示 5 ~ 10 行的内容, 包括5 和10
cat 文件路径 | head -n 10 | tail -n +5 //同上
tac(反向显示)
nl(添加行号打印)
可翻页查看文件内容 more和less
more(一页一页翻动)
如果文件内容较多,more 命令之后,会继续等到后续操作
- 空格键(Space):向下翻页;
- Enter:向下滚动一行;
- /字符串:在当前显示内容中,向下查询该字符串;
- :f:显示出文件名以及目前显示的行数;
- q:直接离开more,不再显示该文件内容;
- b:往回翻页,只对文件有用,对管道无用
less(一页一页翻动)
less可以用向上、下按键的功能前后翻页,也可以向上查询
- 空格键(Space):向下翻页;
- [PageDown]:向下翻动一页
- [PageUp]:向上翻动一页
- Enter:向下滚动一行;
- /字符串:向下查询该字符串;
- ?字符串:向上查询该字符串;
- n:重复前一个查询(与/或?有关);
- N:反向重复前一个查询(与/或?有关);
- q:直接离开less,不再显示该文件内容;
数据选取查看 head和tail
head(取出前面几行)
- -n:后边接数字,代表显示几行的意思;
tail(取出后边几行)
- -f:表示持续监测后边所接的文件内容,一般用于查看日志进程,按下[ctrl]+c才会结束检测;
touch(修改文件时间或者创建新文件)
- -a:仅修改访问时间;
- -c:仅修改访问时间,若该文件不存在则不创建新文件;
- -d:后面可以接想要修改的日期而不用目前的日期;
- -m:仅修改mtime;
- -t:后面可以接想要修改的时间而不用目前的时间;
在Linux的系统中使用文本编辑器来编辑Linux参数配置文件是一件相当重要的事情,所以至少要熟悉一种文本编辑器。
那为什么一定要学会vim呢。因为:
- 所有的UNIX Like系统都会内置vi文本编辑器,其它的文本编辑器则不一定存在;
- 很多软件的编辑接口都会主动调用vi;
- vim具有程序编辑的能力,可以主动以字体颜色辨别语法的正确性,方便程序设计;
- 程序简单,编辑速度相当快速。
vim 键盘图:
vim其实可以视为vi的高级版本。
vi共分为3种模式,分别是一般模式、编辑模式和命令行模式。
一般模式
以vi打开一个文件就直接进入一般模式(默认的模式)。在这个模式中, 你可以使用『上下左右』按键来移动光标,你可以使用『删除字符』或『删除整行』来处理档案内容, 也可以使用『复制、贴上』来处理你的文件数据。
编辑模式
在一般模式中可以进行删除、复制、粘贴等等的动作,但是却无法编辑文件内容的! 要等到你按下『i, I, o, O, a, A, r, R』等任何一个字母之后才会进入编辑模式。注意了!通常在 Linux 中,按下这些按键时,在画面的左下方会出现『 INSERT 或 REPLACE 』的字样,此时才可以进行编辑。而如果要回到一般模式时, 则必须要按下『Esc』这个按键即可退出编辑模式。
命令行模式
在一般模式当中,输入『 : / ? 』三个中的任何一个按钮,就可以将光标移动到最底下那一行。在这个模式当中, 可以提供你『搜寻资料』的动作,而读取、存盘、大量取代字符、离开 vi 、显示行号等等的动作则是在此模式中达成的!
一般模式与编辑模式及命令行模式可以互相转换,但编辑模式与命令行模式之间不可以互相转换
- 第一部份:一般模式可用的按钮说明,光标移动、复制贴上、搜寻取代等
移动光标的方法
h 或 向左箭头键(←)
光标向左移动一个字符
j 或 向下箭头键(↓)
光标向下移动一个字符
k 或 向上箭头键(↑)
光标向上移动一个字符
l 或 向右箭头键(→)
光标向右移动一个字符
如果你将右手放在键盘上的话,你会发现 hjkl 是排列在一起的,因此可以使用这四个按钮来移动光标。 如果想要进行多次移动的话,例如向下移动 30 行,可以使用 '30j' 或 '30↓' 的组合按键, 亦即加上想要进行的次数(数字)后,按下动作即可!
[Ctrl] + [f]
屏幕『向下』移动一页,相当于 [Page Down]按键 (常用)
[Ctrl] + [b]
屏幕『向上』移动一页,相当于 [Page Up] 按键 (常用)
[Ctrl] + [d]
屏幕『向下』移动半页
[Ctrl] + [u]
屏幕『向上』移动半页
+
光标移动到非空格符的下一列
-
光标移动到非空格符的上一列
n
那个 n 表示『数字』,例如 20 。按下数字后再按空格键,光标会向右移动这一行的 n 个字符。例如 20 则光标会向后面移动 20 个字符距离。
0 或功能键[Home]
这是数字『 0 』:移动到这一行的最前面字符处 (常用)
$ 或功能键[End]
移动到这一行的最后面字符处(常用)
H
光标移动到这个屏幕的最上方那一行的第一个字符
M
光标移动到这个屏幕的中央那一行的第一个字符
L
光标移动到这个屏幕的最下方那一行的第一个字符
G
移动到这个档案的最后一行(常用)
nG
n 为数字。移动到这个档案的第 n 行。例如 20G 则会移动到这个档案的第 20 行(可配合 :set nu)
gg
移动到这个档案的第一行,相当于 1G 啊! (常用)
n
n 为数字。光标向下移动 n 行(常用)
查找与替换
/word
向光标之下寻找一个名称为 word 的字符串。例如要在档案内搜寻 vbird 这个字符串,就输入 /vbird 即可! (常用)
?word
向光标之上寻找一个字符串名称为 word 的字符串。
n
这个 n 是英文按键。代表『重复前一个搜寻的动作』。举例来说, 如果刚刚我们执行 /vbird 去向下搜寻 vbird 这个字符串,则按下 n 后,会向下继续搜寻下一个名称为 vbird 的字符串。如果是执行 ?vbird 的话,那么按下 n 则会向上继续搜寻名称为 vbird 的字符串!
N
这个 N 是英文按键。与 n 刚好相反,为『反向』进行前一个搜寻动作。 例如 /vbird 后,按下 N 则表示『向上』搜寻 vbird 。
使用 /word 配合 n 及 N 是非常有帮助的!可以让你重复的找到一些你搜寻的关键词!
:n1,n2s/word1/word2/g
n1 与 n2 为数字。在第 n1 与 n2 行之间寻找 word1 这个字符串,并将该字符串取代为 word2 !举例来说,在 100 到 200 行之间搜寻 vbird 并取代为 VBIRD 则: 『:100,200s/vbird/VBIRD/g』。(常用)
:1,$s/word1/word2/g
从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 !(常用)
:1,$s/word1/word2/gc
从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 !且在取代前显示提示字符给用户确认 (confirm) 是否需要取代!(常用)
删除、复制和粘贴
x, X
在一行字当中,x 为向后删除一个字符 (相当于 [del] 按键), X 为向前删除一个字符(相当于 [backspace] 亦即是退格键) (常用)
nx
n 为数字,连续向后删除 n 个字符。举例来说,我要连续删除 10 个字符, 『10x』。
dd
剪切游标所在的那一行(常用)
D
删除从当前光标到光标所在行尾的全部字符
ndd
n 为数字。删除光标所在的向下 n 列,例如 20dd 则是删除 20 列 (常用)
d1G
删除光标所在到第一行的所有数据
dG
删除光标所在到最后一行的所有数据
d$
删除游标所在处,到该行的最后一个字符
d0
那个是数字的 0 ,删除游标所在处,到该行的最前面一个字符
yy
复制游标所在的那一行(常用)
nyy
n 为数字。复制光标所在的向下 n 列,例如 20yy 则是复制 20 列(常用)
y1G
复制游标所在列到第一列的所有数据
yG
复制游标所在列到最后一列的所有数据
y0
复制光标所在的那个字符到该行行首的所有数据
y$
复制光标所在的那个字符到该行行尾的所有数据
p, P
p 为将已复制的数据在光标下一行贴上,P 则为贴在游标上一行! 举例来说,我目前光标在第 20 行,且已经复制了 10 行数据。则按下 p 后, 那 10 行数据会贴在原本的 20 行之后,亦即由 21 行开始贴。但如果是按下 P 呢? 那么原本的第 20 行会被推到变成 30 行。 (常用) 粘贴到光标上一行(p),下一行(P)
J
将光标所在列与下一列的数据结合成同一列
c
重复删除多个数据,例如向下删除 10 行,[ 10cj ]
u
复原前一个动作。撤销(常用)
[Ctrl]+r
重做上一个动作。(常用)
这个 u 与 [Ctrl]+r 是很常用的指令!一个是复原,另一个则是重做一次~ 利用这两个功能按键,你的编辑,嘿嘿!很快乐的啦!
.
不要怀疑!这就是小数点!意思是重复前一个动作的意思。 如果你想要重复删除、重复贴上等等动作,按下小数点『.』就好了! (常用)
- 第二部份:一般模式切换到编辑模式的可用的按钮说明
进入插入或替换的编辑模式
i, I
进入插入模式(Insert mode): i 为『从目前光标所在处插入』, I 为『在目前所在行的第一个非空格符处开始插入』。 (常用)
a, A
进入插入模式(Insert mode): a 为『从目前光标所在的下一个字符处开始插入』, A 为『从光标所在行的最后一个字符处开始插入』。(常用)
o, O
进入插入模式(Insert mode): 这是英文字母 o 的大小写。o 为『在目前光标所在的下一行处插入新的一行』; O 为在目前光标所在处的上一行插入新的一行!(常用)
r, R
进入取代模式(Replace mode): r 只会取代光标所在的那一个字符一次;R会一直取代光标所在的文字,直到按下 ESC 为止;(常用)
上面这些按键中,在 vi 画面的左下角处会出现『--INSERT--』或『--REPLACE--』的字样。 由名称就知道该动作了吧!!特别注意的是,我们上面也提过了,你想要在档案里面输入字符时, 一定要在左下角处看到 INSERT 或 REPLACE 才能输入喔!
[Esc]
退出编辑模式,回到一般模式中(常用)
- 第三部份:一般模式切换到指令列模式的可用的按钮说明
进命令行的保存、离开等命令
:w
将编辑的数据写入硬盘档案中(常用)
:w!
若文件属性为『只读』时,强制写入该档案。不过,到底能不能写入, 还是跟你对该档案的档案权限有关啊!
:q
离开 vi (常用)
:q!
若曾修改过档案,又不想储存,使用 ! 为强制离开不储存档案。
注意一下啊,那个惊叹号 (!) 在 vi 当中,常常具有『强制』的意思~
:wq
储存后离开,若为 :wq! 则为强制储存后离开 (常用)
ZZ
这是大写的 Z 喔!若档案没有更动,则不储存离开,若档案已经被更动过,则储存后离开!
:w [filename]
将编辑的数据储存成另一个档案(类似另存新档)
:r [filename]
在编辑的数据中,读入另一个档案的数据。亦即将 『filename』 这个档案内容加到游标所在行后面
:n1,n2 w [filename]
将 n1 到 n2 的内容储存成 filename 这个档案。
:! command
暂时离开 vi 到指令列模式下执行 command 的显示结果!例如 『:! ls /home』即可在 vi 当中察看 /home 底下以 ls 输出的档案信息!
:set nu
显示行号,设定之后,会在每一行的前缀显示该行的行号
:set nonu
与 set nu 相反,为取消行号!
块选择
当我们按下v或者V或者【Ctrl】+v的时候,光标移动过的地方会开始反白
块选择的按键意义
v
字符选择,会将光标经过的地方反白选择!
V
行选择,会将光标经过的行反白选择!
[Ctrl]+v
区块选择,可以用长方形的方式选择资料
y
将反白的地方复制起来
d
将反白的地方删除掉
p data-track='347'>
多文件编辑p data-track='348'>我们可以使用vim后面同时接好几个文件来同时打开
多文件编辑的按键
:n
编辑下一个档案
:N
编辑上一个档案
:files
列出目前这个 vim 的开启的所有档案
多窗口功能
多窗口编辑按键
:sp [filename]
开启一个新窗口,如果有加 filename, 表示在新窗口开启一个新档案,否则表示两个窗口为同一个档案内容(同步显示)。
[ctrl]+w+ j[ctrl]+w+↓
按键的按法是:先按下 [ctrl] 不放, 再按下 w 后放开所有的按键,然后再按下 j (或向下箭头键),则光标可移动到下方的窗口。
[ctrl]+w+ k[ctrl]+w+↑
同上,不过光标移动到上面的窗口。
[ctrl]+w+ q
其实就是 :q 结束离开啦! 举例来说,如果我想要结束下方的窗口,那么利用 [ctrl]+w+↓ 移动到下方窗口后,按下 :q 即可离开, 也可以按下 [ctrl]+w+q 啊!
-h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
-f: 使用档案名字,切记,这个参数是最后一个参数,且是必须的,后面只能接档案名。
选项
功能
-e
卸载软件包
--nodeps
卸载软件时,不检查依赖。这样的话,那些使用该软件包的软件在此之后可能就不能正常工作了。
选项
功能
-i
-i=install,安装
-v
-v=verbose,显示详细信息
-h
-h=hash,进度条
--nodeps
--nodeps,不检测依赖进度
col>
col>
参数
功能
install
安装rpm软件包
update
更新rpm软件包
check-update
检查是否有可用的更新rpm软件包
remove
删除指定的rpm软件包
list
显示软件包信息
clean
清理yum过期的缓存
deplist
显示yum软件包的所有依赖关系
常用快捷键
功能
ctrl + c
停止进程
ctrl+l
清屏;彻底清屏是:reset
ctrl + q
退出
善于用tab键
提示(更重要的是可以防止敲错)
上下键
查找执行过的命令
ctrl +alt
linux和Windows之间切换
p data-track='580'>参数
p data-track='581'>功能
p data-track='582'>cd 绝对路径
p data-track='583'>切换路径
p data-track='584'>cd相对路径
p data-track='585'>切换路径
p data-track='586'>cd ~或者cd
p data-track='587'>回到自己的家目录
p data-track='588'>cd -
p data-track='589'>回到上一次所在目录
p data-track='590'>cd ..
p data-track='591'>回到当前目录的上一级目录
p data-track='592'>cd -P
p data-track='593'>跳转到实际物理路径,而非快捷方式路径
mkdir [-p] 要创建的目录
cp [-r] source dest 复制source文件到dest
rm [选项] deleteFile (功能描述:递归删除目录中所有内容)
选项
功能
-r
递归删除目录中所有内容
-f
强制执行删除操作,而不提示用于进行确认。
-v
显示指令的详细执行过程
mv oldNameFile newNameFile (功能描述:重命名)
mv /temp/movefile /targetFolder (功能描述:移动文件)
cat [-n] 要查看的文件 可显示行号查看文件
more指令是一个基于VI编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。more指令中内置了若干快捷键,详见操作说明。
more 要查看的文件
操作
功能说明
空白键(space)
代表向下翻一页;
Enter
代表向下翻『一行』;
q
代表立刻离开more ,不再显示该文件内容。
Ctrl+F
向下滚动一屏
Ctrl+B
返回上一屏
=
输出当前行的行号
:f
输出文件名和当前行的行号
less指令用来分屏查看文件内容,它的功能与more指令类似,但是比more指令更加强大,支持各种显示终端。less指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率。
less 要查看的文件
操作
功能说明
空白键
向下翻动一页;
[pagedown]
向下翻动一页
[pageup]
向上翻动一页;
/字串
向下搜寻『字串』的功能;n:向下查找;N:向上查找;
?字串
向上搜寻『字串』的功能;n:向上查找;N:向下查找;
q
离开less 这个程序;
echo [-e] [输出内容] -e: 支持反斜线控制的字符转换
控制字符
作用
输出本身
换行符
制表符,也就是Tab键
head用于显示文件的开头部分内容,默认情况下head指令显示文件的前10行内容。
head 文件 (功能描述:查看文件头10行内容)
head -n 5 文件 (功能描述:查看文件头5行内容,5可以是任意行数)
tail用于输出文件中尾部的内容,默认情况下tail指令显示文件的最后10行内容。
tail 文件 (功能描述:查看文件头10行内容)
tail -n 5 文件 (功能描述:查看文件头5行内容,5可以是任意行数)
tail -f 文件 (功能描述:实时追踪该文档的所有更新)
ls -l>文件 (功能描述:列表的内容写入文件a.txt中(覆盖写))
ls -al >>文件 (功能描述:列表的内容追加到文件aa.txt的末尾)
cat 文件1 > 文件2 (功能描述:将文件1的内容覆盖到文件2)
echo “内容” >> 文件
2.案例实操
软链接也成为符号链接,类似于windows里的快捷方式,有自己的数据块,主要存放了链接其他文件的路径。
ln -s [原文件或目录] [软链接名] (功能描述:给原文件创建一个软链接)
history (功能描述:查看已经执行过历史命令)
date [OPTION]... [+FORMAT]
选项
功能
-d<时间字符串>
显示指定的“时间字符串”表示的时间,而非当前时间
-s<日期时间>
设置系统日期时间
参数
功能
<+日期时间格式>
指定显示时使用的日期时间格式
date (功能描述:显示当前时间)
date +%Y (功能描述:显示当前年份)
date +%m (功能描述:显示当前月份)
date +%d (功能描述:显示当前是哪一天)
date '+%Y-%m-%d %H:%M:%S' (功能描述:显示年月日时分秒)
date -d '1 days ago' (功能描述:显示前一天时间)
date -d '-1 days ago' (功能描述:显示明天时间)
cal [具体某一年] (功能描述:不加选项,显示本月日历)
Linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。
用户和组的相关文件
/etc/passwd文件
用户(user)的配置文件,记录用户的各种信息
每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell
/etc/shadow 文件
口令的配置文件
每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:保留
/etc/group文件
组(group)的配置文件,记录Linux包含的组的信息
每行含义:组名:口令:组标识号:组内用户列表
useradd 用户名 (功能描述:添加新用户)
useradd -g 组名用户名 (功能描述:添加新用户到某个组)
passwd 用户名 (功能描述:设置用户密码)
id 用户名
su 用户名称 (功能描述:切换用户,只能获得用户的执行权限,不能获得环境变量)
su - 用户名称 (功能描述:切换到用户并获得该用户的环境变量及执行权限)
- 从权限高的用户切换到权限低的用户,不需要输入密码,反之需要。
- 当需要返回到原来用户时,使用exit指令
- 如果su – 没有带用户名,则默认切换到root用户
userdel 用户名 (功能描述:删除用户但保存用户主目录)
userdel -r 用户名 (功能描述:用户和用户主目录都删除,删除用户的同时,删除与用户相关的所有文件)
whoami (功能描述:显示自身用户名称)
who am i (功能描述:显示登录用户的用户名)
1.添加sysnc360用户,并对其设置密码。
2.修改配置文件
修改/etc/sudoers 文件,找到下面一行(91行),在root下面添加一行,如下所示:
或者配置成采用sudo命令时,不需要输入密码
修改完毕,现在可以用sysnc360账号登录,然后用命令sudo ,即可获得root权限进行操作。
usermod -g 用户组用户名
选项
功能
-g
修改用户的初始登录组,给定的组必须存在。默认组id是1。
每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux 系统对用户组的规定有所不同,
如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。
用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。
groupadd 组名
groupdel 组名
groupmod -n 新组名 老组名
chmod [{ugoa}{+-=}{rwx}] 文件或目录
chmod [mode=421 ] [文件或目录]
经验技巧
u:所有者 g:所有组 o:其他人 a:所有人(u、g、o的总和)
r=4 w=2 x=1 rwx=4+2+1=7
chown [-r] [最终用户] [文件或目录] (功能描述:改变文件或者目录的所有者)
chgrp [最终用户组] [文件或目录] (功能描述:改变文件或者目录的所属组)
find指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件显示在终端。
find [搜索范围] [选项]
选项
功能
-name<查询方式>
按照指定的文件名查找模式查找文件
-user<用户名>
查找属于指定用户名所有文件
-size<文件大小>
按照指定的文件大小查找文件。
按文件名:
locate指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件。Locate指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新locate时刻。
locate 搜索文件
经验技巧:由于locate指令基于数据库进行查询,所以第一次运行前,必须使用updatedb指令创建locate数据库。
管道符,“|”,表示将前一个命令的处理结果输出传递给后面的命令处理
grep [-n] 查找内容源文件(-n可显示行号)
gzip 文件 (功能描述:压缩文件,只能将文件压缩为*.gz文件)
gunzip 文件.gz (功能描述:解压缩文件命令)
经验技巧
- 只能压缩文件不能压缩目录
- 不保留原来的文件
zip [选项] XXX.zip 将要压缩的内容 (功能描述:压缩文件和目录的命令)
unzip [选项] XXX.zip (功能描述:解压缩文件)
zip选项
功能
-r
压缩目录
unzip选项
功能
-d<目录>
指定解压后文件的存放目录
经验技巧
zip 压缩命令在window/linux都通用,可以压缩目录且保留源文件。
tar [选项] XXX.tar.gz 将要打包进去的内容 (功能描述:打包目录,压缩后的文件格式.tar.gz)
选项
功能
-c
产生.tar打包文件
-v
显示详细信息
-f
指定压缩后的文件名
-z
打包同时压缩
-x
解包.tar文件
df 选项(功能描述:列出文件系统的整体磁盘使用量,检查文件系统的磁盘空间占用情况)
选项
功能
-h
以人们较易阅读的GBytes, MBytes, KBytes 等格式自行显示;
fdisk -l (功能描述:查看磁盘分区详情,该命令必须在root用户下才能使用)
功能说明
- Linux分区(类比wins的C,D,E盘)
- Device:分区序列
- Boot:引导
- Start:从X磁柱开始
- End:到Y磁柱结束
- Blocks:容量
- Id:分区类型ID
- System:分区类型
对于Linux用户来讲,不论有几个分区,分别分给哪一个目录使用,它总归就是一个根目录、一个独立且唯一的文件结构。
Linux中每个分区都是用来组成整个文件系统的一部分,它在用一种叫做“挂载”的处理方法,它整个文件系统中包含了一整套的文件和目录,并将一个分区和一个目录联系起来,要载入的那个分区将使它的存储空间在这个目录下获得。
mount [-t vfstype] [-o options] device dir(功能描述:挂载设备)
umount设备文件名或挂载点 (功能描述:卸载设备)
参数
功能
-t vfstype
指定文件系统的类型,通常不必指定。mount 会自动选择正确的类型。常用类型有:光盘或光盘镜像:iso9660DOS fat16文件系统:msdosWindows 9x fat32文件系统:vfatWindows NT ntfs文件系统:ntfsMount Windows文件网络共享:smbfsUNIX(LINUX) 文件网络共享:nfs
-o options
主要用来描述设备或档案的挂接方式。常用的参数有:loop:用来把一个文件当成硬盘分区挂接上系统ro:采用只读方式挂接设备rw:采用读写方式挂接设备 iocharset:指定访问文件系统所用字符集
device
要挂接(mount)的设备
dir
设备在系统上的挂接点(mount point)
- 在LINUX中,每个执行的程序(代码)都称为一个进程。每一个进程都分配一个ID号。
- 每一个进程,都会对应一个父进程,而这个父进程可以复制多个子进程。例如www服务器。
- 每个进程都可能以两种方式存在的。前台 与后台,所谓前台进程就是用户目前的屏幕上可以进行操作的。后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行[sshd , crond]。
- 一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。直到关机才才结束。
ps:process status 进程状态
ps aux | grep xxx (功能描述:查看系统中所有进程)
ps -ef| grep xxx (功能描述:可以查看子父进程之间的关系)
选项
功能
-a
选择所有进程
-u
显示所有用户的所有进程
-x
显示没有终端的进程
3.功能说明
(1)ps aux显示信息说明
- USER:该进程是由哪个用户产生的
- PID:进程的ID号
- %CPU:该进程占用CPU资源的百分比,占用越高,进程越耗费资源;
- %MEM:该进程占用物理内存的百分比,占用越高,进程越耗费资源;
- VSZ:该进程占用虚拟内存的大小,单位KB;
- RSS:该进程占用实际物理内存的大小,单位KB;
- TTY:该进程是在哪个终端中运行的。其中tty1-tty7代表本地控制台终端,tty1-tty6是本地的字符界面终端,tty7是图形终端。pts/0-255代表虚拟终端。
- STAT:进程状态。常见的状态有:R:运行、S:睡眠、T:停止状态、s:包含子进程、+:位于后台
- START:该进程的启动时间
- TIME:该进程占用CPU的运算时间,注意不是系统时间
- COMMAND:启动进程所用的命令和参数,如果过长会被截断显示
(2)ps -ef显示信息说明
- UID:用户ID
- PID:进程ID
- PPID:父进程ID
- C:CPU用于计算执行优先级的因子。数值越大,表明进程是CPU密集型运算,执行优先级会降低;数值越小,表明进程是I/O密集型运算,执行优先级会提高
- STIME:进程启动的时间
- TTY:完整的终端名称
- TIME:CPU时间
- CMD:启动进程所用的命令和参数
如果想查看进程的CPU占用率和内存占用率,可以使用aux;
如果想查看进程的父进程ID可以使用ef;
kill [-9] 进程号 (功能描述:通过进程号杀死进程,-9表示强迫进程立即停止)
killall 进程名称 (功能描述:通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用)
pstree [选项]
选项
功能
-p
显示进程的PID
-u
显示进程的所属用户
服务(service) 本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其它程序的请求,比如(mysql , sshd 防火墙等),因此我们又称为守护进程
service管理指令:
service 服务名 [start | stop | restart | reload | status]
在CentOS7.0后 不再使用service ,而是 systemctl
服务的运行级别(runlevel):
查看或者修改默认级别: vi /etc/inittab
Linux系统有7种运行级别(runlevel):常用的是级别3和5
- 运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
- 运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆
- 运行级别2:多用户状态(没有NFS),不支持网络
- 运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式
- 运行级别4:系统未使用,保留
- 运行级别5:X11控制台,登陆后进入图形GUI模式
- 运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动
开机的流程说明:
开机--》BIOS-》/boot----》 init进程 ------》 运行级别-----》运行对应的服务
chkconfig指令
通过chkconfig命令可以给每个服务的各个运行级别设置自启动/关闭
基本语法
1) 查看服务 chkconfig --list|grep xxx
2) chkconfig 服务名 --list
- chkconfig --level 5 服务名 on/off [可以指定某个服务,某各个运行级别,开启或关闭]
- chkconfig 服务名 on/off
top与ps命令很相似。它们都用来显示正在执行的进程。top与ps最大的不同之处,在于top在执行一段时间可以更新正在运行的的进程(默认每3秒变化一次)
top [选项]
选项
功能
-d 秒数
指定top命令每隔几秒更新。默认是3秒在top命令的交互模式当中可以执行的命令:
-i
使top不显示任何闲置或者僵死进程。
-p
通过指定监控进程ID来仅仅监控某个进程的状态。
操作
功能
P
以CPU使用率排序,默认就是此项
M
以内存的使用率排序
N
以PID排序
q
退出top
第一行信息为任务队列信息
内容
说明
12:06:46
系统当前时间
up 1 day, 13:32
系统的运行时间,本机已经运行1天13小时32分钟
2 users
当前登录了两个用户
load average: 0.00, 0.00, 0.00
系统在之前1分钟,5分钟,15分钟的平均负载。一般认为小于1时,负载较小。如果大于1,系统已经超出负荷。
第二行为进程信息
Tasks: 95 total
系统中的进程总数
1 running
正在运行的进程数
94 sleeping
睡眠的进程
0 stopped
正在停止的进程
0 zombie
僵尸进程。如果不是0,需要手工检查僵尸进程
第三行为CPU信息
Cpu(s): 0.1쒹>
用户模式占用的CPU百分比
0.1%sy
系统模式占用的CPU百分比
0.0%ni
改变过优先级的用户进程占用的CPU百分比
99.7%id
空闲CPU的CPU百分比
0.1%wa
等待输入/输出的进程的占用CPU百分比
0.0%hi
硬中断请求服务占用的CPU百分比
0.1%si
软中断请求服务占用的CPU百分比
0.0%st
st(Steal time)虚拟时间百分比。就是当有虚拟机时,虚拟CPU等待实际CPU的时间百分比。
第四行为物理内存信息
Mem: k total
物理内存的总量,单位KB
k used
已经使用的物理内存数量
53840k free
空闲的物理内存数量,我们使用的是虚拟机,总共只分配了628MB内存,所以只有53MB的空闲内存了
65800k buffers
作为缓冲的内存数量
第五行为交换分区(swap)信息
Swap: k total
交换分区(虚拟内存)的总大小
0k used
已经使用的交互分区的大小
k free
空闲交换分区的大小
k cached
作为缓存的交互分区的大小
netstat -anp |grep 进程号(功能描述:查看该进程网络信息)
netstat -nlp | grep 端口号 (功能描述:查看网络端口号占用情况)
选项
功能
-an
按一定顺序排列输出
-p
表示显示哪个进程在调用
crontab [选项]
选项
功能
-e
编辑crontab定时任务,会打开vim编辑你的工作
-l
查询crontab任务
-r
删除当前用户所有的crontab任务
项目
含义
范围
第一个“*”
一小时当中的第几分钟
0-59
第二个“*”
一天当中的第几小时
0-23
第三个“*”
一个月当中的第几天
1-31
第四个“*”
一年当中的第几月
1-12
第五个“*”
一周当中的星期几
0-7(0和7都代表星期日)
特殊符号
含义
*
代表任何时间。比如第一个“*”就代表一小时中每分钟都执行一次的意思。
,
代表不连续的时间。比如“0 8,12,16 * * * 命令”,就代表在每天的8点0分,12点0分,16点0分都执行一次命令
-
代表连续的时间范围。比如“0 5 * * 1-6命令”,代表在周一到周六的凌晨5点0分执行命令
*/n
代表每隔多久执行一次。比如“*/10 * * * * 命令”,代表每隔10分钟就执行一遍命令
时间
含义
45 22 * * * 命令
在22点45分执行命令
0 17 * * 1 命令
每周1 的17点0分执行命令
0 5 1,15 * * 命令
每月1号和15号的凌晨5点0分执行命令
40 4 * * 1-5 命令
每周一到周五的凌晨4点40分执行命令
*/10 4 * * * 命令
每天的凌晨4点,每隔10分钟执行一次命令
0 0 1,15 * 1 命令
每月1号和15号,每周1的0点0分都会执行命令。注意:星期几和几号最好不要同时出现,因为他们定义的都是天。非常容易让管理员混乱。
- 统计/home文件夹下文件的个数 ls –l /home/ | grep “^-” | wc -l
- 统计/home文件夹下目录的个数 ls –l /home/ | grep “^d” | wc -l
- 统计/home文件夹下文件的个数,包括子文件夹里的 ls –lR /home/ | grep “^-” | wc -l
- 统计/home文件夹下目录的个数,包括子文件夹里的 ls –lR /home/ | grep “^d” | wc -l
- 如何查看当前系统都有哪些进程 ps -aux 或者ps -elf
- 如何查看系统都开启了哪些端口? netstat -lnp
- 平时用到哪些Linux命令 ps、grep、tar、touch、pwd
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/bcyy/72569.html