在vmware下安装linux
安装centos7
安装ubuntu8
在xshell中连接linux
linux常用命令
命令格式
-
命令格式
命令 [选项] [参数]
但是需要注注意的是有个别命令使用不遵守此格式,当有多个选项时,可以写在一起,简化选项与完整选项。
ls命令
ls [选项] [文件或目录]
选项:
-a 显示所有文件,包括隐藏文件
-l 显示详细信息
-d 查看目录属性
-h 人性化显示文件大小
-i 显示inode
目录/文件处理命令
mkdir -p [目录名]
- -p 表示是递归创建 比如
mkdir a/b
这个命令,本来的意思是创建一个目录a,并且在目录a中创建一个目录b,但是如果a目录原来是不存在,那么这个命令就会执行失败,加上-p
选项就可以解决这个问题。
cd [目录]
切换目录
cd ~
表示进入当前用户的家目录cd -
进入上次的目录cd ..
进入上一级目录cd .
进入当前目录
rmdir(rm) [目录名]
删除目录,只能删除空目录,如果目录里面还有内容则不能删除
-r
: 删除目录-f
: 表示强制删除
cp [选项] [源文件或目录] [目标目录]
-r
: 表示的是复制目录,如果没有加就是复制文件-p
: 连带文件属性复制-d
: 若源文件是链接文件,则复制链接属性-a
: 相当于-pdr
mv [原文件或目录] [目标目录]
剪切或改名命名
- 原文件与目标文件不是在同一个目录中就是剪切
- 原文件与目标文件在同一个目录下就是改名
链接命令
ln -s [原文件] [目标文件]
该命令是生成链接文件
-s
: 创建软连接
文件搜索命令
locate(文件搜索命令)
locate 文件名
在后台数据库中按文件名搜索,搜索速度快- 上面说locate是在后台数据库搜索,所搜索的后台数据库是
/var/lib/mlocate
,不同linux系统最后那个文件名可能会有所差异。 - 既然该命令是在数据库搜索,那么可能新建的文件数据库还没来得及更新,那么此时使用该命令就搜索不到,此时可以强制更新数据库,只需要执行
updatedb
命令即可。
命令搜索whereis与which
- whersis
-
whereis 命令名
搜索命令所在路径已经帮助文档的所在位置
-
选项
-b
: 只查找可执行文件-m
: 只查找帮助文档
- which
which 命令名
- 搜索文件所在路径以及命令的别名
文件搜索命令find
find [搜索范围] [搜索条件]
比如命令find / -name hello
这条命令就指的是在根目录下按照文件名搜索hello这个文件。find /root -iname install.log
: -name是按照文件名来搜索,前面加上-i选项是不区分大小写搜索find /root -user root
: 这条命令是按照所有者搜索find /root -nouser
: 查找没有所有者的文件find /var/log/ -mtime +10
: 这条命令是在/var/log目录下查找10天前修改的文件- -10 表示10天内修改的文件
- 10 表示第十天当天修改的文件
- 10 10天前修改的文件
- atime 表示文件访问时间
- ctime 表示改变文件属性的时间
- mtime 修改文件内容的时间
find . -size 20k
: 表示查找当前目录下为20k的文件- +20k 表示大于20k的文件(如果使用k那么k是小写的)
- -20 表示小于20k的文件
- +20M 表示大于20M的文件(如果是使用M那么M需要大小)
find . -inum 24355
: 表示查找当前目录中i节点为24355的文件find . -size +20k -a -size -50k
: 这里中间的-a表示的是条件与,也就是需要满足这两个条件,所以这条命令是查找当前目录下文件大小大于20k小于50k的文件-a
:表示逻辑与-o
:表示逻辑或
find . -size +20k -a -size -50k exec ls -l {} \
: 这条命令是用第二条命令去执行第一条命令查询出来的结果,只要使用了exec
就需要在后面加上{} \
- find是在系统当中搜索符合条件的文件名,如果需要匹配,使用通配符匹配,通配符是完全匹配。
*
: 匹配任意内容?
:匹配任意一个字符[]
: 匹配任意一个中括号内的字符
- 需要注意的是如果没有使用通配符后面搜索的文件可以不用双引号括起来,如果是使用双引号则需要使用双引号括起来才可以。比如这种方式
find /root -name "install.log*"
帮助命令
man
man 命令
获取指定命令的帮助文档,该命令只能获取外部安装的命令,比如ls命令
命令 --help
- 获取命令选项的帮助
help 命令
help 命令
- 该命令是获取内部命令,比如cd命令
info命令
这个命令是详细的帮助文档
linux压缩与解压命令
linux中常用的几种压缩文件格式
- .zip格式
- 压缩文件
zip 压缩文件名 源文件
- 压缩目录
zip -r 压缩文件名 源目录
- 解压缩
unzip 压缩文件
- 压缩文件
- .gz格式
gzip 源文件
- 压缩为.gz格式的压缩文件,源文件会消失
gzip -c 源文件 > 压缩文件
- 压缩为.gz格式,源文件会保留
gzip -r 目录
- 压缩目录下所有的子文件,但是不能压缩目录
gzip -d 压缩文件
- 解压缩文件
gunzip 压缩文件
- 解压缩文件
- .bz2格式(bzip2命令不能压缩目录)
bzip2 源文件
- 压缩为.bz2格式,不保留源文件
bzip2 -k 源文件
- 压缩之后保留源文件
bzip2 -d 压缩文件
- 解压缩,-k选项可以保留压缩文件
bunzip2 压缩文件
- 解压缩,-k选项可以保留压缩文件
- .tar.gz格式
- 打包命令tar
tar -cvf 打包文件名 源文件
- -c: 打包
- -v: 显示过程
- -f: 指定打包后的文件名
- 比如使用命令
tar -cvf test.tar test
- 解打包命令
tar -xvf 打包文件名
- -x: 解打包
- 上面说gzip和bzip2命令是不能压缩目录的,但是tar命令又是可以将文件打包,所以.tar.gz格式其实就是先将文件或者目录打包然后再使用gzip命令来压缩,但是这种方式是比较麻烦的,因为压缩一个文件需要分成两个部分。下面的方式就是一步到位,直接将文件或者目录压缩为.tar.gz格式。
tar -zcvf 压缩包名.tar.gz 源文件
- -z: 压缩为.tar.gz格式
tar -zxvf 压缩包名.tar.gz
- -X: 解压缩.tar.gz格式
tar -ztvf 压缩包名.tar.gz
- -t: 该选项表示不解压压缩文件,而是直接看一下压缩文件里面有哪些内容
- 打包命令tar
- .tar.bz2格式
- 这种文件的格式也是先将文件或者目录压缩为tar格式,然后将tar格式的文件压缩为.bz2格式
tar -jcvf 压缩文件名.tar.bz2 源文件
- -z: 压缩为.tar.bz2格式
tar -jcvf 压缩文件名.tar.bz2 源文件1 源文件2
- 上面的命令是将多个文件压缩到一个压缩包中,只需要将需要压缩的源文件用空格分开即可
- 如果不想压缩到当前目录,那么在压缩文件名前面也是可以加上相对或者绝对目录位置的。
tar -jxvf 压缩包名.tar.bz2
- -X: 解压缩.tar.bz2格式
- 解压时指定目录
tar -jxvf 压缩包名.tar.bz2 -C 目录
- 后面那个选项-C(这里是大写的C)表示指定解压目录
关机与重启
shutdown
shutdown [选项] 时间
(关机前会保存内容)- -c: 取消前一个关机命令
- -h: 关机
- -r:重启
- 其他关机命令 (关机前不会保存内容,可能会造成文件丢失)
- halt
- poweroff
- init 0
- 其他重启命令
- reboot
- init 6
- 退出登录
- logout
- exit
挂载命令
挂载光盘
挂载其实就是windows中的分配盘符。自动挂载的文件是/etc/fstab
-
挂载命令的格式
mount [-t 文件系统] [-o 特殊选项] 设备文件名 挂载点
- 选项
- -t: 文件系统:加入文件系统类型来指定挂载的类型,可以ext3、ext4、iso9660等文件系统
- -o: 特殊选项: 可以指定挂载的额外选项
- 选项
-
mount
- 该命令是查询系统中已经挂载的设备
-
mount -a
- 依据配置文件/etc/fstab的内容,自动挂载
-
案例,挂载iso
-
开机后点击右下角的双击虚拟光盘的图标(从左到右第二个),在CD/DVD中选择右边的使用iso映像文件,在里面选择自己下载的iso镜像文件。(需要注意的是上面的设备状态一定要勾选已连接选项)
-
建立挂载点
mkdir /mnt/cdrom
- <font color=red>在linux的根目录中有三个目录可以成为我们的挂载点,分别是media,mnt,misc(主要是挂载一些磁带之类的),这里我们选择在mnt目录中建立cdrom目录来成为挂载点</font>
-
挂载光盘
mount -t iso9660 /dev/cdrom /mnt/cdrom/
或者是mount /dev/sr0 /mnt/cdrom
- 上面命令中的/dev/cdrom与/dev/sr0是设备文件名,只要是挂载iso光盘就是使用这两个中的其中一个,最好是使用/dev/sr0,因为cdrom其实是软连接,只有当系统起来后才会起作用。
- 上面命令中-t iso9660是可以省略的,因为光盘默认就是使用这个,所以这条命令可以修改为
mount /dev/sr0 /mnt/cdrom
- 挂载成功后/mnt/cdrom目录内容大致为
- 在linux中使用完光盘之后必须要使用卸载命令在卸载挂载点,对于本案例就是使用
umount /mnt/cdrom
-
挂载u盘
- u盘与光盘不一样的地方在于光盘文件系统名是固定的,就是iso9660,但是u盘不一定,所以首先需要查看u盘设备文件名
fdisk -l
- 查看u盘设备文件名
mount -t vfat /dev/sdb1 /mnt/usb/
- 上面想命令中可能需要修改的就是设备文件名了,这里是/dev/sdb1,也是默认值,这是建立在电脑中只有一个硬盘的前提下,但是如果是有两个硬盘,那么就是/dev/sdc1,以此类推,所以才需要第一个命令去查询一下。
- <font color=red>上面的vfat表示的是fat32的文件系统,也就是说不支持单个大于4G的文件,需要注意的是linux默认的是不支持NTFS文件系统的(也就是说移动硬盘默认是不能在linux中直接挂载的。)</font>
卸载命令
unmount 设备文件名或挂载点
用户登录查看
w 用户名
- 可以直接输入w回车查看登录的用户信息
who 用户名
- 也可以不用输入用户名,查看的信息比w简单
- last
- 查看当前登录和过去登录的用户信息
- last命令实际上是读取/var/log/wtmp文件的数据
- lastlog
- 查看所有用户的最后一次登录时间
- lastlog命令默认是读取/var/log/lastlog文件内容
文件权限
<font color="red">需要注意的是linux中不是通过文件的后缀来标识文件类型的</font>
如果是通过ls -l查看详细时可以看到类似如下的信息
-rw-------. 1 root root 1250 7月 2 06:22 anaconda-ks.cfg
-rw-r--r--. 1 root root 28250 7月 2 06:22 install.log
-rw-r--r--. 1 root root 7572 7月 2 06:21 install.log.syslog
最前面一共有十位,可以分为四个部分
- 第一位表示的是文件类型(linux中一共是有其中文件类型,但是常用的就是以下三种)
- '-' 横线表示的是文件
- ‘d’ 字母d表示的是目录
- 'l' 字母l表示的是软连接文件
- 后面九位字符中三个三个一组,第一组表示的是所有者的权限(U表示),第二组表示的是所属组的权限(g),第三组表示的是其他人的权限(o)
- 后面九位分为了三组,每一组都是用三个字符来表示权限,而权限是有三种
- r: 表示具有读的权限
- w:表示具有写的权限
- x: 表示具有执行的权限
- 后面的那个 1代表的是引用计数
- 在1后面还有两个root,第一个root代表的是所属者,第二个是所属组,这里root既是所属者又是所属组,那么权限就是根据所属者来决定的。
- 后面的那个1250, 28250那个数字表示是文件的大小,单位是字节,如果我们使用
ls -lh
来查看的时候后面的单位就是根据实际大小来决定的,如果可以用k就是用k,如果可以用M就是用M(兆) - 大小后面的是文件最后一次修改实际
shell
脚本权限
- 对于linux中自己创建的脚本第一行一定是
#!/bin/bash
,#是linux中注释的功能,但是这一个是例外,这一句其实是告诉linux这是一个脚本。
在linux中创建脚本后不是就可以立即执行的,因为不一定有权限,也就是说如果想要执行脚本就需要先给予权限。赋予脚本权限有两种方式。
- 赋予执行权限,直接运行
chmod 755 hello.sh
赋予脚本hello.sh执行的权限./hello.sh
执行脚本
- 通过Bash调用执行脚本
bash hello.sh
查看与设定别名
alias
- 查看系统中所有的命令别名
alias 别名='原命令'
(临时生效)- 设定命令别名
别名永久生效
上面直接在命令行设置的别名只是临时生效的,如果想要一只生效则需要修改环境变量,环境变量有很多,可以只修改当前用户家目录里面的.bashrc文件即可(~/.bashrc
)。
历史命令
history [选项] [历史命令保存文件]
- 选项
- -c: 清空历史命令
- -w: 把缓存中的历史命令写入历史命令保存文件
~/.bash_history
- 选项
输出重定向
标准输出重定向
命令 > 文件
(大于号左右有空格)- 以覆盖的方式,将命令的正确输出输出到指定的文件或者设备中
- 命令 >> 文件 (大于号左右有空格)
- 追加的形式
标准错误输出重定向
错误命令 2>文件
(大于号右边没有空格)- 覆盖的方式
错误命令 2>>文件
(大于号右边没有空格)- 追加的形式
正确输出与错误输出同时保存
<font color=red>下面的命令中需要注意空格的使用</font>
命令 > 文件 2>&1
- 覆盖的方式将正确和错误的输出都保存在同一个文件当中
命令 >> 文件 2>&1
- 追加的形式将错误与正确的输出都保存在同一个文件当中
命令 &> 文件
- 以覆盖的方式将正确和错误的信息都保存都同一个文件当中
命令 &>>文件
- 追加的形式将错误与正确的输出都保存在同一个文件中
命令>>文件1 2>>文件2
- 将正确的输出追加到文件1中,把错误的输出追加到文件2中
输入重定向
wc [选项] [文件名]
- 选项
- -c: 统计字节数
- -w: 统计单词数
- -l: 统计行数
- 选项
管道符
多命令顺序执行
多命令执行符 | 格式 | 作用 |
---|---|---|
; | 命令1;命令2 | 多个命名顺序执行,命令间没有逻辑关系 |
&& | 命令1&&命令2 | 逻辑与,命令1正确执行,命令2才会执行<br />命令1执行不正确,命令2不会执行 |
|| | 命令1||命令2 | 逻辑或,命令1执行不正确,命令2才会执行<br />命令1正确执行时,命令2不会执行 |
管道符
- 命令格式
命令1 | 命令2
- 命令1的正确输出作为命令2的操作对象
通配符
通配符 | 作用 |
---|---|
? | 匹配一个任意字符 |
* | 匹配0个或任意多个字符,也就是可以匹配任意内容 |
[] | 匹配中括号中的任意一个字符,比如[abc]代表一个匹配abc三个字符中的其中一个 |
[-] | 匹配中括号中的任意一个字符,-代表一个范围,比如[a-z]代表匹配一个小写的字母 |
[^] | 逻辑非,一个不是代表匹配的不是中括号内的一个字符,例如[^0-9] 代表匹配一个不是数字的字符 |