/bin :里面装的是用户用的命令,root也能够用 /sbin :里面是只有root能用的命令。 /boot :系统启动的相关文件,里面有系统启动的关键文件,删除后系统没法启动 /dev :linux系统下的设备文件 /etc :配置文件的所在目录 /home :用户的家目录 /lib :存系统库文件的 /lib64 :存系统的库文件 不少命令都会依赖一些库,查看命令依赖关系:ldd /media : 媒介目录。默认是空的。好比插一个U盘会自动放到这个目录下面去 /mnt : 临时挂载目录,默认也是空的。能够把新增的光驱或硬盘挂载这个目录下面 /opt : 空目录 /proc :里面是一些系统进程 /root :root用户的家目录 /run :一些进程产生的临时文件,重启就会消失的文件 /srv :空的,存服务产生的文件 /sys :存系统内核的相关文件 /tmp :系统的临时目录,任何一个用户均可以在这个文件夹下读写删除文件。 /usr :用户的文件, /var :是一个很重要的目录。 常常用的/var/log ,系统日志。
从centOS7系统之后,就再也不区分32位和64位版本,都是64位系统。node
总结:/bin,/sbin,/etc,/var,/usr/local这几个目录是用的最多的。经常使用的。linux
tree命令:以树形的形式显示一个目录下面都有哪些目录和子文件面试
若是系统没有tree命令就用yum下载一下算法
[root@aminglinux-01 /]# yum install -y tree
tree -L 是能够设置显示最大层数。 下面试一下只显示两层目录下的结构shell
[root@aming1 /]# tree -L 2 . ├── bin -> usr/bin ├── boot │ ├── config-3.10.0-514.el7.x86_64 │ ├── grub │ ├── grub2 │ ├── initramfs-0-rescue-b1022dedd3b74686922ac31f3e680f36.img │ ├── initramfs-3.10.0-514.el7.x86_64.img │ ├── initramfs-3.10.0-514.el7.x86_64kdump.img │ ├── initrd-plymouth.img │ ├── symvers-3.10.0-514.el7.x86_64.gz │ ├── System.map-3.10.0-514.el7.x86_64 │ ├── vmlinuz-0-rescue-b1022dedd3b74686922ac31f3e680f36 │ └── vmlinuz-3.10.0-514.el7.x86_64 ├── dev │ ├── agpgart │ ├── autofs │ ├── block │ ├── bsg │ ├── btrfs-control
ls命令是列取目录或者文件的命令vim
能够列取一下系统根目录看一下Linux系统都有哪些目录bash
[root@aming1 /]# ls / bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
ls -l :列取详细信息less
ls -i :列取inodessh
ls -lh :看文件大小更直观ide
ls -la :列出隐藏文件
ls -lta: t是时间的意思,按时间顺序排列
ls -ld :只列出文件夹
在inode使用量前面11位。第一位表示文件类型,后面九位表示文件权限,最后一个(.)是受制于selinux。若是关闭selinux,新建的文件或目录就会没有(.)
[root@aminglinux-01 ~]# ls -l 总用量 4 - rw-------. 1 root root 1422 5月 12 23:06 anaconda-ks.cfg 文件类型 权限 .(selinux) 有几个文件使用了这个inode 全部者 所属组 文件大小 最后改动日期 文件名字
文件名字前面的数字就是inode号,inode号是储存除了文件名之外的全部文件信息,都存在inode之中。
[root@aming1 ~]# ls 123.txt anaconda-ks.cfg test.txt [root@aming1 ~]# ls -i 33599795 123.txt 33574987 anaconda-ks.cfg 33599785 test.txt
[root@aming1 ~]# ls -l 总用量 12 -rw-r--r--. 1 root root 96 4月 25 21:33 123.txt -rw-------. 1 root root 1422 3月 17 19:03 anaconda-ks.cfg -rw-r--r--. 1 root root 1008 4月 26 15:30 test.txt [root@aming1 ~]# ls -lh 总用量 12K -rw-r--r--. 1 root root 96 4月 25 21:33 123.txt -rw-------. 1 root root 1.4K 3月 17 19:03 anaconda-ks.cfg -rw-r--r--. 1 root root 1008 4月 26 15:30 test.txt
[root@aming1 ~]# ls -la 总用量 40 dr-xr-x---. 3 root root 194 4月 26 15:30 . dr-xr-xr-x. 17 root root 224 4月 26 15:29 .. -rw-r--r--. 1 root root 96 4月 25 21:33 123.txt -rw-------. 1 root root 1422 3月 17 19:03 anaconda-ks.cfg -rw-------. 1 root root 2550 5月 11 20:55 .bash_history -rw-r--r--. 1 root root 18 12月 29 2013 .bash_logout -rw-r--r--. 1 root root 176 12月 29 2013 .bash_profile -rw-r--r--. 1 root root 176 12月 29 2013 .bashrc -rw-r--r--. 1 root root 100 12月 29 2013 .cshrc drwx------. 2 root root 48 5月 11 10:42 .ssh -rw-r--r--. 1 root root 129 12月 29 2013 .tcshrc -rw-r--r--. 1 root root 1008 4月 26 15:30 test.txt -rw-------. 1 root root 1609 4月 25 21:33 .viminfo
其中.开头的文件都是隐藏文件或者目录。
还有两个目录 点和点点 。“.”表明是当前目录 “..”表明的是上层目录
[root@aming1 ~]# ls -lt 总用量 12 -rw-r--r--. 1 root root 1008 4月 26 15:30 test.txt -rw-r--r--. 1 root root 96 4月 25 21:33 123.txt -rw-------. 1 root root 1422 3月 17 19:03 anaconda-ks.cfg
ls -ld :只列出文件夹
也能够同时使用 ls -liat
[root@aming1 ~]# ls -liat 总用量 40 33574979 -rw-------. 1 root root 2550 5月 11 20:55 .bash_history 50332748 drwx------. 2 root root 48 5月 11 10:42 .ssh 33599785 -rw-r--r--. 1 root root 1008 4月 26 15:30 test.txt 33574977 dr-xr-x---. 3 root root 194 4月 26 15:30 . 64 dr-xr-xr-x. 17 root root 224 4月 26 15:29 .. 33599796 -rw-------. 1 root root 1609 4月 25 21:33 .viminfo 33599795 -rw-r--r--. 1 root root 96 4月 25 21:33 123.txt 33574987 -rw-------. 1 root root 1422 3月 17 19:03 anaconda-ks.cfg 33975719 -rw-r--r--. 1 root root 18 12月 29 2013 .bash_logout 33975720 -rw-r--r--. 1 root root 176 12月 29 2013 .bash_profile 33975721 -rw-r--r--. 1 root root 176 12月 29 2013 .bashrc 33975722 -rw-r--r--. 1 root root 100 12月 29 2013 .cshrc 33975723 -rw-r--r--. 1 root root 129 12月 29 2013 .tcshrc [root@aming1 ~]#
常见的就是: - 是普通文件
d 文件夹
c : 字符串设备
l : 软链接文件
b : 块设备,好比光盘,磁盘
s : 通讯文件
[root@aminglinux-01 ~]# ls -l /dev/ 总用量 0 crw-rw----. 1 root video 10, 175 8月 4 20:53 agpgart crw-------. 1 root root 10, 235 8月 4 20:53 autofs drwxr-xr-x. 2 root root 140 8月 4 20:53 block drwxr-xr-x. 2 root root 80 8月 4 20:53 bsg crw-------. 1 root root 10, 234 8月 4 20:53 btrfs-control drwxr-xr-x. 3 root root 60 8月 4 20:53 bus lrwxrwxrwx. 1 root root 3 8月 4 20:53 cdrom -> sr0 drwxr-xr-x. 2 root root 3020 8月 4 20:53 char crw-------. 1 root root 5, 1 8月 4 20:53 console srw-rw-rw-. 1 root root 0 8月 4 20:53 log lrwxrwxrwx. 1 root root 11 8月 4 20:53 core -> /proc/kcore
alias 就是 命令的别名,是命令加选线得组合。能够理解给一个很长的命令设置一个简单外号,这样能够方便操做。
alias的做用就是,能够简写命令。
用which来查看命令的别名
[root@aminglinux-01 ~]# which ls alias ls='ls --color=auto' /usr/bin/ls [root@aminglinux-01 ~]# which ll alias ll='ls -l --color=auto' /usr/bin/ls
[root@aming1 ~]# alias alias cp='cp -i' alias egrep='egrep --color=auto' alias fgrep='fgrep --color=auto' alias grep='grep --color=auto' alias l.='ls -d .* --color=auto' alias ll='ls -l --color=auto' alias ls='ls --color=auto' alias mv='mv -i' alias rm='rm -i' alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
[root@aminglinux-01 ~]# aming -bash: aming: 未找到命令 [root@aminglinux-01 ~]# alias aming='ls -lha' [root@aminglinux-01 ~]# aming 总用量 28K dr-xr-x---. 3 root root 147 8月 3 09:24 . dr-xr-xr-x. 17 root root 224 8月 3 21:06 .. -rw-------. 1 root root 1.4K 7月 31 23:06 anaconda-ks.cfg -rw-------. 1 root root 1.4K 8月 4 16:45 .bash_history -rw-r--r--. 1 root root 18 12月 29 2013 .bash_logout -rw-r--r--. 1 root root 176 12月 29 2013 .bash_profile -rw-r--r--. 1 root root 176 12月 29 2013 .bashrc -rw-r--r--. 1 root root 100 12月 29 2013 .cshrc drwx------. 2 root root 80 8月 3 22:17 .ssh -rw-r--r--. 1 root root 129 12月 29 2013 .tcshrc
能够看到没有设置别名的时候直接输入aming是不起做用的。能够用which来看一下
[root@aminglinux-01 ~]# which aming alias aming='ls -lha' /usr/bin/ls
[root@aminglinux-01 ~]# unalias aming [root@aminglinux-01 ~]# aming -bash: aming: 未找到命令
which命令能够查看一个或多个命令、可执行文件的绝对路径。而且会显示命令的别名
which命令是经过遍历PATH环境变量路径的方式来查找文件的,
若是一个命令不存在于PATH中的任何一个路径下,使用which命令是查找不到的。
[root@aminglinux-01 ~]# ls /root/.ssh/authorized_keys /root/.ssh/authorized_keys
无论在那个路径下,都能都能经过绝对路径找到文件。从根“/”开始
任何文件都有绝对路径。
[root@aminglinux-01 ~]# cd /etc/sysconfig/ [root@aminglinux-01 sysconfig]# ls network-scripts/ifcfg-ens33 network-scripts/ifcfg-ens33 [root@aminglinux-01 sysconfig]# pwd /etc/sysconfig
cd 切换目录命令。change directory 的缩写
[root@aminglinux-01 sysconfig]# cd - /root [root@aminglinux-01 ~]# cd - /etc/sysconfig [root@aminglinux-01 sysconfig]# cd - /root [root@aminglinux-01 ~]# cd - /etc/sysconfig [root@aminglinux-01 sysconfig]#
不管在哪一个目录下,输入cd都会回到登录系统的用户的家目录下。
[root@aminglinux-01 sysconfig]# pwd /etc/sysconfig [root@aminglinux-01 sysconfig]# cd [root@aminglinux-01 ~]# pwd /root [root@aminglinux-01 ~]#
一样是直接返回用户的家目录
返回上一层目录
mkdir是make directory的缩写
[root@aming1 ~]# ls 123.txt anaconda-ks.cfg test.txt [root@aming1 ~]# mkdir mulu [root@aming1 ~]# ls 123.txt anaconda-ks.cfg mulu test.txt
正经常使用mkdir建立连续的文件夹是不能够的,以下
[root@aming1 ~]# mkdir 111/222/333/444/555 mkdir: 没法建立目录"111/222/333/444/555": 没有那个文件或目录 [root@aming1 ~]#
加-p 属性便可建立成功
[root@aming1 ~]# mkdir -p 111/222/333/444/555 [root@aming1 ~]# tree . ├── 111 │ └── 222 │ └── 333 │ └── 444 │ └── 555 ├── 123.txt ├── anaconda-ks.cfg ├── mulu └── test.txt 6 directories, 3 files [root@aming1 ~]#
[root@aming1 ~]# mkdir -pv 1111/2222/3333/4444/5555 mkdir: 已建立目录 "1111" mkdir: 已建立目录 "1111/2222" mkdir: 已建立目录 "1111/2222/3333" mkdir: 已建立目录 "1111/2222/3333/4444" mkdir: 已建立目录 "1111/2222/3333/4444/5555" [root@aming1 ~]#
rmdir是remove directory的缩写
[root@aminglinux-01 ~]# rmdir /tmp/aminglinux/ rmdir: 删除 "/tmp/aminglinux/" 失败: 目录非空 [root@aminglinux-01 ~]# touch /tmp/aminglinux/222/aaa/1.txt [root@aminglinux-01 ~]# rmdir /tmp/aminglinux/222/aaa/ rmdir: 删除 "/tmp/aminglinux/222/aaa/" 失败: 目录非空
[root@aminglinux-01 ~]# mkdir -p /tmp/aminglinux/222/yyyy/uuuu/iiii/ [root@aminglinux-01 ~]# rmdir -pv /tmp/aminglinux/222/yyyy/uuuu/iiii/ rmdir: 正在删除目录 "/tmp/aminglinux/222/yyyy/uuuu/iiii/" rmdir: 正在删除目录 "/tmp/aminglinux/222/yyyy/uuuu" rmdir: 正在删除目录 "/tmp/aminglinux/222/yyyy" rmdir: 正在删除目录 "/tmp/aminglinux/222" rmdir: 删除目录 "/tmp/aminglinux/222" 失败: 目录非空
rmdir只能删除目录,并且必须是空目录,要想所有删除只能先删除里面的文件夹后者是文件。-p 比较危险,通常不用。
以前学习的rmdir 删除局限性是比较大的。这回试试rm命令可否顺利删除有文件的目录呢
[root@aminglinux-01 ~]# tree /tmp/aminglinux/ /tmp/aminglinux/ ├── 111 │ └── 222 │ └── 333 └── 222 └── aaa ├── 1.txt └── bbb └── ccc 7 directories, 1 file [root@aminglinux-01 ~]# rm /tmp/aminglinux/222/ rm: 没法删除"/tmp/aminglinux/222/": 是一个目录 [root@aminglinux-01 ~]# rm -r /tmp/aminglinux/222/ rm:是否进入目录"/tmp/aminglinux/222/"? y rm:是否进入目录"/tmp/aminglinux/222/aaa"? y rm:是否进入目录"/tmp/aminglinux/222/aaa/bbb"? y rm:是否删除目录 "/tmp/aminglinux/222/aaa/bbb/ccc"?y rm:是否删除目录 "/tmp/aminglinux/222/aaa/bbb"?y rm:是否删除普通空文件 "/tmp/aminglinux/222/aaa/1.txt"?y rm:是否删除目录 "/tmp/aminglinux/222/aaa"?y rm:是否删除目录 "/tmp/aminglinux/222/"?y [root@aminglinux-01 ~]# tree /tmp/aminglinux/ /tmp/aminglinux/ └── 111 └── 222 └── 333 3 directories, 0 files [root@aminglinux-01 ~]#
能够看到rm 是不能直接删有文件的目录的。可是加上-r指令,就能够能够所有删除啦。
能够看到文件1.txt也是被直接删除了。
若是加上-f命令就会强制性删除,不会问是否删除文件,这样省去若是文件夹或文件过多一直问下去的麻烦。
总结
rm 只删除目录里面的文件
rm -r删除全部目录以及文件
rm -f强制删除文件,不提示是否删除
rm -v显示删除过程
rm -rfv 指令能够叠加使用,效果叠加。
touch命令
用法:touch+目录+想要建立的文件 建立空文件命令
[root@aming1 ~]# ls anaconda-ks.cfg [root@aming1 ~]# touch 123.txt [root@aming1 ~]# ls 123.txt anaconda-ks.cfg
history命令 : 查看历史输入命令记录
!命令
用法:!+命令
感叹号加一个命令的意思是这个命令在命令历史里最近的一次执行的内容。
平时在敲命令的时候能够在任何路径下直接执行。而输入其余 文本会提示找不到该文件,这是为何呢?
[root@aminglinux-01 ~]# echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@aminglinux-01 ~]# which ls alias ls='ls --color=auto' /usr/bin/ls [root@aminglinux-01 ~]# ls /usr/bin/ls /usr/bin/ls [root@aminglinux-01 ~]# cp /usr/bin/ls /tmp/ls2 [root@aminglinux-01 ~]# /tmp/ls2 anaconda-ks.cfg [root@aminglinux-01 ~]#
[root@aminglinux-01 ~]# ls2 -bash: ls2: 未找到命令
结果是并无生效,这是由于ls2所在的/tmp/目录并不在(PATH)环境变量里面,如今把目录加到环境变量里面。
[root@aminglinux-01 ~]# PATH=$PATH:/tmp/ [root@aminglinux-01 ~]# echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/tmp/
[root@aminglinux-01 ~]# ls2 anaconda-ks.cfg [root@aminglinux-01 ~]#
[root@aminglinux-01 ~]# vi /etc/profile ... if [ "$HISTCONTROL" = "ignorespace" ] ; then export HISTCONTROL=ignoreboth else export HISTCONTROL=ignoredups fi export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL # By default, we want umask to get set. This sets it for login shell # Current threshold for system reserved uid/gids is 200 # You could check uidgid reservation validity in # /usr/share/doc/setup-*/uidgid file if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then umask 002 else umask 022 fi for i in /etc/profile.d/*.sh ; do if [ -r "$i" ]; then if [ "${-#*i}" != "$-" ]; then . "$i" else . "$i" >/dev/null fi fi done unset i unset -f pathmunge PATH=$PATH:/tmp/ *** 在最后加上:PATH=$PATH:/tmp/
[root@aminglinux-01 ~]# echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/tmp/ [root@aminglinux-01 ~]#PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin [root@aminglinux-01 ~]# echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin [root@aminglinux-01 ~]# ls2 -bash: ls2: 未找到命令
[root@aming1 ~]# ls 123.txt anaconda-ks.cfg [root@aming1 ~]# cp /etc/passwd 456.txt [root@aming1 ~]# ls 123.txt 456.txt anaconda-ks.cfg
[root@aming1 ~]# cp -r /tmp/aminglinux/ /tmp/aming/ [root@aming1 ~]# tree /tmp/aming /tmp/aming └── 111 └── 222 └── 333 [root@aming1 ~]# tree /tmp/aminglinux/ /tmp/aminglinux/ └── 111 └── 222 └── 333
[root@aming1 ~]# ls 123.txt anaconda-ks.cfg [root@aming1 ~]# cp /etc/passwd 456.txt [root@aming1 ~]# ls 123.txt 456.txt anaconda-ks.cfg [root@aming1 ~]# cp /etc/passwd 456.txt cp:是否覆盖"456.txt"? y [root@aming1 ~]#
通过测试是若是目录都是空的,就不会有提示,若是目录里有文件就会提示是否覆盖。
mv :move的缩写,移动文件命令
同一个目录下移动文件或者目录会给文件或目录更更名字
[root@aminglinux-01 ~]# ls anaconda-ks.cfg [root@aminglinux-01 ~]# mv anaconda-ks.cfg anaconda-ks.cfg.1 [root@aminglinux-01 ~]# ls anaconda-ks.cfg.1
[root@aminglinux-01 tmp]# mv 12.txt /root/2.txt [root@aminglinux-01 tmp]# ls /root/ 2.txt anaconda-ks.cfg.1 [root@aminglinux-01 tmp]#
[root@aming1 ~]# mv 123.txt 111.txt [root@aming1 ~]# mv 111.txt 111.txt mv: "111.txt" 与"111.txt" 为同一文件 [root@aming1 ~]# mv 456.txt 111.txt mv:是否覆盖"111.txt"? y
另外若是移动相同文件夹里面若是有文件,那么是会报错目录非空。没法覆盖。
[root@aming1 ~]# cat 111.txt root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin nobody:x:99:99:Nobody:/:/sbin/nologin systemd-bus-proxy:x:999:997:systemd Bus Proxy:/:/sbin/nologin systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin dbus:x:81:81:System message bus:/:/sbin/nologin polkitd:x:998:996:User for polkitd:/:/sbin/nologin tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin postfix:x:89:89::/var/spool/postfix:/sbin/nologin sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin chrony:x:997:995::/var/lib/chrony:/sbin/nologin [root@aming1 ~]#
[root@aming1 ~]# cat -n 111.txt 1 root:x:0:0:root:/root:/bin/bash 2 bin:x:1:1:bin:/bin:/sbin/nologin 3 daemon:x:2:2:daemon:/sbin:/sbin/nologin 4 adm:x:3:4:adm:/var/adm:/sbin/nologin 5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin 6 sync:x:5:0:sync:/sbin:/bin/sync 7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown 8 halt:x:7:0:halt:/sbin:/sbin/halt 9 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin 10 operator:x:11:0:operator:/root:/sbin/nologin 11 games:x:12:100:games:/usr/games:/sbin/nologin 12 ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin 13 nobody:x:99:99:Nobody:/:/sbin/nologin 14 systemd-bus-proxy:x:999:997:systemd Bus Proxy:/:/sbin/nologin 15 systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin 16 dbus:x:81:81:System message bus:/:/sbin/nologin 17 polkitd:x:998:996:User for polkitd:/:/sbin/nologin 18 tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin 19 postfix:x:89:89::/var/spool/postfix:/sbin/nologin 20 sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin 21 chrony:x:997:995::/var/lib/chrony:/sbin/nologin [root@aming1 ~]#
[root@aming1 ~]# tac 111.txt chrony:x:997:995::/var/lib/chrony:/sbin/nologin sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin postfix:x:89:89::/var/spool/postfix:/sbin/nologin tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin polkitd:x:998:996:User for polkitd:/:/sbin/nologin dbus:x:81:81:System message bus:/:/sbin/nologin systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin systemd-bus-proxy:x:999:997:systemd Bus Proxy:/:/sbin/nologin nobody:x:99:99:Nobody:/:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin mail:x:8:12:mail:/var/spool/mail:/sbin/nologin halt:x:7:0:halt:/sbin:/sbin/halt shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown sync:x:5:0:sync:/sbin:/bin/sync lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin bin:x:1:1:bin:/bin:/sbin/nologin root:x:0:0:root:/root:/bin/bash
[root@aminglinux-01 ~]# more /etc/profile # /etc/profile # System wide environment and startup programs, for login setup # Functions and aliases go in /etc/bashrc # It's NOT a good idea to change this file unless you know what you # are doing. It's much better to create a custom.sh shell script in # /etc/profile.d/ to make custom changes to your environment, as this # will prevent the need for merging in future updates. pathmunge () { case ":${PATH}:" in *:"$1":*) ;; *) if [ "$2" = "after" ] ; then PATH=$PATH:$1 else PATH=$1:$PATH fi esac } --More--(66%)
less的命令的用法包含了more的用法,同时能够用方向键来一行一行的翻页。翻到尾部不会自动退出来。
按q能够退出。
按“g”定位到行首
按“G”定位到行尾
还能够搜索内容
输入:/或者?“单词” 好比/and或?and 搜索下面文件内容全部的and都会高亮显示。 按“n”像下查询查找内容 按“N”从下向上查询查找内容
head 命令查看文件的头十行
tail 命令查看文件的尾十行
tail 和head都是能够输入-n 来指定看几行的。好比只看两行。
[root@aming1 ~]# head -n2 111.txt root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin [root@aming1 ~]#
[root@aming1 ~]# wc -l 111.txt 21 111.txt
[root@aming1 ~]# cat 1.txt 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 [root@aming1 ~]# cat 2.txt 22222222222222222222
[root@aming1 ~]# cat 1.txt >> 2.txt [root@aming1 ~]# cat 2.txt 22222222222222222222 11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
[root@aming1 ~]# ls -l 111.txt -rw-r--r--. 1 root root 1008 5月 13 22:26 111.txt
开头除了第一位是文件类型外,后面九位都是权限位。
在inode使用量前面11位。第一位表示文件类型,后面九位表示文件权限,最后一个(.)是受制于selinux。若是关闭selinux,新建的文件或目录就会没有(.)
在九位权限位置里,前三位表明全部者权限,中间三位是所属组权限,后三位是其余用户权限。
其中rwx
r 读 数字用4表明
w 写 数字用2表明
x 执行 数字用1表明
r+w+x=7 rwxrwxrwx=777
chmod 更改权限 change mode 的缩写
[root@aming1 ~]# ls -l 111.txt -rw-r--r--. 1 root root 1008 5月 13 22:26 111.txt [root@aming1 ~]# chmod 777 111.txt [root@aming1 ~]# ls -l 111.txt -rwxrwxrwx. 1 root root 1008 5月 13 22:26 111.txt
[root@aming1 ~]# ls -l 111.txt -rw-r--r--. 1 root root 1008 5月 13 22:26 111.txt [root@aming1 ~]# chmod 777 111.txt [root@aming1 ~]# ls -l 111.txt -rwxrwxrwx. 1 root root 1008 5月 13 22:26 111.txt [root@aming1 ~]# chmod u=rwx,g=rw,o=r 111.txt [root@aming1 ~]# ls -l 111.txt -rwxrw-r--. 1 root root 1008 5月 13 22:26 111.txt
操做只对目录或文件自己生效。如需目录及子文件子目录所有生效须要加-R
加上-R 命令能够同时更改目录及目录下全部的权限。
[root@aminglinux-01 ~]# chmod 700 /tmp/aming1/ [root@aminglinux-01 ~]# ls -l /tmp/ 总用量 236 -rwxr-xr-x. 1 root root 117656 8月 9 09:19 111 drwx------. 3 root root 17 8月 9 09:23 aming1 drwxr-xr-x. 4 root root 31 8月 9 09:34 aming2 [root@aminglinux-01 ~]# ls -l /tmp/aming1/ 总用量 0 drwxr-xr-x. 3 root root 30 8月 9 09:40 111 [root@aminglinux-01 ~]# chmod -R 777 /tmp/aming1/ [root@aminglinux-01 ~]# ls -l /tmp/aming1/ 总用量 0 drwxrwxrwx. 3 root root 30 8月 9 09:40 111 [root@aminglinux-01 ~]# ls -l /tmp/ 总用量 236 -rwxr-xr-x. 1 root root 117656 8月 9 09:19 111 drwxrwxrwx. 3 root root 17 8月 9 09:23 aming1 drwxr-xr-x. 4 root root 31 8月 9 09:34 aming2
意思是u,g,o同时加上x权限。
a-x,就是所有去掉x权限。
也是能够,u+w,u-x,g+w,g-w等等均可以用。
[root@aminglinux-01 ~]# chmod 700 /tmp/aming1/ [root@aminglinux-01 ~]# ls -l /tmp/ 总用量 236 drwx------. 3 root root 17 8月 9 09:23 aming1 [root@aminglinux-01 ~]# chmod a+x /tmp/aming1/ [root@aminglinux-01 ~]# ls -l /tmp/ 总用量 236 drwx--x--x. 3 root root 17 8月 9 09:23 aming1 [root@aminglinux-01 ~]# chmod a-x /tmp/aming1/ [root@aminglinux-01 ~]# ls -l /tmp/ 总用量 236 drw-------. 3 root root 17 8月 9 09:23 aming1 [root@aminglinux-01 ~]#
chown = change owner 更改全部者
chown 不只能够更改全部者,也能够更改所属组。
cat /etc/passwd 来查看系统用户都有哪些。
用法:chown 全部者:所属组 文件名/目录
下面修改一下新建文件的全部者。
[root@aminglinux-01 ~]# touch /tmp/lunyu.log [root@aminglinux-01 ~]# ls -l /tmp/lunyu.log -rw-r--r--. 1 root root 0 8月 9 21:45 /tmp/lunyu.log [root@aminglinux-01 ~]# chown linyu /tmp/lunyu.log [root@aminglinux-01 ~]# ls -l /tmp/lunyu.log -rw-r--r--. 1 linyu root 0 8月 9 21:45 /tmp/lunyu.log [root@aminglinux-01 ~]#
更改所属组命令:chgrp,用法同上。可是chown既能够更改全部者也能够同时或者单独更改所属组
chown 同时或者单独更改所属组
[root@aminglinux-01 ~]# chown linyu:games /tmp/lunyu.log [root@aminglinux-01 ~]# ls -l /tmp/lunyu.log -rw-r--r--. 1 linyu games 0 8月 9 21:45 /tmp/lunyu.log [root@aminglinux-01 ~]# chown :root /tmp/lunyu.log [root@aminglinux-01 ~]# ls -l /tmp/lunyu.log -rw-r--r--. 1 linyu root 0 8月 9 21:45 /tmp/lunyu.log
一样能够一次性更改目录及子目录和文件的全部者和所属组。
linux在建立一个文件或者目录时候都会有一个默认的权限。这个是怎么来的呢。 运行一下 umask
[root@aminglinux-01 ~]# umask 0022
这个是root用户下的umask值,经过这个值能够肯定文件以及目录默认是什么权限。
首先建立一个目录和文件。而后修改一下啊umask值,在建立一个目录和文件。而后对比一下看有什么联系。
[root@aminglinux-01 ~]# touch 123.txt [root@aminglinux-01 ~]# mkdir aaa [root@aminglinux-01 ~]# ls -l 总用量 8 -rw-r--r--. 1 root root 0 8月 9 22:08 123.txt drwxr-xr-x. 2 root root 6 8月 9 22:08 aaa 在0022时候,文件默认是:644,目录默认是:755 [root@aminglinux-01 ~]# umask 002 [root@aminglinux-01 ~]# umask 0002 [root@aminglinux-01 ~]# touch 456.txt [root@aminglinux-01 ~]# mkdir bbb [root@aminglinux-01 ~]# ls -l 总用量 8 -rw-r--r--. 1 root root 0 8月 9 22:08 123.txt -rw-rw-r--. 1 root root 0 8月 9 22:14 456.txt drwxr-xr-x. 2 root root 6 8月 9 22:08 aaa drwxrwxr-x. 2 root root 6 8月 9 22:14 bbb [root@aminglinux-01 ~]# 在0002时候,文件默认是:664,目录默认是:775
在0022时候,文件默认是:644,目录默认是:755
在0002时候,文件默认是:664,目录默认是:775
首先目录,必须会有x权限,由于想查看这个目录,首先都要进入查看,因此有x权限。因此默认权限最大的话就是7.文件不须要必须有x权限,因此默认6就能够知足。
由此规律得出:目录:777-022=755 777-002=775 文件:666-022=644 666-002=664
这个规律合乎逻辑可是不必定是准确的。
若是咱们设置umask 为 003。按照以前的算法666-003=663。实际上通过测试是664
[root@aminglinux-01 ~]# umask 003 [root@aminglinux-01 ~]# touch 888.txt [root@aminglinux-01 ~]# ls -l 888.txt -rw-rw-r--. 1 root root 0 8月 9 22:27 888.txt [root@aminglinux-01 ~]#
那么以前的算法就是有漏洞的。
正确的算法是:
文件 666(rw-rw-rw-)- 003(-------wx)=rw-rw-r-- 也就是664
目录 777(rwxrwxrwx)- 002(-------w-)=rwxrwxr-x 也就是775