Linux-基本命令

Who/date命令
在这里插入图片描述
在这里插入图片描述
那么Who i am和whoiam有什么区别呢?
linux中who am i 和whoami 命令是不一样的,简单来说:
who am i :是记录登录shell时的用户,你以什么用户登录就显示什么
whoami:这个才是当前系统的有效用户
举个例子:
我以root用户登录系统,然后执行su - hwangchen 切换到hwangchen用户下,此时who am i 显示的是root用户,而whoami则显示hwangchen用户。

cal命令
在这里插入图片描述
在这里插入图片描述
更正命令
Backspace键可以删除单个字符
ctrl+u撤销命令行的整行输入
中断命令的执行用组合键ctrl+c
运行刚才执行过的命令
用上下光标键选择命令后,回车即可,很方便的,一定要记住!

文件系统

文件系统是

  • 对象及其属性的说明

    • 文件、目录和存储空间
  • 对对象进行操作和管理的软件集合

    • 文件的读、写操作,文件的共享和保护,文件存储空间的管理、文件目录的管理等
  • 文件系统接口

    • 命令接口、图形接口、程序接口

文件系统的布局

  • 超级块
    • 文件系统的关键参数:文件系统类型的标识,块的大小和数量,文件的最大长度等
  • 空闲块
    • 位图或者链表表示空闲空间
  • i节点列表:描述文件信息的列表
  • 根目录
  • 文件和目录区

常见的文件系统类型

  • Dos、Fat16、Fat32、NTFS

  • Ext、Ext2、Ext3、 Ext4

  • JFS(IBM)、XFS(大文件)

  • NFS(网络上与它人共享目录和文件)、Smb、 ISO9660
    ……

  • LVM、RAID

文件系统的逻辑层次结构

  • Unix/Linux文件系统的逻辑层次结构

    • 树型结构的分级文件系统
    • 最高层目录称为根目录,用符号/表示,所有其他目录是他的直接或者间接的分支
      在这里插入图片描述
      重要目录介绍
  • /home目录

    • 默认的系统合法用户的家目录
    • 用户登录后默认位于自己的家目录
    • 例如/home/tom、/home/mary
  • /root目录

    • root用户的家目录
  • 亲自实践验证

    • 用系统合法的普通用户登录,出现shell提示符后,输入命令pwd,看普通用户所在的目录是否为自己的家目录

    • 用root用户登录,出现shell提示符后,输入命令pwd,看root用户所在的目录是否为目录/root,即自己的家目录
      在这里插入图片描述

    • /usr目录

    • /usr/local #本地安装程序目录

    • /usr/share/doc #本地安装程序文档目录

    • /usr/src #程序源码目录

    • /usr/X11R6 # XWindow系统的文件

    • /usr/share/man #手册页目录

    • /usr/bin #二进制文件目录

    • /usr/sbin #二进制文件目录

    • /usr/lib #库文件目录

  • 系统可执行程序(二进制文件)的路径

    • /bin
    • /usr/bin
    • /sbin
    • /usr/sbin
    • /usr/local/bin
    • /usr/local/sbin
  • 一般sbin下的可执行程序是系统管理员才有权限执行的
    在这里插入图片描述

  • /boot目录
    其中存放了多重启动程序(grub、lilo)的文件
    你可以先尝试学习/boot/grub/grub.conf文件的修改(/etc/grub.conf)
    还会存放编译后的内核文件,名字类似vmlinuz-2.6.9*

  • 实际工作中,考虑安全性,会多分一个分区,把/boot分区和根分区放在两个不同的分区中

  • /lib目录

    • 应用程序共同使用的标准功能(函数库),从应用程序中分离出来,存储在系统中,程序编译、链接时,需要的时候会调用这些库文件
      目录/usr/lib中也存放了大量的库文件
  • /etc目录

    • 系统配置文件所在的目录,只有root用户才有权限修改
    • 可以尝试学习下列文件的配置
      • /etc/inittab,
      • /etc/passwd, /etc/group, /etc/motd,
      • /etc/hosts
    • 作为一名专业的Unix/Linux系统管理员,你要经常和这个目录下的文件打交道
  • mnt目录

    • 临时挂载点
    • 通常会在mnt下建立cdrom目录、floppy目录、C目录、D目录,USB目录等,方便管理
    • 现在的很多发行版本已经设置了自动挂载功能,你如果注意观察路径,它们实际也是挂载到了/mnt目录下的一个子目录
  1. mkdir /mnt/UDisk #创建一个挂载点
  2. fdisk -l #查看系统检测到的磁盘分区列表,重点是增加的外设的设备名,例如/dev/sda1
  3. mount /dev/sda1 /mnt/Udisk #挂载
  4. cd /mnt/Udisk #切换到挂载点目录
  5. ls #查看到u盘上的内容
  • 挂载光s盘

    • mount /dev/cdrom /mnt/cdrom
  • 指定字符集,解决乱码问题

    • mount -o iocharset=gb2312 /dev/cdrom /mnt/cdrom
  • 取消挂载使用umount,两种方式

    • umount 挂载设备名
    • umount 挂载点
  • 偶尔会出现,umount一个设备,或者一个挂载点时,提示设备忙(busy),无法卸载

    • 是不是这个挂载点下的程序或者文件正在使用
    • 是不是你在挂载点目录下执行了umount命令,cd到父目录或者其他目录,再执行umount
    • 不是以上问题,尝试命令:umount -f 设备名(挂载点)
  • /dev目录
    系统中的所有硬件在/dev目录中对应一个文件,内核通过写入和读取这些文件,连接到设备驱动程序,从而实现对硬件的访问。

  • /tmp目录

    • 一个临时目录,一些程序在运行时生成的临时文件,在删除前都存放在这里
  • /var目录

    • 系统运行时产生的信息,最常用的是查看此目录下的日志文件
    • /var/spool/mail/下的各用户的邮件队列
    • /var/log/目录下的各种服务的日志文件
  • /lost+found

    • 多用户、多任务情况下,系统从故障中恢复,如果有些文件无法确定原存储位置,就被放在此目录中
  • Linux FHS(Filesystem Hierarchy Standard)

    • 一些发行版本个性化的目录,看随盘发布的用户手册,例如manual文件夹中
  • .目录表示用户的当前目录

  • … 目录表示当前目录的父目录

  • 切换到父目录可以输入命令 cd …

  • 家目录、主目录

    • 用户登录后默认位于的目录,在目录内用户拥有绝对的权限

在这里插入图片描述

  • 按颜色可以区分文件类型

    • 蓝色显示表示是目录
    • 黑色显示表示是普通文件或者硬链接文件
    • 绿色显示表示是可执行文件
    • 淡蓝色表示是软链接文件
    • 红色闪烁(红色背景)表示出错的软链接文件
    • 红色表示压缩文件
  • 文件名以“.”开头的文件或者目录称为隐藏文件或者隐藏目录

  • 多用户环境下,存储各自用户状态的文件通常放在用户家目录下,以隐藏文件的形式存放

  • 程序自己的配置文件,放在一个目录中,不希望用户修改,通常也会以隐藏形式存放

  • pwd

    • print working directory的缩写,打印当前工作目录的绝对路径
    • 任何时候随时随地,你不知道自己在哪里了,都可以使用此命令
  • cd [目录]

    • change directory的缩写,改变当前工作目录
    • cd #默认回到用户家目录
    • cd /usr/local #切换到/usr/local目录下
    • cd … #切换到父目录
    • cd …/X11R6 #切换到父目录的X11R6子目录中
  • ls 显示当前目录下的文件或者文件夹

    • 习惯性的,进入任何一个目录,都需要输入命令ls查看目录下的有哪些文件
    • ls -a #显示所有文件
  • mkdir 文件夹名

    • 在当前目录下建立一个新文件夹
    • 例如 mkdir movie #在当前目录下建立一个文件夹
    • 注意要在有写权限的目录下才能创建成功,比如你自己的家目录下
  • mkdir [选项] 目录

    • make directory的缩写,创建目录
    • p是大家需要掌握的一个选项,用来一次创建多层目录
    • mkdir music #在当前目录下创建一个子目录,命名为music
    • mkdir /usr/local/redOffice #在目录/usr/local下创建一个子目录,命名为redOffice,不论自己当前在什么目录下
    • mkdir -p music/yanni/CD1 #一次创建多层目录
      • 还可以在创建目录的同时指定权限,即使用-m选项,学习文件系统权限时,我们补充上这个选项
  • rmdir 目录

    • remove directory的缩写,只能删除空目录
    • 需要注意的一点就是什么是空目录?
    • 目录下除了隐藏的.和…目录外,其他什么目录和文件(包括隐藏的)都没有。
  • rm 文件名

    • 删除当前目录下的文件
    • 例如rm a.txt
  • rm -r 文件夹名

    • 删除当前目录下的文件夹及子文件夹
    • 例如 rm -r movie
  • rm [选项] 目录或者文件

    • remove的缩写,删除文件或者目录
    • 常用选项-f、-r、-i
    • rm -i readme.txt #删除文件,同时给出确认提示
    • rm -f readme.txt #删除文件,不用确认
    • rm -r /usr/local/music #删除目录不管目录空否
  • 你会发现rm readme.txt删除文件时,不用-i参数,也会给出确认提示?

    • 因为你执行rm时,系统实际上是执行rm -i,做了隐含的默认设置,安全起见!
    • 提示符下输入alias,就可以看到一些系统隐含的命令的定义了,不同发行版本可能设置的不同
  • cat [选项] [文件名]
    concatenate的缩写,连续显示文件内容
    cat readme.txt #显示文件readme.txt的内容
    注意:如果文件内容很多,一屏幕显示不下,只能看到文件的最后一屏幕的显示内容,所以常用于看小文件,内容不超过一屏幕的
    cat file1 file2 file3
    #文件中间用空格分开,可以同时显示多个文件的内容

  • cat -n readme.txt

    • 不光显示文件,还会显示行号
    • cat文件还有创建文件和连接文件的功能,要和shell重定向结合使用
  • 安装rpm格式的软件包

  • 红帽包资源管理器,用于管理rpm格式的程序

  • rpm -qa | grep ***

  • 查询系统是否安装***的rpm包

  • rpm -e ***

  • 删除***程序

  • rpm -ivh ***.rpm

  • 安装 ***程序

  • rpm -Uvh ***.rpm

  • 升级***程序

  • 用rpm安装的程序,可执行文件一般安装在/usr/bin目录下,在任意目录下都可直接输入程序名称运行程序

  • 举例安装一个扫描软件nmap

    • rpm -qa | grep nmap
    • rpm -e nmap
    • rpm -ivh nmap*.rpm
    • nmap 127.0.0.1
    • nmap fedora.unix-center.net

在这里插入图片描述

在这里插入图片描述

  • 安装后,进入安装目录,一般可以看到和安装程序的名字一样的绿色文件,使用命令 ./绿色文件名 就可以执行程序
    也有的可执行程序放在安装目录下的bin目录中,先用cd命令进入bin目录(cd bin),然后再用命令 ./绿色文件名 执行程序
    这样安装后的程序是纯绿色软件,删除程序时,删除整个安装目录即可

  • 举例nmap程序的具体安装步骤如下

    • tar -jxvf nmap-3.93.tar.bz2
    • cd nmap-3.93
    • ./configure - -prefix=/usr/local/namp3.93
    • make
    • make install
    • cd /usr/local/nmap3.93/bin
    • ./nmap localhost
  • 删除namp程序

    • rm -fr /usr/local/namp3.93

温故而知新

  • 文件系统
    • 当前路径、工作路径、相对路径、绝对路径
    • 根据颜色区分出文件类型
  • 文件命名规则
    • 文件系统命令:pwd、cd、mkdir、 rmdir、rm、cat

文件系统命令

  • shell重定向

  • wc、文件名替换

  • head、tail

  • df、du

  • cp 、mv、ln

  • more、less

  • cat 回车,然后输入任意字符串再回车 ,有什么效果?
    在这里插入图片描述

  • Unix/Linux中,shell(命令解释器)默认的输入设备是键盘,输出设备是终端屏幕

  • shell重定向功能可以临时改变命令执行时默认的输入和输出设备

    • 输入重定向: <
    • 输出重定向: > 和 >>
  • 输入重定向<

    • 从文件中获得命令需要的输入数据,适合数据源已经定义好,可重复利用

    • 例如cat < test.txt

      • 显示文件test.txt的内容
    • wc < test.txt

      • 统计文件readme.txt中的行数,单词数和字符数
        在这里插入图片描述
    • 很多命令可以直接处理输入重定向,使用时可以省略重定向符号

  • 输出重定向>

    • 将命令执行后的结果输出/保存到文件中
    • vi编辑器中如何实现?
    • ls > conten.txt
    • 查看文件content.txt的内容,就是ls命令的执行结果
    • 使用输出重定向后,命令的执行结果就不会显示在终端屏幕上了

在这里插入图片描述

  • 输出重定向>>
    • 将命令的执行结果追加输出/保存到文件中
    • 例如
    • ls | wc -l >> content.txt
    • 将当前目录下文件和目录的个数追加到文件content.txt中

在这里插入图片描述

  • 与cat命令结合使用
    • 创建文件
    • cat > file1.txt 回车后,输入文件的内容,新行行首输入结束后按ctrl+d,回到shell提示符下
    • cat file1.txt就可以看到结果了

在这里插入图片描述

  • 利用学习过的命令,实现拷贝文件和合并文件呢?
    在这里插入图片描述
  • wc:利用目前所学的命令,统计系统当前登录用户名及用户数,要求只有一条:不能人工计数,你有几种实现办法?
  • 利用目前所学的命令,统计系统中已经创建的所有用户名及用户数,要求只有一条:不能人工计数,你有几种实现办法?

文件名替换

  • Shell命令中可以使用一些特殊符号,称之为通配符(wildcard)

    • #匹配任意字符串,包括空串
  • ? #匹配单个字符

  • [ list ] #匹配任意list中指定的字符

  • [ ! list ] #匹配任意不在list中指定的字符

  • [c1-c2] #匹配c1-c2中的任意单个字符

  • {string1,string2,…} #匹配其中一个字符串

  • 举例

    • ls file?
    • ls *.cpp
    • ls file[123]
    • ls file[1-5]
    • ls file[!456]
    • ls file{zip,tar}

- head

  • 举例
    • head file1.txt
    • head -3 file1 file2 file3

在这里插入图片描述

tail

  • 举例
    • tail file1
    • tail -3 file1

在这里插入图片描述

  • tail -n 3 file1
  • tail -c 3 file1
  • tail -n 3 file1 file2 file3
  • tail -c 3 file1 file2
  • tail -f /var/log/messages #动态看系统日志!!

在这里插入图片描述

df (disk free)

  • 举例
    • df -hT

    • df -i /dev/sda1(3,5)
      注意:(3,5)是什么意思?
      在这里插入图片描述

    • df -H /dev/sda3
      在这里插入图片描述

du

du命令用来查看目录或文件所占用磁盘空间的大小。常用选项组合为:du -sh

  • du常用的选项:
  • -h:以人类可读的方式显示
  • -a:显示目录占用的磁盘空间大小,还要显示其下目录和文件占用磁盘空间的大小
  • -s:显示目录占用的磁盘空间大小,不要显示其下子目录和文件占用的磁盘空间大小
  • -c:显示几个目录或文件占用的磁盘空间大小,还要统计它们的总和
  • –apparent-size:显示目录或文件自身的大小
  • -l :统计硬链接占用磁盘空间的大小
  • -L:统计符号链接所指向的文件占用的磁盘空间大小
  • du -sh : 查看当前目录总共占的容量。而不单独列出各子项占用的容量
  • du -lh --max-depth=1 : 查看当前目录下一级子文件和子目录占用的磁盘容量。
  • du -sh * | sort -n 统计当前文件夹(目录)大小,并按文件大小排序
  • du -sk filename 查看指定文件大小

练习:

  • 统计文件 /etc/passwd

在这里插入图片描述

  • 统计目录 /boot

在这里插入图片描述

  • 创建一个文件test.txt,里面的内容就是一个数字3,然后统计这个文件的大小。

在这里插入图片描述
一个整数四个字节

补充:
ls

  • ls -l |grep “^-”|wc -l或find ./company -type f | wc -l 查看某文件夹下文件的个数,包括子文件夹里的。

  • ls -lR|grep “^-”|wc -l 查看某文件夹下文件夹的个数,包括子文件夹里的。

  • ls -lR|grep “^d”|wc -l

创建文件和目录
删除文件和目录
复制文件和目录
移动文件和目录

cp

  • cp 命令,主要用来复制文件和目录,同时借助某些选项,还可以实现复制整个目录,以及比对两文件的新旧而予以升级等功能。

  • cp 命令的基本格式如下:
    [root@localhost ~]# cp [选项] 源文件 目标文件

  • 选项:

    • -a:相当于 -d、-p、-r 选项的集合,这几个选项我们一一介绍;
      
    •  -d:如果源文件为软链接(对硬链接无效),则复制出的目标文件也为软链接;
      
    • -i:询问,如果目标文件已经存在,则会询问是否覆盖;
      
    •  -l:把目标文件建立为源文件的硬链接文件,而不是复制源文件;
      
    •  -s:把目标文件建立为源文件的软链接文件,而不是复制源文件;
      
    • -p:复制后目标文件保留源文件的属性(包括所有者、所属组、权限和时间);
      
    • -r:递归复制,用于复制目录;
      
    • -u:若目标文件比源文件有差异,则使用该选项可以更新目标文件,此选项可用于对文件的升级和备用。
      
    • 需要注意的是,源文件可以有多个,但这种情况下,目标文件必须是目录才可以。
      

在这里插入图片描述
在这里插入图片描述

mv

注意:

  • 使用mv和cp 命令时注意权限问题

  • mv和cp接受两个以上参数时,最后一个参数一定是目录!!

  • 上机实践,理解并实现如下操作

    • 复制/移动文件到另一个目录下,名字不变
    • 复制/移动文件到另一个目录下,改名字
    • 复制/移动目录到另一个已经存在的目录下,作为其子目录,名字不变
    • 复制/移动目录到另一个已经存在的目录下,作为其子目录,改名字

ln

  • 用ls -l 看到的文件的详细信息中包含硬链接的个数
  • 硬链接(新名字)
  • 软链接(类似windows中的快捷方式)
  • 当前工作路径是/tmp
  • ln -s /usr/david/REPORT report
  • 执行命令后当前目录下产生淡蓝色软链接文件report

cp、ln、ln -s

  • cp是复制文件,两个文件分别占用物理磁盘,修改一个文件不会影响另一个文件
  • ln是给文件创建新名字,硬链接(新文件)是原文件的一个新属性, 不能跨越文件系统分区建立硬链接
  • 硬链接有防止误删除的作用,删除文件时,只是删除它的一个名字,只有硬链接数是1 时执行删除操作,系统才删除该文件
  • 软链接类似windows中的快捷方式,源文件或者目录被删除后,软链接将失效

more

  • 举例
    • more file
    • ls | more #内容列表很多时,可以分屏显示
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值