最基础的linux,Linux最基础

软件包安装的时候,会经常用到   tar   -zxvf   Japan.tar.gz

如果要做LAMP环境的编译,建立一个LAMP源代码包构建的PHP生产环境。下载的包都是  tar.gz  这样的源代码包

创建目录   mkdir     创建文件    touch

命令的基本格式:

[root@localhost ~]#

root:       当前登陆用户

localhost:     主机名

~:      当前所在目录(家目录)

#:      超级用户的提示符

普通用户的提示符是 $

- 表示一个文件

d 表示一个目录

l 小写的 L,表示一个软连接。

-rw-r--r--.    (最后还有个点)

.  代表ACL权限 --- 从centos6才有的权限

- 文件类型   (-文件    -d目录    | (小写的L) 软链接文件)

文件  -----普通文件

目录

软链接  --- 其实就是个快捷方式

块设备文件

字符设备文件

套接字文件

管道文件

rw-    u所有者

r--     g所属组

r--     o其他人

rm -rf  *.zip ---  删除所有以   .zip  结尾的文件

常用目录的作用:

/              根目录

/bin         命令保存目录(普通用户就可以读取的命令)

/boot      启动目录,启动相关文件

/dev        设备文件保存目录

/etc         配置文件保存目录

/home    普通用户的家目录

/lib          系统库保存目录

/mnt       系统挂载目录

/media    挂载目录

/root        超级用户的家目录

/tmp        临时目录

/sbin        命令保存目录(超级用户才能使用的目录)

/proc        直接写入内存的

/sys

/usr          系统软件资源目录

/usr/bin/     系统命令(普通用户)

/usr/sbin/     系统命令(超级用户)

/var          系统相关文档内容

注意:proc 和 sys 目录不能直接操作,这俩个目录保存的是内存的挂载点。不可以给这俩个里面写数据;(重启后内存中的数据就会丢失;如果内存满了容易造成系统崩溃)

所以:可以在家目录root   或   home  ,以及tmp目录下随便放内容

2个bin目录普通用户可以执行的

2个sbin   只有超级用户可以执行。

boot  启动目录,如果写满系统将无法启动。

etc     系统配置文件目录。(学习服务时候会多次用到)

home   普通用户的家目录

root      超级用户的家目录

lib        函数库的保存位置

ls 显示该目录下所有

ls -l   显示该目录下所有文件及详情

ls -lh 以人性化大小显示文件

-a  显示所有文件,包括隐藏文件

ls -a

-l   显示详细信息

ls -l

-d  查看目录属性

ls -ld /etc/

-h  人性化显示文件大小

ls -lh

-i   显示inode   i节点

ls -i

二、 文件处理命令;

1、目录处理命令(windows文件夹的概念)

mkdir -p [目录名]

mkdir test1

mkdir -p test2/mydir  --- 其中:-p递归创建

切换目录:

cd  [目录名]

cd ~   进入当前用户的家目录

cd

cd -    进入上次目录

cd ..    进入上一级目录

cd .     进入当前目录

删除文件或目录: rm  本来就是删文件的 ,加上  -r 就可以删目录了

rm -rf [文件或目录]

-r    删除目录

-f    强制

rm -rf /tem/      表示删除tem这个目录

rm -rf /tem/*     表示删除tem下的所有内容

复制命令:cp

-r     复制目录

cp -r japan/ /tmp/    ---- 将japan目录复制到 tmp下

-p     连带文件属性复制

-d     若源文件是链接文件,则复制链接属性

-a     相当于   -pdr

-f     强行复制文件或目录,不论目标文件或目录是否已存在。

剪切 或 改名命令:

mv  如果源文件 与 目标文件在同一目录 就是改名

如果源文件  与 目标文件没有在同一目录 ,就是剪切

mv [源文件或目录]  [目标目录]

文件处理命令

文件处理命令: ln

ln  -s [源文件] [目标文件]----

软连接

3、链接命令   ln

硬链接特征:

1、拥有相同的i节点和存储的 block块,可以看作是同一个文件

2、可以通过i节点识别

3、不能跨分区

4、不能针对目录使用

软链接特征:(推荐用:灵活,限制少,告诉这是个软连接)

1、类似windows快捷方式

2、软链接拥有自己的 i  节点 和 block块,但是数据块中只保存元文件的文件名和  i 节点号,并没有实际的问津数据

3、lrwxrwxrwx      l --表示:软链接

软链接文件权限都为 :  rwxrwxrwx

4、修改任意文件,另一个都改变

5、删除源文件,软连接不可用

软链接的读写权限,最终归于目标文件的权限;

echo 111 >> /root/blos     向目标文件中写入数据

cat /root/blos             查看目标文件中写入的数据

注意:在设置软连接的时候,只有在同一目录下不用写绝对路径,否则需要写绝对路径。不然在目标文件中的软连接会报错 。所以: 软连接   必须要写绝对路径。如果目标文件被移动,软连接会报错,找不到目标文件

4、 文件搜索命令:命令which   whereis命令搜索

1、文件搜索命令

locate --- 搜索速度快,搜索不到新创建的文件  (即:touch   cangls),只能搜索文件名。

缺点: 只可以按照文件名搜索;

locate 文件名       ----- 在后台数据库中按文件名收缩,搜索速度更快

/var/lib/mlocate  ------locate命令所搜索的后台数据 ,默认1天一个更新

updatedb              ---- 强制更新数据库

其中:whereis  和 which  都会遵守这个筛选规则

whereis: 只能搜索系统命令; 及帮助文档的位置

which选项:----可以查找到命令的别名;

-b:   只查找可执行文件

-m:只查找帮助文件

which ls ---表示   ls 命令是干嘛的。

which  文件名 搜索命令所在路径及别名;

PATH 环境变量:   定义的是系统搜索的命令的路径

[root@localhost ~]#  echo $PATH   ---- 显示环境变量 (路径);

注意: 平常输入的命令都在该 path 路径下,如果重新定义的命令需要使用绝对路径,要么就放到 path 路径

文件搜索命令

find --- 如果在根目录中使用,会遍历根下的所有数据遍历一边。 耗费资源--非常强大;

find  [搜索范围]  [搜索条件]

find  /  -name  install.log   ------按文件名搜索,搜索根下面,搜索install.log的文件

注意: 避免大范围搜索,会非常耗费系统资源

find  是在系统当中搜索符合条件的文件名。如果需要匹配,使用通配符匹配,通配符是完全匹配。

Linux中的通配符,

*   匹配任意内容

? 匹配任意一个字符

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

find /root/ -name "ab[cd]" --- 表示搜索以abc  或  abd 的文件。是的文件,不是所有。

find  /root/ -name "*[bc]" --- 搜索所有以  b  或   c  结尾的文件。

find  /root  -iname   install.log  --- 不区分大消息

find  /root  -user  root ---- 按照所有者搜索

find  /root  -nouser ----  查找没有所有者的文件   在proc  和   sys  产生的文件可能没有所有者是正常的,内存的挂载点。第二种情况:外来文件也不会有所有者(光盘,u盘)。 除此之外在Linux中所有的文件都应该有所有者,否则就是垃圾文件

find  /var/log/   -mtime  +10

查找10天前修改的文件

-10   10天内修改文件

10    10天当前修改的文件

+10   10天前修改的文件

-atime  文件访问时间

-ctime  修改文件属性

-mtime  修改文件内容

怎么理解 10:往前数第十天,就是10, 第十天到现在的就是  -10.  第十天前的就是 +10

find   .  -size  25k

注意:这里的k必须是小写。如果不加单位k,查找的是扇区的大小  (25*512)

-25k   小于25kb的文件

25k    等于25kb的文件

+25k  大于25kb的文件

如果查找  兆 大小的文件   M     M必须是大写。

find   .  -size  25M

find  .  -inum   262422    --- 查找 i  节点是  262422 的文件。

find  /etc -size  +20k  -a  -size -50k ---查找etc目录下  文件大小   大于 20k  并且 小于  50k 的文件。

-a   and   逻辑与,俩个条件都满足

-o   or      逻辑或,俩个条件满足一个即可。

-type: 根据文件类型查找;

f文件   d目录    l软连接文件

-inum :根据i节点查找

这样使用find查找到的文件,只显示文件,并不显示文件的详细信息。所以需要下面   组合 命令:

[root@localhost ~]#find  /etc  -size  +20k  -a   -size  -50k   -exec  ls  -lh  {}\;

查找 etc 目录下,大于20k,并且小于 50k的文件,并且显示详细信息。

-exec/-ok  命令2  {}\;  对搜索结果执行操作-------也就是前面的命令结果   交由 -exec中  命令2 处理。

切记: 如果有  -exec  后面必须有   {}\;  (命令2的条件必须是能处理前面的命令才可以放在这里执行。)

du命令:

用于统计指定目录(或文件所占用磁盘空间的大小)

常用选项:

-a     统计磁盘空间占用时包括所有的文件,不仅仅统计目录

-s     只统计所占用空间总的大小(Summary),而不是统计每个子目录、文件的大小。

-h     以人性化方式显示(默认kb,不显示单位),显示统计结果

du   -sh    /var/log  --- 统计log目录下所有文件总共占用的空间大小。

3、 字符串收缩命令 grep---常用命令。在制定的文件内容中查找指定的行,显示。

grep  -v  "sd" anaconda-ks.cfg

-v  取反,显示不包含sd的字符串;

-i   不区分大小写。

去掉以#开头的行;排除指定字符串所在的行。

4、find命令 与  grep 命令的区别

find命令: 在系统当中搜索符合条件的  文件名;

grep命令: 在  文件  当中搜索符合条件的  字符串;

man 的级别

1 : 查看命令的帮助

2 : 查看可被内核调用的函数的帮助

3 : 查看函数和函数库的邦族

4 : 查看特殊文件的帮助(主要是/dev 目录下的文件)

5 : 查看配置文件的帮助

6 : 查看游戏的帮助

7 : 查看其他杂项的帮助

8 : 查看系统管理员可用命令的帮助

9 : 查看和内核相关文件的帮助

如下图: 其实可以通过whereis passwd 可以查看到 passwd 命令的等级,以及文件的位置

查看命令拥有哪个级别的帮助

man  -f  命令    相当于     whatis  命令

举例:调用相应的帮助文档

man  -5  passwd

man  -4  null

man  -8  ifconfig

注意: 如果一个命令有多个等级,必须制定 等级,否则打开的是最低的那个等级

查看和命令相关的所有帮助:man

man  -k  命令    相当于    apropos  命令

例如:  apropos  查找的是所有包含  的帮助;模糊查找所有包含的  帮助

apropos   passwd

man查看配置文件帮助时: man    配置文件名

命令   --help: 查找命令选项帮助,有中文注释;

shell  内部命令帮助:

help  查看shell内部命令的帮助

例如:

whereis   cd   --- 去顶是否是shell内部命令

help  cd    --- 转门获取内部命令帮助

man 获取命令的帮助 而 :help 获取内部命令的帮助  如:cd就是内部命令。

whereis  命令  -----  如果找不到执行命令的位置就是内部命令;

更多的使用man 最主流的帮助文档   info 了解知道就行

如: man      ls          --help

详细命令帮助info

info   命令

-  回车  : 进入子帮助页面(带有*号标记)

-  u        :  进入上层页面

-  n        :  进入下一个帮助小节

-  p        :  进入上一个帮助小节

-  q        :  退出

whatis  ls:查看命令简短的信息。

查看配置文件的简短信息:

格式:apropos   配置文件

例如: apropos  services

多文件内容查看:

查看文件所有的内容:

less   :  如:less   /etc/services

备注:n: 下一页  N:上一页  page up :上一页   上箭头:上一行     搜索关键字:/service(在其打开直接输入)

查看文件前几行:

head:显示文件前几行。如:head  -     11  /etc/services  --显示前11行

查看文件后几行:

tail  -3  /etc/services  --- 查看最后3行。

tail  -f   /etc/services  --- 动态显示文件末尾内容

注意:head 和 tail 如果不指定 -n  的话,默认都是显示10行

5、 压缩文件的命令:

最常用的5种,在Linux中还有其他格式。

常用压缩格式:  .zip    .gz    .bz2

常用压缩格式:  .tar.gz     .tar.bz2

这种格式.zip   跟windows中的zip是通用的。

.zip格式   window中的.zip与  Linux中的 .zip是可以互相通用的

zip  压缩文件名   源文件 ----- 压缩文件

zip   -r  压缩文件名   源目录 --- 压缩目录

.zip 格式解压缩

unzip 压缩文件    ---- 解压缩.zip文件

gz格式压缩

gzip  源文件  ----- 压缩为 .zg 格式的压缩文件,源文件会消失

gzip  -c  源文件  >  压缩文件   ----- 压缩为 .gz 格式,源文件保留

例如: gzip  -c  cangls  >  cangls.gz

>   --- 表示:把命令的结果写入指定文件

gzip  -r  目录  ----- 压缩目录下所有的子文件,但是不能压缩目录

这里会压缩内部的所有的文件,包括该目录下的   子文件夹下的文件。(不能打包当前的目录)

.gz格式 解压缩   如果解压缩的是  目录    在 gzip  或   gunzip 后 加   -r  即可。

[root@localhost ~]# gzip  -d  压缩文件    ---- 解压缩文件  压缩包不会保留

[root@local host ~]# gunzip  压缩文件      ---- 解压缩文件

.bz2 格式压缩

[root@localhost ~]#  bzip2  源文件    -----  压缩为  .bz2  格式,不保留源文件

[root@localhost ~]#  bzip2  -k  源文件   ---  压缩之后保留源文件

注意: bzip2  命令不能压缩目录。

.bz2格式解压缩

[root@localhsot ~]#  bzip2   -d   压缩文件  --- 解压缩,  -k   保留压缩文件

[root@localhost ~]#  bunzip2   压缩文件   ---- 解压缩,  -k    保留压缩文件

注意:因为其压缩比比较惊人,所以,bzip2经常使用在压缩大文件时,使用。

总结: .zip    .gz    .bz2

.zip   压缩目录,压缩文件没有问题。

.gz    可以压缩文件;如果压缩目录的话(需要加-r),会压缩其内部   所有的   子文件。不能压缩目录

.bz2   如果压缩目录会直接报错。

3、常用命令   .tar.gz     .tar.bz2   ----打包

打包后可使用上面3中压缩格式压缩。

打包命令   tar:

tar   -cvf   打包文件名    源文件

选项:-c:打包

-v:显示过程

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

-x:解开 .tar 格式的包文件

例如: tar  -cvf   longls.tar    longls

解打包命令:

tar   -xvf   打包文件名

选项 : -x: 解打包

例如: tar  -xvf  long.tar

常用选项:

-p:打包时保留原始文件及目录的权限

-t:列表查看包内的文件

-C:解包时指定释放的目标文件夹

-z:调用 gzip 程序进行压缩或解压

-j:调用 bzip2 程序进行压缩或解压

.tar.gz压缩格式:

其实   .tar.gz   格式是先打包为.tar格式,再压缩为  .gz  格式

tar  -zcvf   压缩包名.tar.gz   源文件   ----- 进行压缩

选项:   -z:   压缩为  .tar.gz  格式

tar  -zxvf   压缩包名.tar.gz      ---- 进行解压缩

选项:  -x:   解压缩.tar.gz 格式

多文件压缩:

解压缩:

查看压缩的内容:(只查看,不解压)

常用:

.tar.bz2 压缩格式:

tar  -jcvf  压缩包名.tar.bz2   源文件

选项: -z : 压缩为  .tar.bz2  格式

tar  -jxvf  压缩包名.tar.bz2

选项: -x:  解压缩 .tar.bz2  格式

压缩为: .tar.bz2  并解压到指定目录

注意: windows当中的  .rar  格式是没办法在Linux中解压缩的。

压缩格式以及解压缩格式必须要掌握的压缩方式:

打包时,忽略指定的文件:

4、关机和重启命令

ctrl + c 终止命令

shutdown命令

[root@localhost ~]# shutdown  [选项]  时间

选项:  -c: 取消前一个关机命令    例如: [root@localhost ~]# shutdown -c

h: 关机

-r:  重启        例如:[root@localhsot ~]# shutdown  -r  now

将关机命令放入后台执行:[root@localhost ~]# shutdown -r05:30&

---加一个  &(代表后台运行)  符号

其他关机命令:--- 知道就好

[root@localhost ~]# halt

[root@localhost ~]# poweroff    ---相当于直接断电

[root@localhost ~]# init 0

注意: 这3中命令都不安全,不会在关机的时候保存数据

其他重启命令:

[root@localhost ~]# reboot    --- 相对安全;

[root@localhost ~]# init 6    --- 尽量不要用

备注: 上述出现的   init  0   init 6  :其中的数据  0   和 6 :称做系统运行级别:

系统运行级别:

0     关机

1     单用户   --- 相当于windows当中的安全模式,做系统修复,如忘记密码

2     不安全多用户,不含NFS服务 --- NFS是Linux当中一个文件共享服务。

3     安全多用户   --- 其实就是默认的界面。包含NFS服务。

4     未分配

5     图形界面  --- 前提是必须有图形界面才可以启动。如果安装了,则可以进入图形界面。

6     重启

查询当前系统运行的级别:

[root@localhost ~]# runlevel;

表示:在进入3级别界面前,是N N表示null 也就是空字符界面。

如果同时安装了  图形界面   默认启动,进入的是  字符界面,还是  图形界面;(这个可以设置)

[root@localhost ~]# cat  /etc/inittab    --- 修改系统默认运行级别---下面是显示的内容

id:3initdefault:

退出登陆命令:

[root@localhost ~]# logout    ---- 就会释放远程登陆的终端号。

5、查询与自动挂载

[root@localhost ~]# mount    ---查询系统中已经挂载的设备

[root@localhost ~]# mount -a   ---依据配置文件   /etc/fstab  的内容,自动挂在

注意: 像,U盘,光盘,不推荐自动挂载,因为每次linux启动的时候都会去检查,如果有一次检查不到系统将crash

mount挂载命令格式

[root@localhost ~]# mount [-t 文件系统] [-o 特殊选项] 设备文件名 挂载点  ---挂载点为空白目录

-t 文件系统:加入文件系统类型来指定挂载的类型,可以ext3、ext4、iso9660等文件系统:iso9660为光盘类型(硬记),

-o 特殊选项:可以指定挂载的额外选项

示例:mount -o remount,noexec /home/    挂载选项无法访问,没有权限

特殊选项列表:

atime / noatime   更新访问时间/不更新访问的时间,访问分区文件时,是否更新新文件的访问时间,默认为更新

async / sync      异步/同步,默认为异步

auto / noauto     自动/手动,mount -a 命令执行时,是否会自动安装  /etc/fstab 文件内容挂载,默认为自动

defaults          定义默认值,相当于 rw, suid , dev , exec , auto , nouser , async 这七个选项

exec / noexec     执行/不执行 ,设定是否允许系统中执行可执行文件,默认 exec 允许

remount           重新挂载已经挂载的文件系统,一般用于指定 修改特殊权限。

rw / ro           读写/只读,文件系统挂载时,是否具有读写权限,默认 rw

suid / nosuid     具有/不具有SUID权限, 设定文件系统是否具有SUID和SGID的权限,默认是具有

user / nouser     允许/不允许普通用户挂载,设定文件系统是否允许普通用户挂载,默认是不允许,只有root可以挂在分区。

usrquota          写入代表文件系统支持用户磁盘配额,默认不支持。

grpquota          写入代表文件系统支持组磁盘配额,默认不支持。

6、Linux中  进入编写脚本文件

[root@localhost home]# vi hello.sh

[root@localhost ~]#  chmod  755  hello.sh ---  赋予 hello.sh  执行权限

如果是纯linux脚本可以不写,但是有嵌套的时候必须写

7、 光盘挂载:

[root@localhost ~]# mkdir /mnt/cdrom/    --- 建立挂载点

[root@localhsot ~]# mount -t iso9660 /dev/sr0 /mnt/cdrom   ---挂载光盘

[root@localhost ~]# mount /dev/sr0 /mnt/cdrom   ---可以省略  -t iso9660 系统已知道

10、卸载命令 ----- 不可省略,用完之后,必须先卸载。

[root@localhost ~]# umount 设备文件或挂载点

[root@localhsot ~]# umount /mnt/cdrom

注意: 挂载光盘或其他盘,一定要卸载。否则弹不出来,如果强制,导致再读取时,数据不正确

11、 挂载U盘     fdisk   分区命令

[root@localhost ~]# fdisk -l ---------查看U盘设备文件名(查看系统当中已经识别的硬盘)

U盘对应的是多少,会在该命令执行后---对应显示出来。一般是  sdb1

[root@localhost ~]# mount  -t  vfat   /dev/sdb1  /mnt/usb/   -----挂载

注意: Linux默认是不支持NTFS文件系统的。---也就是  移动硬盘  是不能在Linux中直接挂载的。

2种解决Linux支持NTFS文件的方案:

a、 重新编译Linux内核,但是种方法在工作中是不需要的;

b、 安装  ntfs-3g 的软件。会让Linux默认支持NTFS

但是:即使支持了NTFS,也只是只读模式,并不能写入数据   Linux默认的就是只读

如果用到windows当中的数据都是通过网络传输。

12、 用户信息命令

1、w         查询当前登陆的用户;

2、who 只显示当前登陆的用户信息。

3、查询当前登陆和过去登陆的用户信息-----所有用户登陆的信息。重要

last   其实访问的是:ls  /var/log/wtmp   ---wtmp是个:二进制文件,

可以检查是否有异常用户存在。

4、lastlog   查看所有用户的最后一次登陆时间  ,默认读取的是   /var/log/lastlog 文件内容

其中: tty1 表示登陆的终端-----本机终端。虚拟机本机登陆没有IP

pts/0   表示第一个远程终端

-bash  ---- 等待操作

logout:注销当前用户。

Shell基础:命令解释器,也就是当前操作的界面。

查看当前的  shell  [root@localhost ~]# echo  $SHELL

分类:

1、Bourne Shell:从1979其Unix就开始使用Bourne  Shell,Bourne Shell 的主文件名为   sh. 不支持上下箭头翻看。

2、当前的Shell ,C  Shell :C  Shell  主要在BSD 版的 Unix 系统中使用,其语法和 C 语言相类似  而得名。

1、查看当前支持的Shell :

界面输出及设置颜色: 开启颜色设置 \e[1;31m   结束颜色:\e[0m

查看调用系统的一些特殊文件:

[root@localhost ~]# vim /etc/passwd

2、 脚本执行方式:

1、echo 输出命令  --- 如果输出的内容有空格,必须加双引号,其中不可以有 感叹号。感叹号有特殊含义。

echo  [选项] [输出内容]

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

\a       输出警告音

\b       退格键,也就是向左删除键

\n       换行符

\r       回车符

\t       制表符,也就是tab 键

\v       垂直制表符。

\0nnn    按照八进制ASCII 码表输出字符。其中0位数字零,nnn 是三位八进制数

\xhh     按照十六进制ASCII码表输出字符,其中hh是俩位十六进制数

2、第一个脚本

[root@localhost sh]# vi hello.sh

#!/bin/bash   这一句必须有

# the first program    其中#表示注释,但是第一句必须的有。

echo -e "\e[1;34m 这是输出语句 \d[0m"

2-1、脚本运行

赋予执行权限,直接运行。chmod  755  hello.sh

./hello.sh    --- 或  绝对路径  执行。

通过Bash调用执行脚本bash  hello.sh

chmod 755 hello.sh  ---- 赋予脚本执行权限

[root@localhost zk]# vi hello.sh

3、Bash的基本功能---别名、快捷键

1、命令别名 与 快捷键

1、设定

2、查看

alias   ---- 查看系统中所有的命令别名

alias   别名=‘元命令’   --- 设定命令别名,这样设置重启计算机就会失效。

2-1、别名永久性生效

vi  ~/.bashrc   ---写入环境变量配置文件

vi  /root/.bashrc   ---打开后将需要的别名写入,保存即可;并不会立即生效

不会立即生效: 可执行:source   .bashrc 即可立即生效。

3、删除 ---- 只是临时删除,除非在  .bashrc 配置文件中修改。

unalias  别名

命令生效顺序:

1、第一顺位执行用绝对路径或相对路径执行的命令。

2、第二顺位执行别名。

3、第三顺位执行Bash的内部命令;

4、第四顺位执行按照 $PATH 环境变量定义的目录查找顺序找到的第一个命令

常用快捷键:

ctrl + c     强制终止当前命令

ctrl + l     清屏

ctrl + a     光标移动到命令行首

ctrl + e     光标移动到命令行尾

ctrl + u     从光标所在位置删除到行首

ctrl + z     把命令放入后台

ctrl + r     在历史命令中搜索

2、历史命令 ---- 指把用户操作过的命令保存到系统当中,当需要的时候可重新调用

history  [选项]   [历史命令保存文件]

选项:  -c : 清空历史命令。

-w:把缓存中的历史命令写入历史命令保存文件  ~/.bash_history

查看历史记录文件   [root@localhost ~]# cat   .bash_histroy

注意: 。bash_histroy中保存的命令只有在用户正常推出后才会存入。logout 命令。如果需要强制写入  :[root@localhost ~]#  history  -w(包括当前的 history

-w 命令)

历史命令默认会保存 1000 条,可以在环境变量配置文件  /etc/profile 中进行修改。

历史命令的调用:

常用 1、使用上、下箭头调用以前的历史命令

2、使用  “!n” 重复执行第n条历史命令  --- n是 history对应的号   例如:[root@localhost ~]# !2  执行历史第二条命令

3、使用 “!!” 重复执行上一条命令  --- 例如:[root@localhost ~]# !! 执行上一次命令

常用  4、使用  “!字符串” 重复执行最后一条以该字符串开头的命令    --- 例如: [root@localhost ~]# !ls 最后一次ls命令

3、输出重定向-----常用的还是输出重定向,输入重定向了解就好。

标准输入输出:

键盘          /dev/stdin          0           标准输入

显示器       /dev/sdtout        1          标准输出

显示器       /dev/sdterr         2          标准错误输出

其中:dev  是继 Linux保存硬件特殊文件的标准目录,键盘就是这个文件下的。

1正确,2错误

类型                         符号                              作用

标准输出重定向                         命令 >  文件                以覆盖的方式,把命令的正确输出,输出到指定的文件或设备当中。

命令 >> 文件                以追加的方式,把命令的正确输出,输出到指定的文件或设备当中。

标准错误输出重定向                     错误命令  2>  文件          以覆盖的方式,把命令的错误输出,输出到指定的文件或设备当中

错误命令  2>>  文件         以追加的方式,把命令的错误输出,输出到指定的文件或设备当中。

标准输出  命令 >  文件  >与文件之间有空格。而 错误命令  2>文件   >与文件之间   没有空格。

正确输出和错误输出同时保存

命令 >  文件  2>&1     以覆盖的方式,把正确输出和错误输出都保存到同一个文件当中

命令  >>  文件  2>&1   以追加的方式,把正确输出和错误输出都保存到同一个文件当中。

命令  &>文件           以覆盖的方式,把正确输出和错误输出都保存到同一个文件当中。

命令  &>>文件          以追加的方式,把正确输出和错误输出都保存到同一个文件当中。

命令>>文件1  2>>文件2  把正确的输出追加到文件1中,把错误的输出追加到文件2中。

2,4,5最常用。

输入重定向:  直接在界面 输入----wc  随意输入   最后按 ctrl+d 统计  行   单词   字符

[root@localhost ~]# wc  [选项]  [文件名]

选项:  -c: 统计字节数

-w: 统计单词书

-l  : L  统计行数

注意:一般用不到输入重定向, 会在软件安装打补丁的时候会用到输入重定向,但一般不会用到。

[root@localhost ~]# wc  < access.log   --- 会统计处这个sccess.log中  有几行,几个单词,几个字符。

这种用到的很少,了解就好。

多命令顺序执行

1、管道符:

多命令执行符       格式           作用

; 分号          命令1;命令2    多个命令顺序执行,命令之间没有任何逻辑联系

&&              命令1&&命令2  逻辑与  当命令1正确执行,则命令2才会执行    当命令1执行不正确,则命令2不会执行

||            命令1|| 命令2   逻辑或  当命令1执行不正确,命令2才会执行     当命令1正确执行,则命令2不会执行

表示 :先查询当前链接到的数量,然后查询正在链接的,之后统计正在链接的行数。

例子:

[root@localhost ~]# ll  -a  /etc/  |  more ----先查询etc目录下的内容,然后分屏幕显示

[root@localhost ~]# netstat  -an  |  grep   ESTABLISHED   ---- 先查询当前的链接状态,然后显示正在链接的。

5、Shell中特殊符号

通配符:文件名 或  目录名称 如果是内容:需要用正则表达式

?   匹配一个任意字符   ---常用

*    匹配0个或任意多个任意字符,也就是可以匹配任何内容   --- 常用

[]    匹配中括号中任意一个字符。例如:[abc] 代表一定匹配一个字符,或者是a,或则是b,或则是c。---- 常用

[-]  匹配中括号中任意一个字符,- 代表一个范围。例如:[a-z]  代表匹配一个小写字符。

[^]  逻辑非,表示匹配不是中括号内的一个字符。例如: [^0-9] 代表匹配一个不是数字的字符。

Bash中其他特殊符号:

''     单引号。在单引号中所有的特殊符号,如”$“  和 ”`“  (反引号 引文状态下 1)都没有特殊含义---

""     双引号。在双引号中特殊符号都没有特殊意义,但是 "$"、 "`"、 和"\" 是例外,拥有"调用变量的值"、"引用命令"  和  "转义符"的特殊含义

``    反引号。反引号括起来的内容是系统命令,在Bash中会执行它。它和   $()  作用一样。不过推荐使用  $()  ,因为反引号非常容易看错   ---反引号是用来包含系统命令的。先执行命令,再把值赋给变量。

$()   和反引号作用一样,用来引用系统命令。

#    在shell脚本红,#开头的行代表注释。

$     在调用变量的值,如需要调用变量name的值时,需要用 $name  的方式得到变量的值。

\     转义符,跟在 \ 之后的特殊符号将失去特殊含义,变为普通字符。  如  \$  将输出  "$"符号。而不当做是变量引用。

权限管理命令:chmod

语法:chmod  [{ugoa}{+-=}{rwx}]   [文件或目录]

[mode=421]  [文件或目录]

-R  递归修改

功能:修改文件或目录的权限

其中=号的用法

权限的数字:

例如:

-R:

表示:当修改这个目录的权限的时候,这个目录中所有的子文件都将会改成同样的权限。

总结:

一个File :  r:意味着:如果要查看一个文件的内容,必须要对这个文件有r权限。才可以执行这样的命令:cat   more  head   tail  less  才可以看这个文件内的内容。

w: 意味着:可以修改这个文件。可以执行命令:  vim

x:意味着:可以执行这个文件,可执行的文件必须是:script(脚本)、command(命令)

删除一个文件的前提是:用户必须对当前文件所在目录有w的权限,才可以删除这个文件。

一个目录:directory,rwx对目录的含义是不一样的。

r:目录意味着:可以列出目录中的内容。可以执行的命令:ls

w:目录意味着: 可以做 创建/删除文件。可以执行的命令:touch/ mkdir/ rmdir/  rm

x:目录意味着:可以进入这个目录。可执行的命令:cd

在Linux里面目录的rx是同时存在的。不可能只查看目录中的东西,而进不去。或则只能进入,而不能查看里面的东西。 所以:有r权限,肯定有x权限。

重点:w权限,可以在目录中创建,删除文件。

添加普通用户:

用户管理命令:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值