系统目录结构
1.ls就是list的意思,列举目录或者文件
2.home目录是家目录,每个用户都有一个家目录
3.root用户的家目录是根root,普通用户的家目录在/home/下 例如/home/sunyuju
4.useradd 添加普通用户,用useradd命令创建的普通用户,在/home目录下都有一个对应的用户名文件及是用户的家目录
为什么配置密钥登录的时候要配置到/root/.ssh/authorized_keys文件中?
答:因为ssh的配置文件中指定了这个文件 /etc/ssh/sshd_config
5.如果某个命令没有安装用yum 命令安装
例如:tree 命令没有安装 yum install -y treee
6.tree命令是以树形展示目录结构,查看命令怎么用 tree --help
7.man命令是显示命令的帮助文档 man tree
8.想查看目录的两层用 命令 tree -L 2
9.bin sbin usr/bin usr/sbin 目录下保存的都是常用命令 例如 ls tree vi
为什么我们能直接用这些命令呢,因为PATH环境变量的作用
bin目录下的命令和 sbin下的命令有什么区别?
sbin下面的命令都是root用户用的 普通用户没有权限用
bin下是普通用户用的命令
10 .boot是启动目录
11.dev目录是设备文件目录 鼠标 键盘
12.etc目录是配置文件目录
13.home目录是用户的家目录
14.lib 和lib64目录是系统的库文件,相当于Windows下面的dll文件
15.查看一个命令依赖那些库? 用ldd /bin/ls
16.media 媒见目录 mnt挂载目录 opt proc进程
17.root 目录 root用户的家目录
18.run 进程目录
19.srv服务产生的文件
20.sys目录系统内核相关的文件
21.tmp 系统的零时目录
22.usr 用户相关的目录 通常将apach放到这里
23.var目录 日志相关的放在这里
ls命令
ls
inode:储存文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等。这种储存文件元信息的区域就叫做inode,中文译名为"索引节点"。
1.-rw-------表示权限 1 有多少个文件用同一个inode
2.ls -i 查看inode号
3.- 代表文件类型 root 表示所有者,后面的root表示所有组 1422 表示文件大小,单位是b 后面是时间和文件名
4.ls -a 查看所有文件,包括隐藏文件。
5.
这三个目录的inode号是一样的
6.ls -alt
t表示正序排2.
别名alias
1.which ll 查看ll命令的路径
2.alias 查看系统哪些命令有别名
3.创建:alias aming='ls -lah'
4.删除:unalias相对和绝对路径
1.绝对路径:从根开始的都是绝对路径
/root/ /usr/
2.相对路径是,相对当前所在位置的路径
相当于.根的路径
cd命令
1.cd 的意思是 change directory
2.cd - 回到上一目录
cd .. 到上一目录
cd ~ 到家目录
mkdir和rmdir
mkdir创建目录,目录不存在不能创建用 -p 参数强制创建目录
-v 参数显示创建目录的过程
rmdir的用途是删掉目录。他的功能比较鸡肋,它只能删除空的目录。
rm
1.rm -f 强制删除文件
2.rm -r级联的删除目录和文件
3.rm -v查看删除过程
4.!su 表示执行最近执行的已su开头的命令
环境变量$PATH
1.环境变量指$PATH
[root@sunyujun01 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@sunyujun01 ~]#
2.为什么我们可以执行ls命令,就是因为ls位于环境变量下面的某个文件下面,下面例子中ls命令位于/usr/bin/目录下
[root@sunyujun01 ~]# which ls
alias ls='ls --color=auto'
/usr/bin/ls
3.临时增加命令,将ls1命令放到dir目录下并将dir目录添加到环境变量中,然后测试ls1命令和ls命令完全一样。
[root@sunyujun01 ~]# ls
anaconda-ks.cfg dir
[root@sunyujun01 ~]# cp /usr/bin/ls ./dir/ls1
[root@sunyujun01 ~]# PATH=$PATH:dir/ 将某个目录添加到环境变量中
[root@sunyujun01 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:dir/
[root@sunyujun01 ~]# ls1
anaconda-ks.cfg dir
4.永久加ls1命令编辑profile文件在文件尾加上PATH=$PATH:/root/dir/
[root@sunyujun01 ~]# vi /etc/profile
5.删除ls1命令 直接重新设置环境变量,第二种删除profile文件中的PATH=$PATH:/root/dir/
[root@sunyujun01 ~]# PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
cp命令
1.copy 拷贝文件或目录
[root@sunyujun01 ~]# cp anaconda-ks.cfg dir/
[root@sunyujun01 ~]# ls dir/
a anaconda-ks.cfg ls ls1
2.拷贝目录用-r 参数
[root@sunyujun01 ~]# mkdir dir1
[root@sunyujun01 ~]# ls
anaconda-ks.cfg dir dir1
[root@sunyujun01 ~]# cp dir dir1
cp: 略过目录"dir"
[root@sunyujun01 ~]# cp -r dir dir1
[root@sunyujun01 ~]# ls
anaconda-ks.cfg dir dir1
[root@sunyujun01 ~]# cd dir1/
[root@sunyujun01 dir1]# ls
dir
3.!$上条命令的最后一个参数,以空格分割
[root@sunyujun01 dir1]# ls dir
a anaconda-ks.cfg ls ls1
[root@sunyujun01 dir1]# tree !$
tree dir
dir
├── a
│ └── b
│ └── c
├── anaconda-ks.cfg
├── ls
└── ls1
3 directories, 3 files
4.-i 表示 安全参数,会问是否创建
[root@sunyujun01 dir1]# which rm
alias rm='rm -i'
/usr/bin/rm
5.拷贝目录的时候如果目标目录已存在,会将拷贝的目录放到目标目录下面
mv命令
1.移动文件或目录,如果在同一目录下是重命名
2.移动同时改名字
[root@sunyujun01 ~]# mv dir/ls1 dir1/ls2
[root@sunyujun01 ~]# tree
.
├── anaconda-ks.cfg
├── dir
│ ├── a
│ │ └── b
│ │ └── c
│ └── anaconda-ks.cfg
└── dir1
├── dir
│ ├── a
│ │ └── b
│ │ └── c
│ ├── anaconda-ks.cfg
│ ├── ls
│ └── ls1
├── ls
└── ls2
3.mv命令也有i选项,所以当移动的文件在目标目录已经存在则会询问是否覆盖
[root@sunyujun01 ~]# which mv
alias mv='mv -i'
/usr/bin/mv
文档查看cat_more_less_head_tail
1.cat命令:查看文件内容,加-n选项 显示行号
2.tac命令 和cat命令相反,倒序查看文件内容
3.more命令查看文件内容,只是显示一屏,按空格键显示剩下的,按ctr+b往上翻,ctr+f往下翻
4.wc -l 显示文件行数
5.将一个文件的内容追加到另一个文件内容后
6.less命令和more命令类似,支持方向键往上看,可以在文件中用/+(?加关键字搜索是从后往前搜)关键字进行搜索,对搜索的内容按n查看下一个,按shift+n看上一个
7.按小g定位到行首,大g定位到行尾
8.head命令查看文件的头10行,指定查看几行用 -n +行数
9.tail命令查看文件的尾10行,可以查看动态文件 用 tail -f 文件名
文件或目录权限chmod
1.rw-r--r--(644) rwx:读写执行,rw-:所有者 r--:所属组 r-- 其他用户的权限 r用数字4 w用数字2 x 用数字1表示
2.chmod命令更改文件权限,有的目录或文件权限后面有一个.这个点号表示文件受制于selinux,关闭selinux之后再创建文件就不会有这个点了。
3.零时关闭selinux: setenforce 0,开启selinux:setenforce 1 查看selinux状态:getenforce 彻底关闭selinux编辑/etc/selinux/config,将SELINUX=enforcing改为disabled,然后重启selinux
4.chmod 命令更改目录权限只是针对目录本身,目录里面的文件的权限还是之前的权限,如果想将文件内部的文件也同时更改权限可以用 -R 选项 chmod -R 777 目录名,也可以用u、g、o改权限
更改所有者和所属组chown
1.chown修改文件所有者,将dir目录的所有者有root改为了sunyujun
2.修改文件的所属组chown sunyujun:sunyujun dir 或者用chgrp命令,chown命令也支持 -R 参数 chown -R sunyujun:sunyujun filename
umask
1.umask 决定了我们默认建立一个文件或者目录的默认权限755 664。
2.umask u=, g=w, o=rwx 执行该命令以后,对于下面创建的新文件,其文件主的权限未做任何改变,而组用户没有写权限,其他用户的所有权限都被取消,
应注意:操作符“=”在umask命令和chmod命令中的作用恰恰相反。在chmod命令中,利用它来设置指定的权限,而其余权限则被删除;但是在umask命令中,它将在原有权限的基础上删除指定的权限。
不能直接利用umask命令创建一个可执行的文件,用户只能在其后利用chmod命令使它具有执行权限。假设执行了命令umask u=, g=w, o=rwx,虽然在命令行中,没有删去文件主和组用户的执行权限,但默认的文件权限还是640(即 rw-r-----),而不是750(rwxr-x---)。但是,如果创建的是目录或者通过编译程序创建的一个可执行文件,将不受此限制。在这种情况 下,会设置文件的执行权限。 也可以使用八进制数值来设置mode。由于在umask中所指定的权限是要从文件中删除的,所以,如果该文件原来的初始化权限是777,那么执行命令umask 022以后,该文件的权限将变为755:如果该文件原来的初始化权限是666,那么该文件的权限将变为644。
目录:rwxrwxrwx 减去 ----w--w- = rwxr-xr-x。 777 - 022 = 755
文件没有执行权限,为rw-r--r--所以就是644了。 666- 022 = 644
1.touch命令创建文件默认权限为644 mkdir 创建目录默认权限为755
2.root 的umask的值为0022
3.特殊情况umask设置为003,创建文件。
4.特殊情况umask设置为003,创建目录
隐藏权限lsattr_chattr
1.chattr设置隐藏权限,用ls -l 是看不到的,
2. chattr + i 文件 :设定文件不能被删除、改名、设定链接关系,同时不能写入或新增内容。i参数对于文件 系统的安全设置有很大帮助。
3.lsattr是查看文件权限的。
4.用chattr -i 是减去i权限
5.chattr +a 权限是只能追加和修改时间信息,不能删除,不能修改,只能往后追加内容,
6.chattr -a 去掉权限
7.给一个目录加了i权限或a权限,目录下面的文件可以写
8.lsattr -R 列出目录多层结构,不加-R只是列出一层。
9.lsattr -a 可以看到隐藏的文件