Linux目录结构和vi编辑器
FHS标准(Filesystem Hierarchy Standard):
- /boot:启动目录,内核存放地
- /etc:配置文件存放地
- /tmp:程序产生的临时文件
- /home:用户的目录,新增用户账号时,用户的家目录都存放在此目录
- /lib:库文件,程序在执行过程中,需要调用一些额外的参数时需要函数库的协助
- /bin:可执行文件和常用的Linux命令
- /sbin:系统管理员的命令和工具
- /usr:应用程序和文件的安装地
- /mnt:挂接其他文件系统
- /root:root账户的home目录
- /dev:存放Linux系统下的设备文件
vi
功能:生成新文件或者编辑、查看文件
格式:vi file_name
说明:上面的命令直接进入vi模式
从命令模式进入编辑模式
需按i键或者a键
i:插入文本
a:追加文本
使用ESC键可以从编辑模式进入命令模式
可执行的操作:
- :w 保存文件
- :wq 保存并退出
- :wq! 保存并强制退出
- :q 退出
- :q! 强制退出
- dd 删除当前行
- yy 复制当前行 p粘贴
- x 删除一个字符
- :n 光标移至文本第n行
- $ 光标移至文本的行尾
- gg 光标移至文本的首行
- G 光标移至文本的末行
- / 查找某个字符串
- :set nu/:set nonu 设置行号/取消行号
- u 撤销操作
文本和目录操作命令
快捷键
- ctrl + a :跳到命令开头
- ctrl + e :跳到命令结尾
- ctrl + 键盘左键 向左跳一个单词
- ctrl + 键盘右键 向右跳一个单词
pwd
功能描述:打印用户当前所处的路径(print work directory)
在文本模式下,使用命令:
[root@localhost~]#pwd
cd
功能描述:改变用户所在目录(change directory)
格式:cd<目录名>
[root@localhost~]#cd .. 返回到当前目录的上一级目录
[root@localhost~]#cd 返回到当前目录的主目录
[root@localhost~]#cd /home 用路径切换到home目录
ls
功能描述:显示指定目录下的内容(list directory)
格式:ls [参数] [目录或文件]
[root@localhost~]#ls /home 显示指定目录/home下的内容
[root@localhost~]#ls -l 显示当前目录的详细内容
[root@localhost~]#ls -a 显示当前目录下的所有文件,包括隐藏文件
选项 | 含义 |
-a | 列举目录中的全部文件,包括隐藏文件 |
-l | 列举目录中的细节,包括权限、所有者、组群、大小、创建日期、文件是否是链接等 |
-r | 逆向,从后向前地列举目录中的内容 |
-R | 递归,该选项递归地列举当前目录下所有子目录内的内容 |
-s | 大小size:数据块 |
cat
功能描述:显示文本内容
格式:cat 文本文件名字
例如: cat 1.txt
touch
功能描述:创建文本(不能插入内容)
格式: touch 文本文件名字
例如: touch 12.txt
grep
功能描述:在一堆文件中查找一个特定的字符串;区分大小写
格式:grep [字符串] [目标文件]
例如: grep -n yes hello.txt 在hello.txt文件中,查找yes所在行,并显示行号
选项 | 说明 |
-n | 显示匹配行及行号 |
-i | 忽略字母大小写 |
cp
功能描述:拷贝文件或复制文件
格式: cp [源文件] [目标文件]
例如:cp hello.txt file1.txt 把文件hello拷贝一份,命名为file1
cp hello.txt /home 把文件hello复制一份放到home目录下
cp hello.txt /home/dddd.txt 把文件hello复制一份放到home目录下,取名为dddd.txt
cp /home/dddd.txt /cat 把home目录下的dddd.txt复制到cat目录下
cp -i test.txt /home 把text.txt 覆盖home目录下的test.txt
选项 | 含义 |
-i | 互动:如果文件将覆盖目标中的文件,他会提示确认 |
-r | 递归:这个选项会复制整个目录、子目录以及其他 |
-v | 详细:显示文件复制进度 |
find
将从指定目录向下递归地遍历其各个子目录,将满足条件的文件或者目录显示在终端
语法:find 搜索范围 选项
选项 | 说明 |
-name | 按照指定的文件名查找模式查找文件 |
-user | 查找属于指定用户名所有文件 |
-size(+n 大于 -n小于 n等于,单位有k,M,G) | 按照指定的文件大小查找文件 |
例如:find /home -name hello 查找home目录下名称名为hello的文件
find /opt -user nobody 查找opt目录下用户名为nobody的文件
find / -size +200M 查找根目录下大于200M的文件
对文件操作的命令
mv
功能描述:可以对文件或者目录进行移动(剪切)
格式:mv [源对象] [目的对象]
例如:mv 4.txt /home 把4.txt剪切到home目录下
选项 | 含义 |
-i | 互动:如果选择的文件会覆盖目标中的文件,他会提示 |
-f | 强制:不提示地移动文件 |
-v | 详细:显示文件的移动进度 |
mkdir
功能描述:创建目录(make directory)
格式:mkdir [目录名1] [目录名2]
例如:mkdir aa bb cc
mkdir -p aa/bb/cc/ 创建一个嵌套目录,aa里包含bb,bb里包含cc;目录里只能嵌套一个目录
rmdir
功能描述:删除空目录(remove directory)
格式: rmdir [参数] [目录名1]
例如: rmdir dir2 删除一个空目录
rmdir bb cc dd 删除多个空目录
rmdir -p aa/bb/cc 删除嵌套空目录
rm
功能描述:删除文件
格式:rm [参数] [文件]
例如:rm 2.txt 3.txt 4.txt 删除2.txt 3.txt 4.txt文件
rm /etc/33.txt 删除etc目录下的33.txt文件
选项 | 说明 |
-i | 互动:提示确认删除 |
-f | 强制:代替互动模式,不提示删除 |
-v | 详细:显示文件的删除进度 |
-r | 递归:将删除某个目录以及其中所有的文件和子目录 |
线上查询命令
locate
功能描述:定位文件和目录
格式:locate [文件或目录名]
例如:locate test 表示搜索带有test这个词的文件或目录
locate命令使用数据库来定位带有test这个词的文件或目录
man
功能描述:用来查询和解释一个命令的使用方法和这个命令的主要事项
格式:man [命令] 按q退出
例如:man ls 表示查询ls命令的说明书页
whatis
功能描述:用来查询某个命令的含义
格式:whatis [命令]
例如: whatis mv 查询mv命令的含义
压缩命令
bzip2
功能描述:压缩文件
格式:bzip2 [文件名]
例如:bzip2 filename 压缩filename文件,并被保存为filename.bz2
bzip2 file1 file2 /home/aa 压缩file1,file2和/home/aa目录中的内容
bunzip2 filename.bz2 解压filename.bz2文件,filename.bz2会被删除,而以filename代替
gzip
功能描述:压缩文件
格式:gzip [文件名]
例如:gzip filename 压缩filename文件,并被保存为filename.gz
gzip file1 file2 /home/aa 压缩file1,file2和/home/aa目录中的内容
gunzip filename.bz2 解压filename.gz文件,filename.gz会被删除,而已filename代替
gzip/gunzip -r file1 把file1目录中的内容压缩/解压缩起来
选项 | 说明 |
-r | 递归处理:将指定目录下的所有文件及子目录一并处理 |
tar
功能描述:将文件或者目录进行打包或者解压缩
格式:tar [参数] [打包后的文件名] [需要打包的文件或目录]
例如:tar cvf test.tar /home/test 将home下目录test打包成tar包
tar xvf test.tar 将test.tar解压缩
tar -cvf filename.tar aa bb 创建一个tar文件,把aa,bb放入文件中
tar -tvf filename.tar 列出tar文件的内容
tar -xvf filename.tar 解压tar文件
这些命令不会删除tar文件,但会把解压缩的内容复制到当前工作目录下,并保留压缩文件所使用的任何目录结构
tar -cjvf filename.tbz file 创建一个使用tar和bzip2来归档压缩的文件
tar -xjvf filename.tbz 扩展并解除归档bzip tar文件
tar -czvf filename.tgz file 创建一个用tar和gzip归档并压缩的文件
tar -xzvf filename.tgz 扩展并解除归档gzip tar文件
选项 | 说明 |
-c | 创建压缩文件(压缩) |
-x | 展开归档文件(解压缩) |
-t | 显示包括在tar文件中的文件列表 |
-z | 压缩/解压缩文件(gz格式) |
-v | 写入或读取时,显示所有的文件 |
-f | 指名要展开的归档文件名 |
-j | 压缩或解压缩文件(bz2格式) |
文件阅读命令
head
功能描述:用来查看文件的开头部分
格式:head 文件名 默认它只查看文件的前10行。但可以通过指定一个数字选项来改变要显示的行数
例如:head -20 文件名 查看文件的前20行
tail
功能描述:查看文件结尾的10行
格式:tail 文件名
例如:tail -20 文件名 查看文件的后20行
more
功能描述:按页来查看文件的内容 使用空格键和b键来前后移动
格式: more [选项] 文件名
例如:more 文件名
选项 | 说明 |
-num | 一次显示的行数 |
-f | 计算行数时,以实际上的行数,而非自动换行过后的行数(有些单行字数太长了会被扩展为两行或两行以上) |
+num | 从第num行开始显示 |
要使用more在文本文件中搜索关键字,按 / 键并输入命令搜索条目
例如:more +/lq 文件名 从文件中查找第一个出现“lq”字符串的行,并从该处前2行开始显示输出;使用空格键来向前翻阅页码,按q退出
当一个目录下的文件内容太多,可以用more来分页显示。这得和管道 | 结合起来
“|” 表示管道,作用是可以前面命令的输出作为后面命令的输入
例如:ls -al /etc | more -5 以每页5行的形式显示etc目录下的所有内容的详细信息,按空格键翻页,按q键退出
which
功能描述:依序从path环境变量所列的目录中找出命令的位置,并显示完整路径的名称。在找到第一个符合条件的程序文件时,就立刻停止搜索,省略其余未搜索目录
格式: which 命令
例如: which ls 找出ls命令的程序文件的位置
whereis
功能描述:查找符合条件的文件,whereis命令只能定位一些文件在文件系统中的位置。whereis一般勇于程序名的搜索
格式:whereis [选项] 程序名
例如:whereis mv
选项 | 说明 |
-b | 只找二进制文件 |
-m | man说明文件,查出文档路径 |
管理使用者和设立权限命令
chmod
功能描述:用来改变许可权限,读取、写入和执行是许可权限中的三个主要设置
格式:chmod 文件的使用者(u,g,o)增减(+,-=)权限名称(r,w,x) 文件
例如:chmod a-rwx 文件名 删除某一文件的所有权限
chmod u+rwx 文件名 为文件所有者添加权限
选项 | 说明 |
r/4 | 文件可以被读取 |
w/2 | 文件可以被写入 |
x/1 | 文件可以被执行,如果文件是程序的话 |
u | 拥有文件的用户 |
g | 所有者所在的组群 |
o | 其他人 |
a | 代表所有 |
useradd与userdel
功能描述:添加用户、删除用户
格式:useradd [用户名]
userdel [参数] [用户名]
例如:useradd wang 添加wang用户
userdel -r wang 彻底删除wang用户,如果不加-r 则wang用户会删除,但还会有残留文件
su
功能描述:用来修改用户
格式:su 用户名
例如:su 用户名 代表切换用户,但是环境变量保持现在用户的环境变量
su -l 用户名 代表切换用户,并载入那个用户的环境变量
passwd
功能描述:修改用户密码
格式: passwd 用户名
管理机器命令
reboot
功能描述:重新启动
格式:reboot
也可以使用命令 shutdowm -r <time>
例如:shutdowm -r now 现在立刻重启
shutdowm -r 11:30 等到11:30进行重启
halt
功能描述:关机
格式:halt
也可以使用命令 shutdowm -h <time>
例如:shutdowm -h now 现在立刻关机
shutdowm -h 11:30 11:30再关机
shutdowm -t 2 在2分钟内关机
时间查看命令
date
功能描述:用来设定、修改和查看时间和日期
例如:date +%Y-%m-%d 显示当前日期 年-月-日
date "+%Y-%m-%d %H:%M:%S" 显示当前日期和时间 年-月-日 时:分:秒
date -u 使用北京时间
date -r 文件名 最后一次修改文件的时间
date -s 18:00 设置时间
- 格式化字符串 通过特定的字符标记,来控制显示的日期格式
%Y 年
%y 年份后两位数字(00-99)
%m 月份(01-12)
%d 日 (01-31)
%H 小时(00-23)
%M 分钟(00-60)
%S 秒(00-60)
%s 自1970-01-01 00:00:00 UTC 到现在的秒数 - -d选项,可以按照给定的字符串显示日期,一般用于日期的计算
date -d "+1 day" 显示后一天的日期
date -d "-1 day" 显示前一天的日期
date -d "+1 month" 显示下个月的日期
date -d "-1 month" 显示上个月的日期
date -d "+1 month" 显示后一年的日期
date -d "-1 month" 显示前一年的日期 - 其中时间标记为:
year 年
month 月
day 天
huor 小时
minute 分钟
second 秒
cal
功能描述:日历
格式:cal 2017 显示2017年的年历
cal 10 2017 显示2017年10月份的日历
修改linux时区
使用root权限,执行如下命令,修改时区去东八区时区
rm -f /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
磁盘空间命令
df
功能描述:检查硬盘的使用量
例如:df -a 列出全部文件系统和各分区的磁盘使用情况
du
功能描述:显示文件目录的大小
格式:du 参数 文件名字
例如:du -ab 列出所有文件和目录所占的空间
其他命令
systemctl
Linux系统很多软件(内置或第三方)均支持使用systemctl命令控制:启动、停止、开机自启;能够被systemctl管理的软件,一般称之为:服务
语法:systemctl start(启动) / stop(关闭) / status(查看状态) / enable(开启开机自启) / disable(关闭开机自启) 服务名
例如:systemctl stop firewalld
系统内置的服务比较多,比如:
- NetworkManager 主网络服务
- network 副网络服务
- firewalld 防火墙服务
- sshd ssh服务(FinalShell远程登录Linux使用的就是这个服务)
除了内置的服务外,部分第三方软件安装后也可以以systemctl进行控制
- yum install -y ntp 安装ntp软件(自动校准系统时间)
可以通过ntpd服务名,配合systemctl进行控制 - yum install -y httpd 安装apache服务器软件
可以通过httpd服务名,配合systemctl进行控制
ln命令创建软链接
在系统中创建软链接,可以将文件,文件夹链接到其他位置
类似windows系统中的“快捷方式”
语法:ln -s 参数1 参数2
- -s选项 创建软链接
- 参数1 被链接的文件或文件夹
- 参数2 要链接去的目的地
例如:ln -s /etc/yum.conf ~/yum.conf
ln -s /etc/yum ~/yum 把etc目录下的yum文件夹软链接到home目录下的yum文件夹