系统文件结构
在系统中,使用点(.)来表示当前目录,使用点点(..)来表示当前目录的上一级目录,也就是其 父目录。
例如:查看当前目录中一个名为hello.txt的文件 cat ./hello.txt
例如:查看当前目录的父目录中的一个名为hello.txt的文件 cat ../hello.txt
路径的特点: 一个路径可以唯一表示一个目录或者文件 多级路径直接可以使用/进行分割,
例如 test/a/b/hello.txt 路径中的第一个位置如果出现了/,那么这个/代表的是根目录,例如 /home/briup/hello.txt
系统中的两种路径:绝对路径,相对路径
1. 绝对路径 Linux系统中,以系统中根目录开头的路径,都是绝对路径 例如:/bin 、/home/briup、/opt等 例如,查看/home/briup目录中的hello.txt文件 cat /home/briup/hello.txt
2. 相对路径 在当前路径下,去描述另一个路径,就可以使用相对路径,它表示的俩个路径的相对位置。 当前路径,就是当前输入执行命令的路径,在当前路径下,去表示另一个路径的相对位置。 例如,当前路径在/home/briup下,查看另一个/home/test目录中的hello.txt文件
用户创建
1.创建一个新的用户swift,家目录为/home/swift,用户登录后使用bash
sudo useradd -mk /home/swift -s /bin/bash swift
2.给新建的swift用户设置密码:
sudo passwd swift
3.切换到swift用户:
su - swift
输入id 命令可以查看用户
使用sudo命令,删除swift用户,并删除swift用户对于的家目录 /home/swift,并且是强制删除
sudo userdel -r -f swift
命令
命令格式:Command [option(s)] [argument[s]]
command: 命令关键字
options: 可以有多个选项
arguments: 可以有多个参数
例如:显示a.txt的内容,并且显示行号。
cat -n a.txt
注意事项:
1.中间用空格隔开
2.单行命令一般不超过256个字符
3.大小写敏感
常用命令
clear 清屏
pwd 显示当前工作路径
cd 切换目录
ls 显示当前目录下的内容列表
- ls -a //显示隐藏文件和隐藏目录,也就是以点(.)开头的文件和目录
- ls -R //递归显示目录中的内容
- ls -t //显示目录中的内容列表,并使用时间排序,默认是按着名字排序
- ls -l //显示详细信息 ls -a -l //这些参数可以多个一起使用
- ls -al //参数可以分开也可以合在一起写
- ls -F //显示文件的类型,目录/ 可执行文件* 普通文件
-rw-rw-r-- 1 briup briup 199 7月 16 12:16 a.txt
从左到右
- 文件类型,普通文件是- 目录是d 链接文件是l 块设备文件是b 字符设备文件是c 命令管道文件是p sock文件是s
rw-rw-r-- 权限设置,这里是分三组,分别为拥有者权限、同组人权限、其他人权限
1 链接号 briup 拥有者 briup 拥有组
199 文件大小
7月 16 12:16 最后修改时间
a.txt 文件名字
chmod 修改权限
在添加或者删除某个权限的时候:
- u 表示拥有者
- g 表示同组人
- o 表示其他人
- a 表示所有人
chmod u+x b.txt
chmod g-r b.txt
chmod u+r,g-2 b.txt
chmod a=rw b.txt
也可以是数字来表示权限
0000 0001 x 执行权限 十进制数字 1
0000 0010 w 写权限 十进制数字 2
0000 0100 r 读权限 十进制数字 4
在这种情况下,任意权限组合相加得出的数字结果,都是唯一。
例如,
//7一定是1+2+4所得,表示拥有者、同组人、其他人都是可读可写可执行
chmod 777 b.txt
touch命令
touch a.txt
当a.txt文件不存在的时候,会创建该文件
当a.txt文件存在的时候,会更新文件的修改时间
touch a b c d 创建多个文件
mkdir命令
例如,创建一个目录
mkdir test
例如,创建多个平级目录
mkdir test1 test2 test3
例如,在当前用户家路径下创建一个子目录
mkdir ~/test4
例如,创建多级子目录,-p表示如果子目录不存在就创建
mkdir -p test1/test2/test3
cp命令
cp a.txt b.txt
如果b.txt不存在,则自动创建b.txt文件
如果b.txt 存在,则自动覆盖b.txt文件内容
mv命令
mv a.txt test
将a.txt移动到test目录中 注意,也可以同时移动多个文件到目录中
mv a.txt b.txt c.txt test
例如,修改一个文件的名字,将a.txt改为b.txt
mv a.txt b.txt
rm命令
rm a.txt 删除文件a
rm a b c d 删除多个文件
rmdir test 删除空目录test
rm -r test 删除非空目录
rm -r -i test 删除test时提示
rm -r -f test 强制删除test 无提示
man命令 查看帮助文档
- 空格,每次往下翻一个屏幕的内容
- 回车,每次往下翻一行内容
- b,每次向上翻回一页
- f, 每次向下翻一页
- q,退出当前手册界面 /stirng,查找指定字符串,
- 例如,/the 就是查找这个单词
- n,配合/string命令,可以快速调整跳到下一个指定字符串的位置
网络:
ping ip地址 可以测试是否连接到某个ip地址
例如
ping 127.0.0.1 或者 ping www.baidu.com
ifconfig 查看本机ip信息
重定向:
>和>>
输出重定向符合,将来原本输出到命令行中的内容,重定向输入到另外一个地方。
> 表示往文件中写入内容,是覆盖操作
echo "hello" > a
a文件如果不存在,则自动创建,a文件如果存在,则覆盖之前的内容
>> 表示往文件中写入内容,是追加操作
例如,先把date命令显示的日期写入到a文件中,再把cal显示的日历追到a文件中,再查看a文件的内容
date >> a cal >> a cat a
| 管道符
管道符,可以把第一个命令的结果,交给第二个命令作为参数进行操作
例如,查看/etc/passwd中的内容并筛选出briup相关的信息 cat /etc/passwd | grep "briup"
grep命令进行对结果进行过滤筛选
管道符一般和grep一起使用
元字符:
元字符:具有特殊含义的字符
* ? [] 通配符
* : 0个或n个任意字符
ls -l a*.txt [a.txt ab.txt]
?:任意1个字符
[范围]:指定范围任意一个字符
; :一行内可分格多条命令 使其在一行执行
tar 归档
归档,把若干个文件或目录简单的合并在一起,它并不对文件进行压缩,就是将多个文件前后连接 在一起,形成一个大文件。 另外还会额外的添加一些信息,所以归档后的总文件的大小,反而往往比之前文件之和还要大一 些。
例如,把指定文件和目录进行归档 tar -cvf work.tar a b c test1 test2
例如,解除归档文件到指定目录中
tar -xvf work.tar -C dir1
- -c 建立新的压缩文件
- -r 添加文件到已经压缩的文件
- -u 添加改变了和现有的文件到已经存在的压缩文件
- -x 从压缩的文件中提取文件
- -t 显示压缩文件的内容
- -z 支持gzip解压文件
- -j 支持bzip2解压文件
- -v 显示操作过程
- -k 保留源有文件不覆盖
- -C 切换到指定目录
- -f 指定压缩文件
压缩:
gzip work.tar
在tar进行归档之后直接进行压缩:
rm work.tar.gz
tar -zcvf work.tar.gz a b c test1 test2
解压
例如,对gz文件进行解压,解压到当前目录
gunzip work.tar.gz
例如,对tar.gz文件进行解压并解除归档
tar -zxvf work.tar.gz -C dir2