Linux目录、文件的管理

centos目录结构
ls / 查看根目录下有哪些文件或者目录
bin 可执行文件的目录
sbin 存放root用户可执行文件目录
etc 配置文件
boot 引导文件
home 普通用户宿主目录
lib 系统的核心文件
lib64 系统的核心文件
dev 设备目录
mnt 临时目录挂载点
root root用户的宿主目录
tmp 临时目录(比较重要文件不要往这里面方法)
var 经常发生变化的文件或者目录存放处 variable var a=1
usr 共享资源目录(一般软件安装,默认此目录)

目录管理

linux命令分类
内部命令 cd , pwd... 外部命令 ls, mkdir...
帮助命令
内部命令:help 命令名称
外部命令:man 命令名称
man mkdir
进入帮助文档后,点q键退出
创建目录
mkdir = make directories
语法:
mkdir [选项] 目录名称
实例:
mkdir qy97
创建多级目录实例:
mkdir -p spring/springmvc/config
mkdir -p aaa/bbb/ccc

学会看帮助文档
-p的解释:
-p, --parents
no error if existing, make parent directories as needed
删除目录
rmdir= remove directory
语法(只能删除空目录)
rmdir 目录名称
实例:
rmdir aaa/bbb/ccc
rmdir aaa/bbb
rmdir aaa
修改目录名称
mv = move
语法:
mv 要修改名称的目录 修改后的目录名称(不能存在)
实例:
mv qy97 qy971
如果要修改多级目录下的目录,要进(cd)到他上级目录然后修改
复制目录
cp = copy
语法:
cp -r 目录名称 目的位置
实例:
cp -r qy971 spring

ls /tmp
ls /var
cp -r /var/db/ /tmp
ls /tmp
ls /var
查看目录下的内容
ls = list
语法:
ls [目录名称]
实例:
ls 查看当前目录下的所有内容
ls /etc 查看etc目录下的所有内容(绝对路径)
ls /etc/sysconfig/network-scripts 查看/etc/sysconfig/network-scripts目录下的所有文件
ls spring/ 当前目录下存在spring可以使用相对路径查看
ls spring/springmvc
-a 查看目录下所有的文件,包括隐藏文件
-a, --all
do not ignore entries starting with .
-l 以长格式显示目录下的所有文件(显示文件或者目录的详细信息)
ls -l 可以简化为 ll
-t 按更新时间倒叙排序显示目录下的内容
ls -a /etc
ls -l /etc
ls -l -t /etc 等同于 ls -lt /etc

-r文件 d目录 l快捷文件

切换目录
cd = change directory
语法:
cd 目录名称
实例:
cd 什么参数都要,切换到当前用户的主目录

扫描二维码关注公众号,回复: 6731618 查看本文章

su admin 切换普通用户
cd 进入普通用户主目录
pwd 输出结果为/home/admin

cd .. 切换到上级目录
cd ../../ 切换到上级的上级目录
cd spring 切换相对路径
cd spring/springmvc
cd /etc/ 切换绝对路径
cd /etc/sysconfig

文件管理

创建文件
touch 文件名称
实例:
touch spring.xml
touch spring/springmvc/config/springmvc.xml
touch /tmp/spring.xml
复制文件
cp 文件名称 目标位置(目标位置不存在,相当于复制后重命名)
实例:
cp spring.xml spring
cp spring.xml springmvc.xml
cp springmvc.xml spring/springmvc/
cp /root/spring.xml /var/log/
ls /var/log
cp 如果是目录的话,需要加上 -r
剪切文件(移动文件)
mv 文件名称 目标位置
实例:
mv spring.xml qy971/ 移动spring.xml到qy971目录下
mkdir /tmp/mydir
mv /root/qy971/spring.xml /tmp/mydir/
ls /tmp/mydir/
删除文件
rm =remove
实例:
touch a.txt b.txt c.txt 创建多个文件
rm a.txt 带提示的删除
rm -f b.txt -f =force 强制删除不带提示
rm -rf qy971 -r =resursive 递归强制删除
总结:
无论是文件或者是目录,都可以使用
rm -rf 文件/目录

修改文件名称
mv qy97.txt qy97.log qy97.log一定不是一个目录
查看文件内容
查看整个文件内容
语法:
cat 文件名称
实例:
cat install.log
cat /etc/hosts
分页查看文件内容
less 文件名称
more 文件名称
实例:
less install.log
more install.log
enter键一行一行查看
空格键一页一页查看内容
ctrl+f 下一页
ctrl+b 上一页
less和more一点区别,less 可以使用/ 查看具体内容 more不可以
q 退出
查看文件的前n行
语法:
head [-n] 文件名称
实例:
head HelloWorld.java 默认查看HelloWorld.java的前10行
head -1 HelloWorld.java
head -11 HelloWorld.java
查看文件的后n行
语法:
tail [-n] 文件名称
实例:
tail HelloWorld.java
tail -1 HelloWorld.java
tail -5 HelloWorld.java
重要用法 -f 实时监控HelloWorld.java的尾部:
在一个窗口使用下面命令,产生阻塞,一直监控 HelloWorld.java的尾部:
tail -f HelloWorld.java
在链接一个新窗口,执行下面命令,观察第一个窗口的变化:
date >> HelloWord.java
向文件中写入或者追加内容
echo 'hello world' linux向控制台打印 相当于java中的System.out.println("hello world");
js 中打印 alert 'hello world' oracle 中打印 dbms_output.putline('hello world');
>> 代表追加 在原有内容后面继续添加 > 代表写入 覆盖原有内容
echo 'hello world' >> HelloWord.java 把hello world 追加到HelloWord.java 的尾部
date >> HelloWord.java 把当前时间追加到HelloWord.java 的尾部

统计文件内容
wc=word count
语法:
wc [option] 文件名称
实例:
wc a.log 统计a.log中有几行,几个单词(用空格分割),几个字符(包括换行和空格)
wc -l a.log 统计行数
wc -w a.log 统计单词
wc -c a.log 统计字节数
wc -m a.log 统计字符数(一个中文字符,编码格式是utf-8,占三个字节)
wc /etc/hosts 绝对路径
查找文件
语法:
find [文件目录] -name '*关键字*'
实例:
find -name "*.log*" 在当前目录下查找名字中含有.log的文件
find /etc -name '*.pp*' 在etc 目录下(子孙目录也包括)查找文件名称含有.pp的文件,并显示

| 在命令中解释为 管道符 可以链接两个linux命令,第一个命令的执行结果为后面命令使用
find /etc -name '*.pp' | wc -l 在etc 目录下(子孙目录也包括)查找文件名称含有.pp的文件 ,并且统计行数

find /etc -name '*.pp' > a.log 输出结果写入a.lot文件中
wc -l a.log 统计a.log有几行

vim a.log
:set nu
点击大写G,到文件末尾

查找文件内容
grep = global(regexp 正则表达式) regular expression print
grep = global search regular expression(RE) and print out the line

语法:
grep 关键字 文件名称
实例:
grep .pp a.log 在文件a.log中查找含有.pp的行,并显示
grep 0.0 /etc/hosts 绝对路径 在hosts文件找0.0

grep .pp a.log | wc -l 查找并统计行数
grep 0.0 /etc/hosts | wc -l

猜你喜欢

转载自www.cnblogs.com/duguangming/p/11134961.html