Linux 文件系统
Linux 的文件系统是采用层级式的树状目录结构,在此结构中的最上层是根目录“/”,然后再次目录下再创建其他的目录。
目录结构:
以下是对这些目录的解释:
目录结构 含义
/root 该目录为系统管理员,也称作超级权限者的用户主目录
/bin Binary的缩写,这个目录存放着最经常使用的命令
/usr 非常重要的目录,用户很多应用程序和文件都放在这个目录下,类似与window下的program files 目录
/sbin 存放的是系统管理员使用的系统管理程序
/etc 存放系统或者安装的程序的配置文件,注册服务等
/tmp 存放一些临时文件
/lib linux的命令和系统启动,需要使用一些公共的依赖,放在lib中,类似我们开发的代码执行需要引入的jdk的jar
/var 存放系统日志和缓存日志的目录
/home 家目录,linux中每新建一个用户,会自动在home中为该用户分配一个文件夹
/dev 存放设备文件目录,比如声卡,磁盘,光驱等
/boot 存放的是启动linux使用的一些核心文件,包括一些连接文件以及镜像文件
/media Linux系统会自动识别一些设备,例如U盘、光驱等,识别后,Linux会把识别的设备挂载到这个目录下
/mnt 是为了让用户临时挂在别的文件系统的,我们可以将外部的存储挂载在/mnt上,然后进入该目录就可以查看里面的内容了
文件管理命令
ls – 查看文件列表
命令 说明
ls 查看当前目录下的文件列表
ls -a 显示全部包括隐藏文件
ls -h 以人类可读的方式显示文件的大小,如用 K、M、G 作单位
ls -l 显示文件和目录的详细资料
ls -R 连同子目录的内容一起列出(递归列出),等于该目录下的所有文件都会显示出来
cd – 切换目录
命令 说明
cd / 转到根目录
cd /home 比如进入 ‘/ home’ 目录’
cd … 返回上一级目录
cd …/… 返回上两级目录
pwd – 显示所在的工作路径
命令 说明
pwd 比如切换到 home目录,执行命令 pwd ,显示 /home路径
mkdir/touch – 新建文件夹及文件
命令 说明
mkdir test 创建一个叫做 ‘test’ 的目录’
mkdir test1 test2 同时创建两个目录
mkdir -p /tmp/test3 创建一个目录树
touch 创建新文件,他可以创建一个空白的文件,可以在其中添加文本和数据。touch newfile 该命令创建一个名为newfile 的空白文件
rm – 删除文件
命令 说明
rm -f test 删除一个叫做 ‘test’ 的文件’
rmdir test 删除一个叫做 ‘test’ 的目录’
rm -rf test 删除一个叫做 ‘test’ 的目录并同时删除其内容
rm -rf test1 test2 同时删除两个目录及它们的内容
cp – 拷贝文件
命令 说明
cp test newtest 把 ‘test’ 文件拷贝到 ‘newtest’文件
cp –r test newtest 把 ‘test’ 文件夹拷贝到 ‘newtest’文件夹
mv – 移动文件或修改文件名
命令 说明
mv t.txt Document 把文件 t.txt 移动到目录 Document 中
mv ~/abc.txt /opt/123.txt 把目录中的 abc.txt 文件移动到 /opt 目录中,并把文件名修改成 123.txt 的命令
cat – 查看文本内容
命令 说明
cat abc.txt 查看 abc.txt 文本内容
less 和 more – 查看文本内容
less:可以按键盘上下方向键显示上下内容
more:不能通过上下方向键控制显示
less不必读整个文件,加载速度会比 more 更快
less 退出后 shell 不会留下刚显示的内容,而 more 退出后会在 shell 上留下刚显示的内容
less命令:
命令 说明
less abc.txt 查看 abc.txt 文本内容
↑ 上一行
↓ 下一行
G 第一页
g 最后一页
空格 下一页
q 推出
/关键字 搜索关键词
more命令:
命令 说明
more abc.txt 查看 abc.txt 文本内容
tail 查看文本内容
命令 说明
tail -n 5 abc.log 查看文件末尾 5 行内容
tail -f abl.log 实时查看文件最新信息
tail -f nohup.out grep “rumenz”
echo 显示输出内容
1、输出 hello world
[root@localhost test]# echo “hello\tworld”
hello\tworld
[root@localhost test]# echo -e “hello\tworld”
hello world
1
2
3
4
2、颜色打印输出内容
命令:sh color.sh
可以把命令写进shell脚本在调用脚本执行,也可以直接执行命令。
color.sh 内容如下
echo -e “\033[35mHello World\033[0m”
echo -e “\033[46;37mHello World\033[0m”
echo “Hello World”
1
2
3
4
5
3、覆盖 log.txt 里面的内容
命令:echo Hello World > log.txt
[root@localhost test]# cat log.txt
abcdefghigklmnopqrstuvwxyz
[root@localhost test]# echo Hello World > log.txt
[root@localhost test]# cat log.txt
Hello World
1
2
3
4
5
4、在 log.txt 追加内容
命令:echo Hello World2 >> log.txt
[root@localhost test]# cat log.txt
Hello World
[root@localhost test]# echo Hello World2 >> log.txt
[root@localhost test]# cat log.txt
Hello World
Hello World2
1
2
3
4
5
6
find – 查找文件
命令 说明
find / -name test.txt 查找当前目录下名为 txt.sh 的文件
find / -name ‘*.txt’ 查找当前目录下后缀为 ‘.txt’ 的文件。
find /home/user1 -name *.txt 在目录 ‘/ home/user1’ 中查找带有’.txt’ 结尾的文件
find /etc -type f 查找 etc 目录下的所有文件
find /etc -type d 查找 etc 目录下的所有文件夹
find /usr/bin -type f -atime +100 查找在过去100天内未被使用过的执行文件
find /usr/bin -type f -mtime -10 查找在10天内被创建或者修改过的文件
find /home -size 10M 查找 home 目录下等于 10M 的文件
find /home -size +10M 查找 home 目录下大于 10M 的文件
find / -mtime -3 查找 3 天内修改过的文件
find / -atime -3 查找 3 天内访问过的文件
grep – 文件内容查找
命令 说明
grep “abc” abc.txt 输出文件中包含 ‘abc’ 的行
grep -v “abc” abc.txt 输出文件中不包含 ‘abc’ 的行
grep -n “abc” abc.txt 输出文件中包含 ‘abc’ 的行及行号
grep -c “abc” abc.txt 输出文件中匹配 ‘abc’ 字符串的数量
grep -o “abc” abc.txt 只输出匹配的内容 ‘abc’
grep -w “abc” abc.txt 只匹配 ‘abc’ 这个单词的行
vi/vim – 编辑文本内容
命令 说明
vim abc.txt 执行命令打开文本内容,按 i 键进行内容编辑,修改完以后按 Esc 键退出编辑,接着按 Shift+:,这时候输入需要操作的命令并且回车,如下:
命令 说明
——– —–
q 如果未修改,则退出
q! 取消修改并退出
wq! 保存修改
tar/zip – 压缩解压缩
命令 说明
tar -zcvf /home abc123.tar.gz abc.txt 123.txt 把 ‘home’ 目录中的 abc.txt 和 123.txt 文件压缩成 abc123.tar.gz 压缩包
tar -zxvf /home/abc123.tar.gz -C /opt 把 ‘home’ 目录中的 abc123.tar.gz 包解压到 /opt 目录下
zip -r test.zip /home/ 将 /home 下的所有文件进行压缩成 test.zip
unzip -d /opt/ test.zip 将 test.zip 解压到 /opt 目录下
系统管理
命令 说明
查看 IP ifconfig、ip a、ip addr
关机 shutdown now 或(shutdown -h:默认一分钟后关闭,shutdown -h 30:30分钟后关闭,shutdown -h now:立刻关闭,shutdown -c:取消关机)
重启 reboot 或 (shutdown -r:默认一分钟后重启虚拟机,shutdown -r 30:30分钟后重启,shutdown -r now:立即重启虚拟机)
清屏 clear
检查网络 ping,比如 ping www.baidu.com 或 ping 192.168.0…2
查看系统时间 date
rpm – 软件包管理器
该命令用于管理 Linux 下软件包的软件。在 Linux 操作系统下,几乎所有的软件均可以通过 RPM 进行安装、卸载及管理等操作。
命令 说明
rpm -ivh 软件包名 安装软件包并显示安装进度。
rpm -qa 查询已经安装哪些软件包
rpm -q 软件包名 查询指定软件包是否已经安装
rpm -uvh 软件包名 升级一个软件包
rpm -e 软件包名 删除指定软件包
yum – 基于 rpm 的软件包管理器
yum 基于 rpm 实现的,提供了除了 rpm 的安装软件、卸载软件等功能以外还有,自动查找、下载软件并自动处理软件的彼此之间的依赖关系,下载并安装依赖包。
命令 说明
yum list all 列出所有可以安装的软件包
yum info 软件包名称 查看软件包信息
yum install 软件包名称 安装软件包
yum update 软件包名称 升级软件包
yum remove 软件包名称 卸载软件
yum search 软件包名称 查找软件包
systemctl – 管理服务
例如:sshd network firewalld 等
命令 说明
systemctl start work.service 启动服务
systemctl restart work.service 重启服务
systemctl stop work.service 停止服务
systemctl reload work.service 重新加载配置文件(不终止服务)
systemctl status work.service 查看服务状态
systemctl enable work.service 开机自动启动
systemctl disable work.service 开机不自动启动
systemctl is-enabled work.service 查看特定服务是否为开机自动启动
systemctl list-unit-files –type=service 查看各个级别下服务的启动与禁用情况
查看内核版本
uname -r
1
查看cpu
lscpu 或者 cat /proc/cpuinfo 命令
1
查改主机名
查:hostname,改:hostname myhost –关机失效
1
域名 ip 映射
所谓本地域名 IP 映射,是指在本地建立域名和 IP 之间的映射关系,无需通过域名解析服务器,直接在本地进行域名解析。在 Linux 系统中,是通过文件 /etc/hosts 描述域名到 IP 映射的,如下:
[root@centos7 ~]# vim /etc/hosts
192.168.199.8 www.hhh.com
1
2
免密登录
ssh 登录远程服务器,可以免去输入密码的麻烦。
1、生成公钥
首先查看本地有没有生成密钥,如果有的话,再次生成会影响前面已经设置好的,用下面这条命令就可以
cat ~/.ssh/id_rsa.pub
1
如果没有的话,输入下面的命令来在本机上生成公钥和私钥
ssh-keygen -t rsa
1
进入“.ssh”会生成以下几个文件
authorized_keys:存放远程免密登录的公钥,这个文件主要是允许哪个主机免密访问本机,就会把那个主机的公钥填到这个文件里面
id_rsa:生成的私钥文件
id_rsa.pub:生成的公钥文件
known_hosts:已知的主机公钥清单,如果希望 ssh 公钥生效需要满足两个条件:
.ssh目录的权限必须是700
.ssh/authorized_keys文件权限必须是600
2、把公钥复制到远程主机上
方式一:
通过 ssh-copy-id 的方式
ssh-copy-id -i ~/.ssh/id_rsa.pub root@远程服务器ip
1
方式二:
通过 scp 将内容写到对方的文件中
scp -p ~/.ssh/id_rsa.pub root@192.168.0.12:/root/.ssh/authorized_keys
1
远程拷贝
scp /home/administrator/test.txt root@192.168.0.12:/etc/squid
scp -r /home/administrator/test.txt root@192.168.0.12:/etc/squid
1
2
/home/administrator/ 本地文件的绝对路径
test.txt 要复制到服务器上的本地文件
root 通过 root 用户登录到远程服务器(也可以使用其他拥有同等权限的用户)
192.168.0.12 远程服务器的 ip 地址(也可以使用域名或机器名)
/etc/squid 将本地文件复制到位于远程服务器上的路径
————————————————