2018.5.11课堂笔记

系统目录结构:

tree:直接输入tree命令就会自动以树形形式列出当前的目录的文件和文件夹,不加任何参数,它会列出当前目录下所有深度级别的文件和目录。
tree--hep显示常用选项
man(用来显示一个文件的帮助文档)使用格式为 :man (查看的命令)

一般情况下输入 tree 会显示:

[root@localhost ~]# tree
-bash: tree: 未找到命令
[root@localhost ~]# 

这个时候我们需要安装tree命令,使用yum -y install tree 命令安装

然后就能得到如下所示(节选):

  ├── mail -> spool/mail
    ├── nis
    ├── opt
    ├── preserve
    ├── run -> ../run
    ├── spool
    │   ├── anacron
    │   │   ├── cron.daily
    │   │   ├── cron.monthly
    │   │   └── cron.weekly

 

linux下目录用途:

/:根目录
bin:存放常用命令(普通用户) sbin:也是存放常用命令(root用户)
boot:系统启动文件
dev:liux特有的设备文件 如光盘 硬盘 鼠标键盘等
etc:系统的一些配置文件
home:用户目录文件
lib, lib64:存放系统库文件
ldd  查看命令依赖的库
media:媒体目录,可移动媒体设备的挂载点
mnt:临时挂载目录
opt: 可选目录,常用于存放第三方软件包和数据文件
proc:系统启动进程
run:进程产生的临时文件(重启就会消失)
srv:一些服务产生的文件
sys:系统内核相关文件
tmp:系统临时目录 (所有用户都能拥有读写功能)
usr:用户的文件
var:系统进程产生的临时文件

 

LS命令:

ls命令用来显示目标列表,在日常使用中使用频率很高。在输出信息时可以进行彩色显示,用于区分不同类型文件。

使用格式:ls (选项) (参数)

选项:

-l:文件详细信息列出来
-a:查看目录下所有隐藏文件
-t:以时间顺序排序
-d:仅显示目录名,而不显示目录下的内容列表。显示符号链接文件本身,而不显示其所指向的目录列表
-R:递归显示目录下的所有文件

命令演示:ls -l:

[root@localhost ~]# ls -l
总用量 4
-rw-------. 1 root root 1116 5月  13 19:48 anaconda-ks.cfg

ls -a:

[root@localhost ~]# ls -a
.  ..  anaconda-ks.cfg  .bash_logout  .bash_profile  .bashrc  .cshrc  .tcshrc

ls -t:

[root@localhost /]# ls -t
tmp  etc   dev  var   root  sbin  lib64  home   mnt  srv
run  boot  sys  proc  usr   lib   bin    media  opt

 

 

ls -d:

[root@localhost /]# ls -d
.

ls -R:(显示太多节选一下)

46dd5739b13afce458719954b8dfd9975a23a441-libselinux-python-2.2.2-6.el7-x86_64
4ba62a8c7589d0f1ebf1bb901209fe4f6991ff4d-libsoup-2.48.1-3.el7-x86_64
4efe380f354ccc9d721e1b922d6c967770227b6d-libpwquality-1.2.3-4.el7-x86_64
504b608371202607440582a9ff1bac2e5921c3f0-libsepol-2.1.9-3.el7-x86_64

alias命令:
alias命令用来设置指令的别名。我们可以使用该命令可以将一些较长的命令进行简化。使用alias时,用户必须使用单引号''将原来的命令引起来,防止特殊字符导致错误。
alias命令的作用只局限于该次登入的操作。若要每次登入都能够使用这些命令别名,则可将相应的alias命令存放到bash的初始化文件/etc/bashrc中.

使用格式:alias (选项) (参数)

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'

 

自定义别名
alias xx=想替代的命令
unalias xx 取消别名

 

相对路径:相对你所在位置的路径
绝对路径:从根开始的都是绝对路径

pwd:显示当前目录
cd命令:
cd -:上次所在的目录
cd ~:
cd ..:返回上一级目录
mkdir:创建目录
mkdir -p :级联创建一串目录
rmdir:可以删除空目录(只能删除空目录)
rm:可以删除文件和目录
rm -f:强制删除不询问 (不能删除目录)
rm -r:删除级联目录

cp命令:cp 源 目标
cp -r:拷贝目录 
mv命令:同目录可以改名字 使用格式:mv (源文件或目录) (目标文件或目录)

当目标文件是目录时,其存在与否,执行后的结果是不一样的。如果该目录存在。则会把源文件或目录移动到该目录中,如果该目录不存在,则会把源目录重命名给定的目标文件名。当目标文件是文件时,其存在与否,执行后的结果也是不一样的。如果该文件存在,则会询问是否覆盖。如果该文件不存在,则会把源文件重命名给定的目标文件。

接下来做一个创建删除 拷贝 移动实验:

(创建删除)

[root@localhost /]# mkdir wang
[root@localhost /]# ls
bin   dev  home  lib64  mnt  proc  run   srv  tmp  var
boot  etc  lib   media  opt  root  sbin  sys  usr  wang
[root@localhost /]# rmdir wang
[root@localhost /]# ls
bin   dev  home  lib64  mnt  proc  run   srv  tmp  var
boot  etc  lib   media  opt  root  sbin  sys  usr

(拷贝移动)

[root@localhost /]# cp -r wang lib
[root@localhost /]# ls
bin   dev  home  lib64  mnt  proc  run   srv  tmp  var
boot  etc  lib   media  opt  root  sbin  sys  usr  wang
[root@localhost /]# cd lib
[root@localhost lib]# ls
binfmt.d   games   locale          python2.7         sysctl.d    wang
debug      grub    modprobe.d      rpm               systemd     yum-plugins
dracut     kbd     modules         sendmail          tmpfiles.d
firewalld  kdump   modules-load.d  sendmail.postfix  tuned
firmware   kernel  polkit-1        sse2              udev

[root@localhost lib]# rmdir wang
[root@localhost lib]# ls
binfmt.d   games   locale          python2.7         sysctl.d    yum-plugins
debug      grub    modprobe.d      rpm               systemd
dracut     kbd     modules         sendmail          tmpfiles.d
firewalld  kdump   modules-load.d  sendmail.postfix  tuned
firmware   kernel  polkit-1        sse2              udev
[root@localhost lib]# cd ..
[root@localhost /]# mv wang lib
[root@localhost /]# ls
bin   dev  home  lib64  mnt  proc  run   srv  tmp  var
boot  etc  lib   media  opt  root  sbin  sys  usr
[root@localhost /]# cd lib
[root@localhost lib]# ls
binfmt.d   games   locale          python2.7         sysctl.d    wang
debug      grub    modprobe.d      rpm               systemd     yum-plugins
dracut     kbd     modules         sendmail          tmpfiles.d
firewalld  kdump   modules-load.d  sendmail.postfix  tuned
firmware   kernel  polkit-1        sse2              udev

 

 

[root@localhost ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@localhost ~]# 

 

环境变量 PATH:一个字符串变量,当输入命令的时候LINUX会去查找PATH里面记录的路径。比如在根目录/下可以输入命令ls,在/usr目录下也可以输入ls,但其实ls这个命令根本不在这个两个目录下,事实上当你输入命令的时候LINUX会去/bin,/usr/bin,/sbin等目录下面去找你此时输入的命令,我们使用which命令就能找到命令的路径,如果没有PATH 那我们输入命令就必须输入命令的绝对路径。

Which命令:

which:查看文件所在路径 使用格式:Which xx :

[root@localhost /]# which ls
alias ls='ls --color=auto'
    /usr/bin/ls

 

文档查看命令:
cat命令:是一个比较常用的命令,用于查看一个文件的内容并把它显示在屏幕上。cat后面可以不加任何选项直接跟文件名。

-n:查看文件时把行号也显示在屏幕上,实例命令如下:

[root@localhost ~]# touch wang.txt
[root@localhost ~]# cat -n wang.txt
[root@localhost ~]# vi wang.txt
[root@localhost ~]# cat -n wang.txt
     1    shdhshdhajdhsadnsdjshahdhsahdhahhj
     2    d
     3    s
     4    d
     5    s
     6    d
     7    sf
     8    
     9    
    10    f

-A:显示所有内容,包括特殊字符实例命令如下:

[root@localhost ~]# cat -A wang.txt
shdhshdhajdhsadnsdjshahdhsahdhahhj$
d$
s$
d$
s$
d$
sf$
$
$
f$

tac命令:和cat命令一样(正好是cat的反序写法)也是把文件显示在屏幕上,只不过是先显示最后一行,然后显示倒数第二行,最后再显示第一行。实例如下:

[root@localhost ~]# vi wang.txt
[root@localhost ~]# tac  wang.txt
sddsf
sds
wwew
sf
d
sds

sewedsds
d
s
d
shdhshdhajdhsadnsdjshahdhsahdhahhj

more命令:命令more也是查看一个文件的内容,后面直接跟文件名。当前文件太多不能一屏显示。用cat命令不能看到前面的内容,这时可以使用more命令,当看完一屏后敲击空格键可以继续看下一屏,看完所有内容后就会退出,按ctrl+d可以向上翻屏,按ctrl+f向下翻屏。退出按q键即可。

less命令:命令less和more一样,后面直接跟文件名,但less比more功能要多一些,按空格键可以翻页,按j键可以向下移动,按k键位可以向上移动,在使用more和less查看某个文件时你可以按一下/键,并输入一个字符串,然后回车,这样就能查找到这个字符串了。如果要查找多个字符串可以按n键显示下一个。另外也可以用?键来代替/键来搜索字符串,唯一不同的是/是向下搜索,而?是向上搜索。

命令head:命令head用来显示命令前10行,后面直接跟文件名。如果-n选项,则显示文件的前几行,如下所示:

[root@localhost ~]# head /etc/passwd
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

选项-n后有无空格即可,也可省略字母n-后面直接跟数字如下

[root@localhost ~]# head -3 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin

命令tail:和head命令相似,用于显示文件的最后10行,后面直接跟文件名,如果-n就显示文件的最后几行实例命令如下:

[root@localhost ~]# tail /etc/passwd
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin
systemd-bus-proxy:x:999:997:systemd Bus Proxy:/:/sbin/nologin
systemd-network:x:998:996:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:997:995: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

 

选项-n后有无空格即可,也可省略字母n-后面直接跟数字如下:

[root@localhost ~]# tail -3 /etc/passwd
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

-f选项也很常用,它可以动态显示最后10行,如果文件内容在不断的增加使用-f就十分方便直观。

 

文件的所有者所属组:Linux下的目录或文件,都会有一个所有者和所属组。我们可以通过ls-l命令查看当前文件时共有9列内容。

[root@localhost ~]# ls -l
总用量 8
-rw-------. 1 root root 1116 5月  13 19:48 anaconda-ks.cfg
-rw-r--r--. 1 root root   75 5月  14 01:06 wang.txt

第一列包含文件的类型、所有者、所属组以及其他用户对该文件的权限。d则表示该文件为目录

-则表示当前文件为普通文件

l表示该文件为链接文件

d表示该文件为块设备

c表示该文件为串行端口设备文件

s表示该文件为套接字文件,用于进程间的通信

文件类型后的9位,每三位为一组

r表示可读,w代表可写,x代表可执行,前三位为所有者的权限,中间三位为所属组的权限,后三位为其他非本群用户的权限。

第一列的最后一位“.”表示启用了文件或目录启用了selinux属性,+号则是启用了acl属性。

 

文件或目录权限:
r=4 w=2 x=1
rw-=6
--x=1
rw-r--r--=644

chmod -R :更改目录下所有文件权限
更改所有者和所属组:
chgrp:更改所属组
chown:更改所有者
chown -R: 

接下来做一个授权目录权限演示:

[root@localhost lib]# ls -ll
总用量 36
drwxr-xr-x.  2 root root    6 11月 20 2015 binfmt.d
drwxr-xr-x.  3 root root   59 8月  12 2015 debug
drwxr-xr-x.  4 root root 4096 5月  13 19:44 dracut
drwxr-x---.  6 root root   65 5月  13 19:45 firewalld
drwxr-xr-x. 72 root root 8192 5月  13 19:46 firmware
dr-xr-xr-x.  2 root root    6 8月  12 2015 games
drwxr-xr-x.  3 root root   20 5月  13 19:45 grub
drwxr-xr-x.  6 root root   72 5月  13 19:43 kbd
drwxr-xr-x.  2 root root   54 5月  13 19:45 kdump
drwxr-xr-x.  3 root root   22 11月 20 2015 kernel
drwxr-xr-x.  2 root root   53 5月  13 19:44 locale
drwxr-xr-x.  2 root root  106 5月  13 19:45 modprobe.d
drwxr-xr-x.  3 root root   34 5月  13 19:45 modules
drwxr-xr-x.  2 root root    6 11月 20 2015 modules-load.d
drwxr-xr-x.  2 root root   48 5月  13 19:45 polkit-1
drwxr-xr-x.  3 root root   26 5月  13 19:44 python2.7
drwxr-xr-x.  4 root root 4096 5月  13 19:44 rpm
lrwxrwxrwx.  1 root root   30 5月  13 19:45 sendmail -> /etc/alternatives/mta-sendmail
lrwxrwxrwx.  1 root root   24 5月  13 19:45 sendmail.postfix -> ../sbin/sendmail.postfix
dr-xr-xr-x.  2 root root    6 8月  12 2015 sse2
drwxr-xr-x.  2 root root   49 5月  13 19:45 sysctl.d
drwxr-xr-x. 12 root root 4096 5月  13 19:45 systemd
drwxr-xr-x.  2 root root 4096 5月  13 19:45 tmpfiles.d
drwxr-xr-x. 11 root root 4096 5月  13 19:45 tuned
drwxr-xr-x.  4 root root 4096 5月  13 19:45 udev
drwxr-xr-x.  2 root root    6 5月  13 21:41 wang
drwxr-xr-x.  2 root root   77 12月  3 2015 yum-plugins
[root@localhost lib]# chmod 744 wang
[root@localhost lib]# ll
总用量 36
drwxr-xr-x.  2 root root    6 11月 20 2015 binfmt.d
drwxr-xr-x.  3 root root   59 8月  12 2015 debug
drwxr-xr-x.  4 root root 4096 5月  13 19:44 dracut
drwxr-x---.  6 root root   65 5月  13 19:45 firewalld
drwxr-xr-x. 72 root root 8192 5月  13 19:46 firmware
dr-xr-xr-x.  2 root root    6 8月  12 2015 games
drwxr-xr-x.  3 root root   20 5月  13 19:45 grub
drwxr-xr-x.  6 root root   72 5月  13 19:43 kbd
drwxr-xr-x.  2 root root   54 5月  13 19:45 kdump
drwxr-xr-x.  3 root root   22 11月 20 2015 kernel
drwxr-xr-x.  2 root root   53 5月  13 19:44 locale
drwxr-xr-x.  2 root root  106 5月  13 19:45 modprobe.d
drwxr-xr-x.  3 root root   34 5月  13 19:45 modules
drwxr-xr-x.  2 root root    6 11月 20 2015 modules-load.d
drwxr-xr-x.  2 root root   48 5月  13 19:45 polkit-1
drwxr-xr-x.  3 root root   26 5月  13 19:44 python2.7
drwxr-xr-x.  4 root root 4096 5月  13 19:44 rpm
lrwxrwxrwx.  1 root root   30 5月  13 19:45 sendmail -> /etc/alternatives/mta-sendmail
lrwxrwxrwx.  1 root root   24 5月  13 19:45 sendmail.postfix -> ../sbin/sendmail.postfix
dr-xr-xr-x.  2 root root    6 8月  12 2015 sse2
drwxr-xr-x.  2 root root   49 5月  13 19:45 sysctl.d
drwxr-xr-x. 12 root root 4096 5月  13 19:45 systemd
drwxr-xr-x.  2 root root 4096 5月  13 19:45 tmpfiles.d
drwxr-xr-x. 11 root root 4096 5月  13 19:45 tuned
drwxr-xr-x.  4 root root 4096 5月  13 19:45 udev
drwxr--r--.  2 root root    6 5月  13 21:41 wang
drwxr-xr-x.  2 root root   77 12月  3 2015 yum-plugins

umask:

一般格式

umask [选项] [掩码]

umask的作用

默认情况下的umask值是022(可以用umask命令查看),此时你建立的文件默认权限是644(6-0,6-2,6-2),建立的目录的默认权限是755(7-0,7-2,7-2),它是为了控制默认权限,不要使默认的文件和目录具有全权而设的。

命令格式为:umask xxx 如果要查看umask的值只要在命令输入umask回车即可如下所示:

[root@localhost ~]# umask
0022

若用户建立普通文件,则预设没有可执行权限,只有rw俩个权限。最大值为666

若用户建立目录,则预设所有权限均开放即777.

umask数值代表的含义为以上俩条规则中的默认值需要减掉的权限。

转载于:https://my.oschina.net/u/3856250/blog/1811578

你可能感兴趣的:(操作系统,python,运维)