本笔记由51码儿(www.51mar.com)提供


2.1系统目录结构(上) 每个用户都有一个家目录,root用户家目录/root/ 密钥登录时,应该在相应家目录下创建authorized_keys文件,普通用户家目录为:/home/username/,则创建/home/username/.ssh/authorized_keys,root用户家目录为/root/,则创建/root/.ssh/authorized_keys。其中文件名anthorized_keys原则上是不能更改的,若非要换成其他的文件名,需要去到配置文件/etc/ssh/sshd_config中更改定义。 useradd username创建新用户。 *tree *树形显示目录及子目录(先要安装yum install -y tree)。 man command 获得command的帮助信息。 /bin/:/sbin/:/usr/bin/:/usr/sbin/ 存放常用命令,PATH环境变量。 /sbin/(superbin) 存放root用户使用的命令。 /boot/ 系统启动相关的文件,如grab。 /dev/ Linux系统中特有的一些设备文件,如光盘、鼠标、键盘等。 /etc/ 系统配置文件。 /home/ 用户家目录。 /lib/:/lib64/ 存放系统库文件,类似于windows中的.dll文件。 ldd command 查看command命令所依赖的库文件,如ldd /bin/ls。


2.2系统目录结构(下) 从centos7开始,不再区分32位和64位,都是64位。Centos6及之前版本有版本位的区别。 /media/ 媒介目录,默认为空。 /mnt/ 临时挂载目录,默认为空。 /opt/ 空目录。 /proc/ 系统启动进程。会生成PID(进程ID),每一个进程都有一个目录。cwd进程路径。 /root/ root用户的家目录。 /run/ 进程产生的一些临时文件,关机就消失。 /srv/ 空目录,存放一些服务service产生的文件。 /sys/ 存放一些系统内核相关的文件,平时不关注。 /tmp/ 临时目录,权限很大,任何用户都可以写、删、更改。 /usr/ 用户的一些文件,用户的一些服务会存放在/usr/local/下。 **/var/ ** /var/log/ 存放系统日志。/var/log/messages存放系统总日志。 /var/run/ 存放进程PID。


2.3ls命令 参数: -l 列出文件详细信息。 -i 列出inode号码(硬链接)。 -h 更易读地显示文件大小。 -a 显示全部的文件,包括隐藏文件(以 . 开头的文件)。 -t 依时间排序,而不是用文件名排序。 -d 只列出目录本身,不列出目录内的文件数据。 man ls查看系统提供的ls说明文件。 ll<=>ls -l *which ll *查看,得到: *alias ll=’ls -l --color=auto’ *alias别名。


2.4文件类型 ls -l查看文件,得到: ---------- 1 root root 2134 3月25 20:35 install.log 文件权限 连接数 所有者 所属组 大小 最后被修改时间 文件名 文件权限(10位):---------- 第一位: d表示目录。 _表示文件,普通文件可用cat查看。 c表示字符串设备(鼠标、键盘等)。 l表示软链接文件,指向真正的文件,相当于windows的快捷方式。 b表示块(block)设备,光盘、磁盘等。 s表示socket文件,用于系统不同进程之间的通信。tcpip(ip+端口)用于两台机器之间的通信,而socket文件用于同一机器两个进程之间的通信。


2.5alias命令 which filename 查看filename文件所在路径。 which command 查看命令所在路径,可查看别名。 alias 查看系统中所有的别名。 echo $PATH 查看PATH环境变量所包含路径。 which 是在$PATH所包含的路径中去查询。 alias name=’command’,命名别名,如alias ll=’ls -l --color=auto’unalias name 取消别名,如unalias ll


2.6相对和绝对路径 绝对路径:从根开始。 相对路径:相对于当前路径。 pwd显示当前路径 cd change directory改变目录


2.7cd命令 *cd -*返回上次目录。 cd <=>cd ~ 进入当前用户的家目录。 cd .. 进入上级目录


2.8创建和删除目录mkdir rmdir mkdir 参数 dirname创建目录。 参数: -p:级联创建所需要的目录。 rmdir 参数 dirname删除目录。 参数: -p:级联删除空目录。 tree dirname树形显示目录。


2.9rm命令 touch filename可创建新文件。 rm 参数 filename删除文件。 参数: -f 强制删除,不报错。 -r 级联删除目录及文件。 -v 可看到删除过程。 !tree使用命令历史里上一次以 tree开头的命令。


2.10环境变量PATH PATH环境变量是which查找的路径。 直接定义的变量,如PATH=$PATH:/tmp/,关机后失效。若要使其永久生效,需要将*PATH=$PATH:/tmp/*配置到/etc/profile中。


2.11cp命令 cp 参数 源文件(源目录) 目标文件(目标目录) 参数: -r 可拷贝目录(拷贝目录的时候末尾加斜杠)。 -i 交互,会询问,安全选项。 which cp alias cp=’cp -i’ /usr/bin/cp 若不要询问,用*/usr/bin/cp*命令。 !$:表示上一条命令的最后一个参数。如: cd /tmp/ tree !$<=>tree /tmp/ 拷贝目录的时候,若目标目录已经存在时,将源目录直接放到目标目录下去,会询问是否覆盖;若目标目录不存在,将源目录拷贝过来,并改名字。


2.12mv命令 mv 参数 源文件(源目录) 目标文件(目标目录) 源文件与目标文件在同一目录时,相当于重命名。 若目标已经存在时,询问是否覆盖。 移动目录: 目标目录不存在时,相当于改名字。 目标目录存在时,将源目录放到目标目录之下去。


2.13文档查看cat more less head tail cat 查看文内容. tac 反向查找的文件内容。 wc -l filename 查看文件行数。 >> 追加重定向,将前面的内容追加到后面文件里。 more filename Ctrl+F/空格Space往下翻页,Ctrl+B往上翻页。 less filename Ctrl+F/空格Space往下翻页,Ctrl+B往上翻页。支持方向键上下移动。 在查看文件内, /char,从前往后定位char; ?char,从后往前定位char。 n继续往下定位;N继续往反方向定位。 g定位到行首;G定位到行尾。 head -n X fileneme 查看文件前X行(head fileneme 默认10行)。 tail -n X filename 查看文件后X行(tail fileneme 默认10行)。 tail -f fileneme 动态显示文件内容。


2.14文件或目录权限chmod — | — — — | — — — | — — — | .(有点受制/无点不受制) 文件类型|所有者权限|所属组权限|其他人权限|是否受制于selinux 权限位:— — —对应于rwx 可读r=4,可写w=2,可执行x=1,相加得到相应用户或组的权限。 chmod (参数) XXX filename/dir 修改文件/目录权限为XXX。XXX也可以表示为:u=rwx,g=rw,o=rw,根据实际情况设置相应权限位。也可以用a+x(o+x,g+x,o+x)表示:a=all(ugo),指在所有的权限上都加上x权限。同时a-x,也是可以使用的。 参数: -R 递归更改目录及其子目录权限。


2.15更改所有者和所属组chown chown username filename 更改所有者 chgrp group filename 更改所属组 chown username:group filename 同时更改所有者和所属组,可省略所有者,只更改所属组(冒号:不能省略)。 可添加-R参数,目录递归更改。


2.16umask 默认权限umask,默认0022(022) 文件666(rw-rw-rw-)-022(----wx-wx) 目录777(rwxrwxrwx)-022(----wx--wx) 运行umask,可查看当前用户的umask值,可添加-S参数。 umask 0XXX 可设置umask值,前面的0可省略。


2.17隐藏权限lsattr_chattr chattr [+-=]参数 filename/dir 增加隐藏权限。 lsattr [+-=]参数 filename/dir 查看隐藏权限(可添加-R参数目录递归查看)。 +:增加一个隐藏权限。 -:减去一个隐藏权限。 =:更改为后面接的隐藏权限。 参数: i 使文件不能删除,改名,写入等操作,仅root可设置该属性。 a 使文件只能增加数据,不能删除,不能修改,仅root可设置该属性。


2.18特殊权限set_uid set_uid权限(S权限),使用户在操作文件的瞬间,临时拥有所有者的身份,只有二进制文件设置该权限才有意义。系统中只有/etc/passwd具有该属性,显示在所有者权限的x位,显示为S或s。 S:无x权限 s:S+x 其实S本身也具有x的权限。


2.19特殊权限set_gid set_gid权限(S权限),使用户在操作文件的瞬间,临时拥有所属组的身份,可作用于文件或目录。该属性显示在所属组权限的x位,显示为S或s。 当给目录设置了set_gid之后,在该目录下创建文件或目录时,所创建的文件或子目录的所属组会跟随父级目录。


2.20特殊权限stick_bit stick_bit权限(t权限),防删除位。作用于目录的权限,在该目录下,谁的文件谁做主,除了所有者和root用户外,其他用户可以更改但无法删除。系统中/tmp/具有该属性。该属性显示在其他人权限的x位,显示为t。**该权限由父级目录决定(对文件或目录的删除权限由父级目录决定)**。


2.21软链接文件 ln -s 源文件 目标文件 设置源文件的软链接文件。 做软链接尽量使用绝对路径


2.22硬链接文件 ln 源文件 目标文件 相当于创建了一个具有相同inode号的文件,源文件与目标文件相互为硬链接。不会占用多余的空间。 只能对文件做硬链接,不支持目录,且做硬链接不能跨分区。


2.23find命令(上) 查找:which、whereis、locate updatedb 可手动更新locate查询数据库 快捷键: Ctrl+C:取消执行。 Ctrl+L:光标定位到第一行。 Ctrl+D:往后一个一个删除。 Ctrl+U:往前全部删除。 Ctrl+E:光标跳到最后面,同End键。 Ctrl+A:光标跳到最开始,同Home键。


2.24find命令(中) find PATH 参数条件 查找符合条件的文件或目录。 参数: -type 后接类型:文件f,目录d,连接文件l,设备文件b或c等。 -name 后接文件名,支持正则。 -mtime modification time,最近的文件内容被更改的时间。 -ctime status time,最近的文件状态被更改的时间。 -atime access time,最近的文件内容被访问的时间。 对于几个时间参数均有下列用法: -mtime -1 指文件被更改时间在一天以内。 -mtime +1 指文件被更改时间在一天以上。 -mmin -60 指文件被更改时间在60min以内。 可跟连续多个判断条件,表示并且;用-o连接,表示或者。 -size [+-] SIZE 查找比SIZE还大(+)或还小(-)的文件。c表示byte,k表示kb(1024bytes),M表示Mb。 stat filename 查看文件信息。


2.25find命令(下) 找文件的硬链接(文件(非目录),inode号大于等于2): ls -i filename,获得文件的inode号。 find / -inum inode号 获得该inode号所指向的所有文件,也就是文件硬链接。 find PATH 参数条件 -exec ls -l {} ; 将find找到的文件放到exec后面命令的{}处执行。{}表示find找到的文件列表。本处指*ls -l {}*显示find找到的文件详细信息。注意;不能省略,其中\表示后面是脱义字符。


2.26文件名后缀 文件名后缀不代表文件类型,权限位前的符号才表示文件类型。相同类型文件可以不具备相同后缀名,后缀名本身没有任何意义,只是为了方便认识。


2.27Linux和windows互传文件 yum install -y lrzsz,需要安装lrzsz包之后,用Xshell或者securecrt才能互传文件。 sz filename 将文件从linux传到windows,弹出对话框选择目标路径。 rz 将文件从windows传到linux上的当前目录下,弹出对话框选择文件。