目录结构
/:根目录,文件的最顶端,/etc、/bin、/dev、/lib、/sbin 应该和根目录放在同一个分区,/usr/local 可以单独放置一个分区
/bin :存放系统所需要的重要命令,ls,cp,mkdir 等,usr/bin 也存放了一些系统命令,这些命令对应的文件都是可执行的,普通用户可以使用大部分的命令
/boot:存放Linux启动时内核及引导系统程序所需要的核心文件,内核文件和grub 系统引导管理器都位于此目录
/dev:存放Linux 系统下的设备文件,如光驱,磁盘等。访问该目录下的某个文件相当于访问某个硬件设备,常用的是挂在光驱
/etc:一般存放系统的配置文件,作为一些软件启动时默认配置文件读取的目录,如
/etc/fstab存放系统分区信息
/home:系统默认的用户主目录
/lib:主要存放动态链接库
/lost+found:存放一些当系统以外崩溃或机器意外关机时产生的文件碎片
/mnt:用于存放挂在储存设备的挂载目录
/proc:存放操作系统运行时的运行信息,如进程信息、内核信息、网络信息,如/etc/cpuinfo存放CPU的相关信息。
/root:Linux超级权限用户的root目录
/sbin:存放一些系统管理的命令,一般只能由超级权限用户root执行。
/tmp:临时文件目录,任何人都可以访问。系统软件或用户运行程序如MySQL时产生的临时文件存放到这里,此目录数据需要定期清除。中号数据不可放置在此目录下,此目录空间不宜过小
/usr:应用程序存放目录,如命令、帮助文档等。安装Linux软件包时默认安装到/usr/local目录下
/var:这个目录的内容经常变动的,/var/log用于存放系统日志,/var/lib存放系统库文件等。
/sys:目录与/proc类似,是一个虚拟的文件系统,主要记录与系统核心相关的信息,入系统当前已经载入的模块信息等。这个目录实际不占磁盘容量。
ls命令
ls-l 以长格式显示目录下的内容列表。输出的信息从左到右依次包括文件名,文件类型、权限模式、硬连接数、所有者、组、文件大小和文件的最后修改时间等
ls-i 显示目录ion号
ls-t 按时间排序
ls-a 显示所有档案及目录
ls-d 只列目录本身,而不显示目录下的内容列表。
ls-k 以KB(千字节)为单位显示文件大小
ls-s 显示文件和目录的大小,以区块为单位
ls-R 递归处理,将指定目录下的所有文件及子目录一并处理
alisa
alias命令用来设置指令的别名。我们可以使用该命令可以将一些较长的命令进行简化。使用alias时,用户必须使用单引号''
将原来的命令引起来,防止特殊字符导致错误。
alias命令的作用只局限于该次登入的操作。若要每次登入都能够使用这些命令别名,则可将相应的alias命令存放到bash的初始化文件/etc/bashrc
中。
实例
[centos@centos home]$ alias xxx=”ls“
[centos@localhost ~]$ xxx1.txt houmu
[centos@localhost ~]$ ls1.txt houmu
alias过之后现在输入xxx就等于ls、xxx是别名 别名= ls(才是真实命令)
[centos@centos home]$ xxx1111 centos vrnyod
/usr/bin/ls
相对路径和绝对路径
绝对路径:是从根开始的路径,它指定到的目录或者文件具有唯一性,意思是不管目前在哪一个目录下面,你只要使用绝对路径就可以定位到系统任何一个目录或文件。
相对路径:就是相对于当前目录,pwd 查看当前目录在哪
绝对路径 vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
绝对路径是指定使用绝对路径可以找到任何一个文件
相对路径:vi /network-scripts/ifcfg-enp0s3
在相对当前的目录进行编译比如我编译vi /etc/sysconfig/network-scripts/ifcfg-enp0s3 这是绝对路径\ 相对路径在network-scripts目录下者只需vi /network-scripts/ifcfg-enp0s3\只需这样就能完成编译
cd
cd 进入目录
cd 如果你什么都不加就会进入到用户的根目录
cd后面只能是目录名,跟文件名会报错
[centos@centos home ~]# cd /etc/passwd-bash: cd: /etc/passwd: 不是目录
cd- 进入上一次所在的目录等于你在~目录下、cd进了/etc下在输入cd-就会回到~目录下相对于目录交换切换
yonhdeMacBook-Pro:etc houmu$ cd -/Users/houmuyonhdeMacBook-Pro:~ houmu$ cd -/etcyonhdeMacBook-Pro:etc houmu$ cd -/Users/houmu
cd~ 进入根目录、同等于 cd什么都不加
yonhdeMacBook-Pro:etc houmu$ cdyonhdeMacBook-Pro:~ houmu$
cd.. 返回上一层目录\比如你在/etc目录下输入了cd..回到上一级目录/目录下等于返回上一层目录
yonhdeMacBook-Pro:etc houmu$ pwd/etcyonhdeMacBook-Pro:etc houmu$ cd ..yonhdeMacBook-Pro:/ houmu$
创建和删除目录mkdir rmdir
mkdir 创建目录
mkdir -p 可以多次创建目录
mkdir -p /tmp/yoni/1/2这样就在连续创建了目录、同rmdir删除也一样可以执行
rmdir 删除目录、目录在空的情况下才能删除比如在yoni目录下有个1下有个2你想删1不可行要把2先删才行、rmdir只能删除目录为空的,及时加上-p也只能删除一系列空的目录、rmdir命令局性比较大、一般不常用
touch 创建一个空白的文件
touch 1111 这样就可以创建一个空白1111文件了,可以创建也可以删除rm 1111 这样就可以删除了前提是空白的
rm(remove) 可以删除文件及非空目录例:rm /tmp/houmu/2/3/1.txt#删除目录下的1.txtrm:是否删除普通文件“/tmp/aminglinux/2/3/1.txt?”#系统默认会提示是否要删除?输入"y"才会删除掉。怎样才能在删除时不提示呢?可以加"-f",需慎用!rm -f /tmp/houmu/2/3/*.txt#加”-f “强制删除/tmp/h/2/3/下的所有.txt文件。
rm -r /tmp/houmu/2/3#加"-r"级联的删除目录及文件,系统默认提示是否删除,需要确认,如果不想多次确认,可用"rm -rf",即可直接删除。rm -rfv /tmp/houmu/2/3#可视化的直接删除级联目录,你会发现系统会先删除子文件再删除子目录,就算删除一个不存在的目录,也不会提示
CP
cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息
-a 或 --archive 此参数的效果和同时指定"-dpR"参数相同
-b 或 --backup 删除、覆盖目的文件先备份,备份的文件或目录亦建立为符号链接,并指向源文件或目录链接的源文件或目录。假如没有加上这个参数,在复制过程中若遇到符号链接,则会直接复制源文件或目录
-f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在
-i 或 --interactive 覆盖文件之前先询问用户
-l 或 --link 对源文件建立硬链接,而非复制文件
-p 或 --preserve 保留源文件或目录的属性,包括所有者、所属组、权限与时间
-P 或 --parents 保留源文件或目录的路径,此路径可以是绝对路径或相对路径,且目的目录必须已经丰在
-r 递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理
-R 或 --recursive 递归处理,将指定目录下的文件及子目录一并处理
-s 或 --symbolic-link 对源文件建立符号链接,而非复制文件
-S <备份字尾字符串> 或 --suffix=<备份字尾字符串> 用"-b"参数备份目的文件后,备份文件的字尾会被加上一个备份字符串。默认的备份字尾符串是符号"~"
-u 或 --update 使用这项参数之后,只会在源文件的修改时间(Modification Time)较目的文件更新时,或是名称相互对应的目的文件并不存在,才复制文件
-v 或 --verbose 显示执行过程
-V <备份方式> 或 --version-control=<备份方式> 指定当备份文件时,备份文件名的命名方式,有以下3种:
1.numbered或t, 将使用备份编号,会在字尾加上~1~字符串,其数字编号依次递增
2.simple或never 将使用简单备份,默认的备份字尾字符串是~, 也可通过-S来指定
3.existing或nil将使用当前方式,程序会先检查是否存在着备份编号,若有则采用备份编号,若无则采用简单备份
-x 或 --one-file-system 复制的文件或目录存放的文件系统,必须与cp指令执行时所处的文件系统相同,否则不复制,亦不处理位于其他分区的文件
环境变量、PATH
which 查看命令和别名、是依赖环境变量等于一个库
PATH是一个变量、要跑命令都在要依赖/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin这里面有才能跑,
如果你要赋值一个命令你就必须要在它这库这里让它认识才行,PATH=$PATH:/tmp这样就在PATH里加了/tmp,不过这样只是单台在PATH里添加/tmp、如果要在PATH里完全添加/tmp进环境变量里需要vi etc/profile,在里面输入PATH=$PATH:/tmp/、编译完后就按ESC在按:wq保存退出就好了
配置完后可以通过echo $PATH查看配置结果。
这样启动一个新窗口也会有/tmp在环境变量里、如果不想要可以重新赋值一下APTH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin这样/tmp就不生效了
mv
mv在目标在目录时候相当于改名
houmu$ mv yonxi/ yonxilyx、再次打ls你就会发现yonxi改成了yonxilyx
你在honmu的xinyue下已有i这文件、你在mv进houmu的xinyue则会问你要不要覆盖文件如下
yonhdeMacBook-Pro:xinyue houmu$ mv l ~houmu/xinyue/override rw-r--r-- root/wheel for /Users/houmu/xinyue/l? (y/n [n])
/usr/bin/mv l ~houmu/xinyue/如果不需要询问你要不要覆盖就可以打绝对路径、这样就不在询问了
mv可以说成搬家吧这个文件放到哪个文件那里、和cp很像
文档查看
cat 查看文件
tac 倒叙查看文件的内容
cat- A 文件里会有$这个表示文件的行尾结束符
cat -n 显示有多少行号
more 不会全部显示出来、一屏一屏的显示出来按空格往下看、当然也可以往上看按ctrl+b
less 和more差不多、可以一屏一屏的看ctrl+b也可以往前ctrl+f往后、也支持方向键查看按q退出
/可以搜索输入你需要找的字符串、
按n往下查找你要找的字符串往下看、
按shift+N往上查看字符串 、
g定位首行、G末行
?字符串:向上搜索"字符串"的功能
head 查看文件的头十行(默认指定)
tail 查看后十行(默认指定)
tail-f 动态的时候看、看日志的时候会用到
所属组
每个文件都有所有者,所属组和其他人,而每一位都是有对应的权限的,这样的设计目的试问了保证隐私和文件的安全,所有者对应的是u,所属组对应的是g,其他人对应的是o,而每个文件针对每一类访问者都有三种基本权限:r:Readable;w:Writable;x:eXcutable,通过对三类访问者设定不同的rwx值就可以控制访问者对文件的权限。
无论是对于文件还是目录,都是有rwx权限,但是,目录的rwx权限却和文件的rwx权限是不一样的,此外对于目录的设置还有一个X权限,rwx权限所对应的数字意义:
--- 000 0
--x 001 1
-w- 010 2
-wx 011 3
r-- 100 4
r-x 101 5
rw- 110 6
rwx 111 7
-rw-r--r-- 1 root wheel 0 5 13 11:22 l
(如上面)所有者可读可写不可执行、所属组只可读、5 13 11:22(日期)
第一个root是所有者、wheel是所有组
现在我把x这个文件修改成所有者可读可写可执行(rwx 777)全都有权限如下
chmod 700 x
drwx------ 4 root wheel 136 5 13 12:37 xinyue
如果想把目录及目录下的子文件批量修改权限、在这里需要用到大R、-R表示这个文件下所有包括目录统一修改权限
chmod -R 770 x
-rwxrwx--- 1 houmu staff 0 5 13 10:42 x
a+x给全部加上x权限、a-x去掉全部x权限如此类推+rwx都一样的
清空权限
chmod 700 [文件名]
等价于 chmod 777
chmod oug+xrw [文件名]
等价于 chmod 000
chmod oug-xrw [文件名]
更改所有者
yonhdeMacBook-Pro:xinyue houmu$ sudo chown root oPassword:yonhdeMacBook-Pro:xinyue houmu$ lso i l x xinyueyonhdeMacBook-Pro:xinyue houmu$ ls -ld odrwxr-xr-x 2 root staff 68 5 13 13:14 o
以上吧dio的所有者原houmu更改成了root
chown root:houmu o 修改所有者为root,所属组为houmu 后面跟文件名
rwxr-xr-x 2 root houmu 68 5 13 13:14 o
umask
umask命令用来设置限制新建文件权限的掩码。当新文件被创建时,其最初的权限由文件创建掩码决定。用户每次注册进入系统时,umask命令都被执行, 并自动设置掩码mode来限制新文件的权限。用户可以通过再次执行umask命令来改变默认值,新的权限将会把旧的覆盖掉。
概念:默认情况下,目录的权限制是755;普通文件的权限制为644.
umask值 目录 文件
022 755 644
027 750 640
002 775 664
006 771 660
007 770 660
如果想要改变umask值,只要使用umask命令设置一个新的值即可:$ umask 002
修改umask的值 输入:umask 024,则可直接修改以后新建的目录和文件的默认权限为:553,642
umask对应的配置文件 umask的配置文件为:/etc/profile 或 ~/.profile 或 ~/.bask_profile,修改这些文件里的umask值,则umask的值会长期不变。
umask命令的作用 在终端输入:umask,可以看到输出为:0022
默认的umask的值为0022 我们在/home目录下分别新建一个目录aaa,一个文件111,输入命令ls-l
ls -ltotal 8-rw-r--r-- 1 houmu staff 0 7 31 00:27 111-rw-r--r-- 1 houmu staff 3022 7 29 02:21 Vagrantfiledrwxr-xr-x 2 houmu staff 68 7 31 00:37 aaa
目录a权限为:755,文件a.c权限为:644
可知:umask的作用是:设置新建文件和目录的默认权限。
1 umask和chmod的关系 umask的值共有4位,分别代表:gid/uid,属主,组权,其它用户权限。一般用的是后3位。 umask设置的是权限“补码”:如上umask值为022,则对应目录权限为7-0=7,7-2=5,7-2=5,即用777减去umask的相应位上的值;而对应的文件权限是用666减去umask的相应位上的值。 chmod设置的就是目录和文件的直接权限。
2 修改umask的值 输入:umask 024,则可直接修改以后新建的目录和文件的默认权限为:553,642。3 umask对应的配置文件 umask的配置文件为:/etc/profile 或 ~/.profile 或 ~/.bask_profile,修改这些文件里的umask值,则umask的值会长期不变。