4.Linux命令与文件系统初步

一、查看命令历史及相关信息
        bash查找命令的方式:
            外部命令查找:$PATH
            [[email protected]_basic ~]# echo $PATH
            /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin查找路径是从左往右查找的,
            如果说刚要执行的命令是在/root/bin则要一各路径一个路径去查找,不是会耗费很多时间吗?还有如果命令被反复使用了,
            如果每一个使用都要去查找,速度不是会很慢啊。那如何来提升这个速度呢?
            可以把每一次的查找结果存储下来,以后再执行此命令时,不用去找那个命令了,直接运行即可了。
                第一次执行真正的查找操作;查找结果会缓存;执行同一个命令,则有缓存中直接去获取曾经查找到的路径
                    查看此缓存信息使用hash命令
hash显示所有执行的外部命令(是绝对路径),以及被命中的次数
                    查看命令是内置的还是外部命令
[[email protected]_basic ~]# type hash
hash is a shell builtin
为内置命令,则可以通过help hash来查看帮助信息
[[email protected]_basic ~]# help hash
hash: hash [-lr] [-p pathname] [-dt] [name ...]
    Remember or display program locations.
    记住或显示程序存储位置
    Determine and remember the full pathname of each command NAME.  If
    no arguments are given, information about remembered commands is displayed.
    
    Options:
      -d                forget the remembered location of each NAME 忘记所指定记住的路径
      -l                display in a format that may be reused as input
      -p pathname       use PATHNAME is the full pathname of NAME
      -r                forget all remembered locations  忘记所有记住的路径
      -t                print the remembered location of each NAME, preceding
                each location with the corresponding NAME if multiple
                NAMEs are given
    Arguments:
      NAME              Each NAME is searched for in $PATH and added to the list
                of remembered commands.
    
    Exit Status:
    Returns success unless NAME is not found or an invalid option is given.
                        -d: 清除指定名称的缓存内容
                        -r: 清空全部缓存
[[email protected]_basic ~]# hash
hits    command
   1    /sbin/ifconfig
   1    /usr/bin/man
   3    /bin/ls
   1    /sbin/ip
[[email protected]_basic ~]# hash -d ifconfig
[[email protected]_basic ~]# hash
hits    command
   1    /usr/bin/man
   3    /bin/ls
   1    /sbin/ip
[[email protected]_basic ~]# hash
hits    command
   1    /usr/bin/man
   3    /bin/ls
   1    /sbin/ip
[[email protected]_basic ~]# hash -r
[[email protected]_basic ~]# hash
hash: hash table empty  缓存信息已经为空了,因为刚清空了所有的缓存信息

bash的重要特性之一:命令补全
        根据内建命令或外部命令的查找方式查找以用户指定的字符串开头的命令
            如果用户指定的开头字符串能惟一标识某命令,则tab键可补全此命令
            否则,则两次tab键可显示所有以指定字串开头的命令

Linux文件系统的基础特性:
        1、文件名严格区分大小写
        2、所有文件都位于根目录下,Linux目录一个一颗倒置树 FHS
        3、路径以/做为分隔符
        4、每个文件的名称可使用除/以外任意字符(一般使用比较规范的格式(用字符或数字或下划线等组成)),单个名称最长不能超出255个字符;

bash重要特性之一:路径补全(可避免自己书写出错,也可提高操作效率)
        以用户指定的起始路径进行文件名补全查找

每个绝对路径都可以切割为两部分,文件名和父目录
            基名
                basename  /path/to/somewhere  可以获取其基名
                    结果为somewhere
            目录名
                dirname /path/to/somewhere 可以获取其目录名
                    结果为/path/to
[[email protected]_basic network-scripts]# basename /etc/sysconfig/network-scripts/ifcfg-eth0
ifcfg-eth0
[[email protected]_basic network-scripts]# dirname /etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts

bash的命令历史:几个依赖以环境变量的有
        HISTSIZE
        HISTFILE
        HISTFILESIZE
[[email protected]_basic network-scripts]# echo $HISTSIZE
1000
[[email protected]_basic network-scripts]# echo $HISTFILE
/root/.bash_history        
[[email protected]_basic network-scripts]# echo $HISTFILESIZE
1000
        HISTCONTROL:
            ignoredups: 忽略重复的命令,输入的是连续的相同命令才会为重复,只显示一次
            ignorespace: 忽略以空白字符开头的命令(可以用此值给HISTCONTROL赋值,不让他人看到命令历史中我们输入的命令,可以在输入命令是先输入空白符再输命令)
            ignoreboth: 以上二者同时生效;
[[email protected]_basic ~]# echo $HISTCONTROL
ignoredups
[[email protected]_basic ~]# HISTCONTROL=ignorespace
之后你输入一空格开头的命令后,在命令历史列表中就不会显示那条命令了
    练习:获取下面命令的使用方法
        shutdown, date, hwclock, ntpdate, reboot, halt, who, whoami, which, hash

二、系统关机及日期设置
        reboot: 重启
        halt: 关机
[[email protected]_basic ~]# halt

Broadcast message from [email protected]_basic
        (/dev/pts/1) at 12:19 ...

The system is going down for halt NOW!  执行后,在每个终端都会有此信息接收        
        poweroff: 关机
如何关机,如何重启,如在指定时间上重启

shutdown -h
                 -r     执行之后系统重启
                 -r     Requests that the system be rebooted after it has been brought down.
                 -c     取消系统关闭
                 -c     Cancels a running shutdown.  TIME is not specified with this option, the first argument is MESSAGE.
                 -h     
                 -h     Requests that the system be either halted or powered off after it has been brought down, with the choice as to which left up to the
              system.

时间格式
            TIME may have different formats, the most common is simply the word ’now’ which will bring the system down immediately.  Other valid  for-
       mats are +m, where m is the number of minutes to wait until shutting down and hh:mm which specifies the time on the 24hr clock.
                 now  
                 +m
                 hh:mm        
shutdown - bring the system down

SYNOPSIS
       shutdown [OPTION]...  TIME [MESSAGE]
shutdown -h now 现在马上关机
[[email protected]_basic ~]# shutdown -h +5 过5分钟后关机

Broadcast message from [email protected]_basic
        (/dev/pts/0) at 13:14 ...

The system is going down for halt in 5 minutes!
[[email protected]_basic ~]# shutdown -c 取消系统关机

date: 显示和设置系统日期和时间
    date - print or set the system date and time
        date [options] [+FORMAT]
            %s: %s     seconds since 1970-01-01 00:00:00 UTC 时间戳计时法,从Unix元年(1970-01-01 00:00:00)到此刻所经过的秒数
            %F, %D
            %F     full date; same as %Y-%m-%d
            %D     date; same as %m/%d/%y
            %T     time; same as %H:%M:%S
            %Y     year
            
            %m     month (01..12)
            %d     day of month (e.g, 01)
            %H     hour (00..23)
            %M     minute (00..59)
            %S     second (00..60)
            %u     day of week (1..7); 1 is Monday
设定系统时间
        date [MMDDhhmm[[CC]YY][.ss]]
[[email protected]_basic ~]# date
Sat Dec 20 13:17:18 CST 2014
[[email protected]_basic ~]# date +%F
2014-12-20
[[email protected]_basic ~]# date +%D
12/20/14
[[email protected]_basic ~]# date +%T
13:18:03
[[email protected]_basic ~]# date +%Y-%m-%d
2014-12-20
[[email protected]_basic ~]# date +%H:%M:%S
13:21:00
        Linux有两个时钟:系统时钟和硬件时钟
            硬件时钟:保证系统能精确计时的,系统开机后,会从硬件时钟上读取时间到系统时间
            系统时钟:Linux内核也有工作频率的,可以自己设置
bash上同时执行多条命令,命令间使用‘;‘分号分隔开
        hwclock  查询和设置硬件时钟
        hwclock - query and set the hardware clock (RTC)
            -s: 以硬件为准
            -s, --hctosys
        Set the System Time from the Hardware Clock.

Also set the kernel’s timezone value to the local timezone as indicated by the TZ environment variable and/or  /usr/share/zoneinfo,
        as tzset(3) would interpret them.  The obsolete tz_dsttime field of the kernel’s timezone value is set to DST_NONE. (For details on
        what this field used to mean, see settimeofday(2).)

This is a good option to use in one of the system startup scripts.
            -w:以系统为准
            -w, --systohc
              Set the Hardware Clock to the current System Time.
[[email protected]_basic network-scripts]# hwclock ; date
Sat 20 Dec 2014 08:52:26 AM CST  -0.982617 seconds
Sat Dec 20 08:52:25 CST 2014            
之间是有差别的

ntp: Network Time Protocol   网络时间协议
    centos 7之后不在使用ntp协议了
        通过网络同步系统时间

是C/S架构的: Server, Client
同步到对应时间服务器
    ntpdate server  同步到server上的时间
    ntpdate ipaddr_server
[[email protected]_basic ~]# mtpdate --help
-bash: mtpdate: command not found
[[email protected]_basic ~]# ntpdate --help
ntpdate: unknown option --
ntpdate: unknown option -h
ntpdate: encryption delay lp is unlikely
usage: ntpdate [-46bBdqsuv] [-a key#] [-e delay] [-k file] [-p samples] [-o version#] [-t timeo] [-U username] server ...

三、查看用户登录和Linux下目录结构
    who: 登录至当前系统的所有用户
    who - show who is logged on
[[email protected]_basic ~]# who
root     tty1         2014-12-10 19:34  没有显示ip为本地登录
root     pts/0        2014-12-20 07:39 (192.168.20.93) 在192.168.20.93主机上登录
root     pts/1        2014-12-20 08:38 (192.168.20.93)
    whoami: 当前终端上登录的用户
    whoami - print effective userid
[[email protected]_basic ~]# whoami
root

which: 显示指定命令的完整路径
    which - shows the full path of (shell) commands.
[[email protected]_basic ~]# which ls
alias ls=‘ls --color=auto‘
        /bin/ls
        --skip-alias: 跳过命令别名
--skip-alias
   Ignore option `--read-alias′, if any. This is useful to explicity search for normal binaries, while using the `--read-alias′ option in
   an alias or function for which.
[[email protected]_basic ~]# which --skip-alias ls
/bin/ls
           
FHS: 文件系统层次结构标准(Filesystem Hierarchy Standard)
    /bin, /sbin: 系统自身启动和运行时可能会用到的核心二进制命令
    /lib: 共享库文件和内核模块
    /lib64:
    /etc: 存放配置文件
    /etc : Host-specific system configuration
    /usr:
        /usr/bin, /usr/sbin: 系统运行中,用户为完成某些操作可能用到的命令
        /usr/lib, /usr/lib64: 库文件  非核心命令依赖的共享库
        /usr/share/man, /usr/share/doc  帮助文档
    /dev: devices的简写,所有设备的设备文件都存放于此处;设备文件通常也称为特殊文件(仅有元数据,而没有数据)
    /dev : Device files
    /proc: 伪文件系统,内核和进程信息的虚拟文件系统接口
    /proc : Kernel and process information virtual filesystem
    /sys: 伪文件系统,硬件设备信息虚拟文件系统接口
    /sys : Kernel and system information virtual filesystem
    /boot: 系统引导加载时用到的静态文件,内核(vmlinuz)和ramdisk(CentOS5:initrd, CentOS6:initramfs), 引导加载器grub(bootloader(X86机器才会常见))
    /boot : Static files of the boot loader

/home/USERNAME
    /home : User home directories (optional)
    /root

/mnt  用来临时挂载的目录的
    /media

/srv: 服务所用到的数据
    /srv : Data for services provided by this system

/tmp: 临时文件存储位置

/var: 经常发生变化的文件
        /var/log  存放日志的目录

/misc: 备用目录

/opt: 第三方应用程序的安装目录
    /usr/local:

/selinux
        Security Enhanced Linux: 安全加强的Linux
查看当前selinux的状态        
[[email protected]_basic ~]# getenforce
Permissive
selinux的配置文件,/etc/sysconfig/selinux
修改改可以通过setenforce Value

应用程序的组成部分:
        二进制程序
        库文件
        配置文件:定义程序的特性的
        帮助文件

文件管理类命令:
    文件类型
    文件信息查看
    用户和权限
    bash的一些特性
        管道和重定向
        文件文本编辑器
        正则表达式
        文件查找
[[email protected]inux_basic ~]# ls -l
total 3936
-rw-------. 1 root root    1248 Dec  5 23:44 anaconda-ks.cfg  总共7部分
-r--r--r--. 1 root root  186584 Dec  6 01:46 bind-utils-9.8.2-0.17.rc1.el6_4.6.x86_64.rpm
-rw-r--r--. 1 root root       0 Dec 11 12:03 blank
查看ls属于那些章节中
[[email protected]_basic ~]# whatis ls
ls                   (1)  - list directory contents
ls                   (1p)  - list directory contents
[[email protected]_basic ~]# ls /usr/share/man/  我们发现有1p
bg  da  el  es  fr  hu  it  ko     man1   man1x  man2x  man3p  man4   man5   man6   man7   man8   man9   mann  overrides  pt     ro  sk  sv  zh_CN
cs  de  en  fi  hr  id  ja  man0p  man1p  man2   man3   man3x  man4x  man5x  man6x  man7x  man8x  man9x  nl    pl         pt_BR  ru  sl  tr  zh
[[email protected]_basic ~]# man ls
LS(1)                            User Commands                           LS(1)

NAME
       ls - list directory contents
       。。。。。。。。。。
-l     use a long listing format
。。。。。。。。。。
[[email protected]_basic ~]# man 1p ls
LS(1P)                     POSIX Programmer’s Manual                    LS(1P)
。。。。。。。。。。。。。。。
-l     (The  letter ell.) Do not follow symbolic links named as operands unless the -H or -L options are specified. Write out in long for-
              mat (see the STDOUT section). When -l (ell) is specified, -1 (one) shall be assumed.
              。。。。。。。。。。。。。。。
 If the -l option is specified without -L, the following information shall be written:

"%s %u %s %s %u %s %s\n", <file mode>, <number of links>,
                  <owner name>, <group name>, <number of bytes in the file>,
                  <date and time>, <pathname>    总共7部分信息,"%s %u %s %s %u %s %s\n"和后面的格式显示是对应的,详细解释可以自己去man
    。。。。。。。。。。。。。  
    文件类型:
      -      Regular file.
        普通文件:-, f
        d      Directory.
        目录文件: d
        l (ell)
              Symbolic link.
        符号链接文件:l
        设备文件:
          c      Character special file.
            字符设备:c (线性设备,只能通过顺序访问的)  键盘,鼠标
             b      Block special file.
            块设备:b (随机设备,可以随机访问)   硬盘
        p      FIFO.
        命名管道:p
        套接字文件:s (unix sock文件)
        
    查看文件内容的类型:
        file /path/to/somefile
[[email protected]_basic network-scripts]# file /dev/disk/
/dev/disk/: directory
[[email protected]_basic network-scripts]# file ifcfg-eth0
ifcfg-eth0: ASCII text

时间: 2024-10-06 01:46:27

4.Linux命令与文件系统初步的相关文章

Linux命令与文件系统

我们开始还是先对前面的一张做个简单的总结,上章我们了解了Linux命令的分类,及各个分类中最基础的命令.今天我们就来详细的了解下这些命令,在了解这些命令的开始我们先要引入一个概念(文件系统),那什么是文件系统呢?文件系统是操作系统管理文件的一个软件.我们都知道"Linux下一切皆文件!"那操作系统是怎么管理文件的呢?操作系统就是通过文件系统来管理文件的.文件系统有很多种,在windows下有fat,NFS.在Linux下有ext2.ext3,ext4.现在主流的是ext4.在这里我简单

linux命令之文件系统权限操作常用命令

1.   umask:设置权限掩码 语法:umask [参数] 命令说明:umask可以单独使用,可以设置目录与文件的默认权限,默认权限掩码是022,所以默认目录权限是777-022=755,读权限是4,写权限是2,执行权限是1,第一个7是所有者的权限,第二个5是所属组的权限,第三个是其他人的权限,而新建的文件就是666-022=644, 参数说明:你要查看或设置的文件或目录的权限掩码 命令示例:单独使用umask显示为0022,第一个数表示八进制数,可忽略不计,但可以自行设置 如:umask

Linux命令初步了解

知识点: 1.虚拟控制台: 在系统启动时直接进入字符工作方式后,系统提供了多个(默认为6个)虚拟控制台.每个虚拟控制台可以相互独立使用,互不影响. 可以使用Alt+F1~Alt+F6进行多个虚拟控制台之间的切换. 2.Linux的系统运行级别 0-系统关机状态 1-单用户工作状态,用于维护 2-多用户模式(NFS未启动) 3-多用户模式,字符界面 4-系统未使用,留给用户自己定义 5-多用户模式,并且在系统启动后运行X Windows,给出一个图形化的登录窗口 6-所有进程被终止,重新启动 查看

Linux命令 -磁盘和文件系统类

声明:本文所涉及到的Linux命令均为最常见的用法,未列举之参数,自行查阅man 1.df 磁盘容量 -h 以人类易读方式展示(GB.KB)等 示例: df -h /usr 2.du 文件或目录的容量 -s 指定文件夹的容量,无需递归子文件夹大小 示例 du -hs ./Downloads

《Linux命令应用大词典》一书,讲述729个命令,1935个例子

<Linux命令应用大词典>涵盖了Linux系统常用的命令,内容涉及基础入门.系统管理.网络管理.网络安全.服务器配置和程序编译等多方面,共计729个命令,1935个例子,内容非常全面.每一个命令都讲述了它的功能描述.命令语法.选项含义和命令实例,内容清晰明了,正所谓一书在手,万事不愁. <Linux命令应用大词典>可以作为读者学习Linux系统的参考书.案头书,遇到不懂的命令或命令选项一查即可:适合Linux爱好者.Linux系统管理工程师.培训机构教师和学生以及高等院校计算机专

linux 命令总结(转载)

linux 命令总结(转载) 1. 永久更改ip ifconfig eth0 新ip 然后编辑/etc/sysconfig/network-scripts/ifcfg-eth0,修改ip 2.从Linux上远程显示Windows桌面 安装rdesktop包 3. 手动添加默认网关 以root用户, 执行: route add default gw 网关的IP 想更改网关 vi /etc/sysconfig/network-scripts/ifcfg-eth0 更改GATEWAY  /etc/in

linux命令格式,获取帮助及其目录结构简要理解

我们都知道,一台计算机要是没通电,和一堆废铁没什么区别.那么,通电开机进入系统后,会进入交互界面,等待用户操作,人与计算机交互界面有两种: GUI:图形用户接口.如我们平时使用的Windows  ,linux的X window,有KDE和GOME. CLI:命令行接口,使用的SHELL类型有bash ,csh,tcshell,zshell等. 例如:[[email protected] ~]# commandbin root:当前登录的用户名. dxlcentOS:当前主机的主机名.@是一个分隔

9个使用时必须时刻警惕的Linux命令

Linux shell/terminal命令非常强大,即使一个简单的命令就可能导致文件夹.文件或者路径文件夹等被删除.为了避免这样的事情发生,我们应该时刻注意PHP代码&命令,今天为大家带来9个必须时刻警惕的Linux命令&代码. Linux shell/terminal 命令非常强大,即使一个简单的命令就可能导致文件夹.文件或者路径文件夹等被删除. 在一些情况下,Linux 甚至不会询问你而直接执行命令,导致你丢失各种数据信息. 一般来说在 Web 上推荐新的 Linux 用户执行这些命

Linux命令进阶

配置文件 .bashrc/.zshrc 保存个人的一些个性化设置,如命令别名.路径等.一般会在.bash_profile文件中显式调用.bashrc.登陆linux启动bash时首先会去读取~/.bash_profile文件,这样~/.bashrc也就得到执行了,你的个性化设置也就生效了 系统管理员对用户和用户组管理文件 /etc/passwd /etc/shadow /etc/group /etc/gshadow 文件目录操作 cat 三大主要功能 1.一次显示整个文件:cat filenam