Linux学习笔记(一)

Linux学习笔记(一)


基础概念:

1. 分区:把大的硬盘分为小的逻辑分区(把大柜子分成几个小柜子)
2. 格式化:写入文件系统(分成小柜子之后,在各个小柜子中打格)
3. 分区设备文件名:给每个分区定义设备文件名(Linux没有图形操作界面,因此每一个分区都需要有一个名字来指代它,这就是设备文件名)
3. 挂载:给每个分区分配挂载点(相当于将分区与盘符联系起来)

Linux命令格式:

[root@localhost ~]# 

root代表当前登录用户,Linux中管理员账号是root

localhost主机名

~当前所在目录(家目录)

#超级用户提示符

$普通用户提示符

一般命令格式:

命令 [选项] [参数]

1. 个别命令使用不遵从此格式

2.  当有多个选项时,可以写在一起

3.  简化选项与完整选项   -a等于--all

1.查询目录中的内容:ls

ls [选项] [文件或目录]
选项:
    -a  显示所有的文件,包括隐藏文件
    -l  显示详细信息
    -d  查看目录属性
    -h  人性化显示文件大小
    -i  显示inode

在显示详细信息的时候,界面上显示如下:
-rw-------. 1 root root  1208 2月  25 03:02 anaconda-ks.cfg

-rw-------. 表示什么呢?
第一个-表示文件的类型(常用的三种类型为:-文件、d目录、l软链接文件)

后面9位每3位为一组

第一组为所有者u、第二组为所属组g、第三组为其他人o

r读、w写、x执行

.表示ACL权限

1代表引用次数,前一个root代表所有者,后一个root代表所属组

1208是文件大小

2.建立目录:mkdir

格式:mkdir [-p] 目录名 
-p是递归创建,一次性创建多层路径时调用

3.切换目录cd

格式:cd 目录

cd ~   进入当前用户的家目录
cd      进入当前用户的家目录
cd -    进入上次目录(window的后退)
cd ..   进入上级目录
cd .    进入当前目录  

相对路径:参照当前所在目录进行查找

如:[root@localhost abc]# cd ../def   ../代表当前所在位置的上一次目录
如:[root@localhost abc]# cd ./def    ./代表当前所在目录

绝对路径:从根目录开始指定,一级一级递归查找。在任何目录下都能进入指定位置

[root@localhost ~]# cd ect
[root@localhost ~]# cd ect/    两者效果都一样(上一个是文件、下一个是目录,其实都一样,Linux中所有的东西都是文件)

4.打印当前目录位置:pwd

print working directory 输出当前所在目录

5.删除空目录:rmdir

rmdir 目录名

只能删除空的文件夹

6.删除文件或目录:rm

rm -rf 文件或目录

-r删除目录  -f强制

7.复制命令:cp

cp [选项] 源文件或者目录 目标目录
选项:
    -r  复制目录

    -p  连带文件属性复制

    -d若源文件是链接文件,则复制链接属性

    -a 相当于 -pdf 完全复制

8.剪切或改名命令:mv

mv 原文件或目录 目标目录 

常见目录的作用:

/根目录
/bin    存放必要的命令
/boot   存放内核以及启动所需的文件等
/dev    存放设备文件,硬盘或挂载的移动设备都会显示在这
/etc    存放系统的配置文件
/home   用户文件的主目录,用户数据存放在其主目录中
/lib    存放必要的运行库
/mnt    存放临时的映射文件系统,我们常把软驱和光驱挂装在这里的floppy和cdrom子目录下
/proc   存放存储进程和系统信息
/root   超级用户的主目录
/sbin   存放系统管理程序
/tmp    存放临时文件的目录
/usr    包含了一般不需要修改的应用程序,命令程序文件、程序库、手册和其他文档
    /usr/bin/系统命令(普通用户)
    /usr/sbin/系统命令(超级用户)
/var    包含系统产生的经常变化的文件

9.链接命令(较难理解)

软链接:ln -s
1.可简单理解为快捷方式,可修改,但原文件删除后不可使用
2.它的权限取决于原文件
3.记录的是原文件的存储位置
4.使用绝对路径

硬链接:ln
1.针对同一文件,不适用于目录
2.是真实记录原文件,包括i节点,存储位置block等。修改原文件或硬链接对方也会改变。
3.相当于一间教室的两个门(其中一个文件被删除另一个文件还能用,就如:一个门被关了,另一个门还能进入)
4.对于文件路径无限制,相对绝对都可

10.文件搜索:locate

locate 文件名
//在后台数据库中按文件名搜索,搜索速度更快

/var/lib/mlocate
#locate命令所搜索的后台数据库

[root@localhost ~]# updatedb   //更新数据库

[root@localhost ~]# vi /ect/updatedb.conf  这是搜索的配置文件

PRUNE_BIND_MOUNTS="yes" 开启搜索限制
PRUNEFS=    搜索时,不搜索的文件系统
PRUNENAMES= 搜索时,不搜索的文件类型
PRUNEPATHS= 搜索时,不搜索的路径

11.搜索命令的命令whereis

whereis 命令名
//搜索命令所在路径及帮助文档所在位置
如:
[root@localhost ~]# whereis ls
ls: /bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz
选项:
    -b  只查找可执行文件
    -m  只查找帮助文件

12.搜索命令的命令which

which 命令名
//搜索命令所在路径,如果有别名会显示别名。

13.PATH环境变量

定义的是系统搜索命令的路径

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

我们之所以可以直接使用系统的命名,如:ls,而不必加路径,就是因为有环境变量。

14.find命令

一、find 搜索范围 [选项] 搜索条件
#搜索条件

如:
find / -name install.log    查找名字为install.log的文件
避免大范围搜索,会非常耗费系统资源
find是在系统当中搜索符合条件的文件名。如果需要匹配,使用通配符匹配,通配符是完全匹配

find /root -iname install.log   不区分大小写
find /root -user root   按照所有者搜索
find /root -nouser  查找没有所有者的文件 

二、Linux中的通配符

*   匹配任意内容
?   匹配任意一个字符
[]  匹配任意一个中括号内的字符

[root@localhost ~]# find /root -name "ab*"

三、find /var/log/ -mtime +10 //查找10天前修改的文件

-10 10天内修改的文件
10  10天当天修改的文件
+10 10天前修改的文件

atime   文件访问时间啊
ctime   改变文件属性
mtime   修改文件内容

四、find 路径 -size 大小  
[root@localhost ~]# find /root -size -25k  //查找文件大小是25KB的文件

-25k        小于25KB的文件
25k     等于25KB的文件
+25k    大于25KB的文件

k是小写,M是大写

五、find 路径 -inum i节点     //查找对应i节点的文件

[root@localhost ~]# find /root -inum 262170

六、find多条件查询:
    -a  与操作
    -o  或操作
find /ect -size +20k -a -size -50k  查找大于20KB小于50KB的文件
利用-a多条件查询,-o

-exec 操作 {} \;  对搜索结果执行后续操作
find /ect -size +20k -a -size -50k -exec ls-lh {} \;

15.grep命令

grep [选项] 字符串 文件名       //在文件中搜索符合条件的字符串

-i  忽略大小写
-v  排除指定字符串

[root@localhost ~]# grep "size" anaconda-ks.cfg    会输出文件中包含size的一行

#part /boot --fstype=ext4 --size=200
part /home --fstype=ext4 --size=2000
#part swap --size=1000
#part / --fstype=ext4 --grow --size=200

[root@localhost ~]# grep -v "size" anaconda-ks.cfg     会输出文件中不包含size的一行

16.帮助命令man

man 命令      //获取指定命令的帮助手册

man ls  //查看ls的帮助

man -f 命令   相当于 whatis 命令   //查看命令拥有那个级别的帮助

man -k 命令   相当于 apropos 命令  //查看和命令相关的所有帮助

man的级别
1、查看命令的帮助
2、查看可被内核调用的函数的帮助
3、查看函数和函数库的帮助
4、查看特殊文件的帮助(主要是/dev目录下面的文件)
5、查看配置文件的帮助
6、查看游戏的帮助
7、查看其他杂项的帮助
8、查看系统管理员可用命令的帮助
9、查看和内核相关文件的帮助

[root@localhost ~]# man -5 password

17.选项帮助

命令 --help   //获取命令选项的帮助
如:
    ls --help

18.shell内部命令帮助

help shell 内部命令 //获取shell内部命令帮助

如:
    whereis cd  //确定是否是shell内部命令
    help cd //获取内部命令帮助

19.详细命令帮助info

info 命令
    -回车 //进入子帮助页面(带有*号标记)
    -u  //进入上层页面
    -n  //进入下一个帮助小节
    -p  //进入上一个帮助小节
    -q  //退出

20.zip格式压缩

zip 压缩文件名 源文件       //压缩文件
zip -r 压缩文件名 源目录    //压缩目录

21.zip格式解压缩

unzip 压缩文件  //解压缩.zip文件

22.gz格式压缩

gzip 源文件                    //压缩为.gz格式的压缩文件,源文件会消失
gzip -c 源文件 > 压缩文件      //压缩为.gz格式,源文件保留
gzip -r 目录                  //压缩目录下所有的子文件,但是不能压缩目录

23.gz格式解压缩

gzip -d 压缩文件        //解压缩文件
gunzip  压缩文件        //解压缩文件

24.bz2格式压缩

bzip2 源文件       //压缩为.bz2格式,不保留源文件
bzip2 -k 源文件        //压缩之后保留源文件
注意:bzip2命令不能压缩目录

25.bz2格式解压缩

bzip2 -d 压缩文件       //解压缩,-k保留压缩文件
bunzip2 压缩文件        //解压缩,-k保留压缩文件

26.打包命令tar

因为上面的压缩有限制,因此将文件先打包
tar -cvf 打包文件名 源文件
选项:
    -c 打包
    -v 显示过程
    -f 指定打包后的文件名
tar -cvf abc.tar abc

27.解打包命令

tar -xvf 打包文件名
选项:
    -x 解打包
    -v 显示过程
    -f 指定打包后的文件名
tar -xvf abc.tar

28.tar.gz压缩格式

其实.tar.gz格式是先打包为.tar格式,再压缩为.gz格式

tar -zcvf 压缩包名.tar.gz源文件
选项:
    -z  //压缩为.tar.gz格式
tar -zxvf   压缩包名.tar.gz
选项:
    -x  //解压缩.tar.gz格式

要解压到指定目录 在最后加 -C : tar -zxvf jp.tar.gz -C /tmp/

降压缩文件放到指定目录,在压缩文件前加绝对路径: tar -zcvf /tmp/jp.tar.gz jp 

只查看压缩文件的内容 : tar -ztvf jp.tar.gz

29.tar.bz2压缩格式

tar -jcvf 压缩包名.tar.bz2 源文件
选项:
    -z  //压缩为.tar.bz2格式

tar -jxvf 压缩包名.tar.bz2
选项:
    -x  //解压缩.tar.bz2格式

30.关机命令shutdown命令

[root@localhost ~]# shutdown [选项] 时间

选项:
    -c  //取消前一个关机命令
    -h  //关机
    -r  //重启

[root@localhost ~]# shutdown now   //直接关机

其他关机命令:
    half
    poweroff    
    init 0
其他重启命令
    reboot
    init 6

系统运行级别:
    0   //关机
    1   //单用户
    2   //不完全多用户,不含NFS服务
    3   //完全多用户
    4   //未分配
    5   //图形界面
    6   //重启

31.退出登录命令

logout

32.查询与自动挂载

mount   //查询系统中已经挂载的设备
mount -a    //依赖配置文件/ect/fstab的内容,自动挂载

挂载命令格式
[root@localhost ~]#    mount [-t 文件系统] [-o 特殊选项] 设备文件名 挂载点

选项:
    -t 文件系统:加入文件系统类型来指定挂载的类型,可以ext3、ext4、iso9660等文件系统
    -o  特殊选项:可以指定挂载的额外选项

33.挂载光盘
[root@localhost ~]# mkdir /mnt/cdrom/ //建立挂载点

[root@localhost ~]# mount -t iso9660 /dev/cdrom /mnt/cdrom/    //挂载光盘

[root@localhost ~]#mount /dev/sr0 /mnt/cdrom   //不加文件系统

34.卸载光盘/U盘命令

[root@localhost ~]# umount 设备文件名或挂载点

[root@localhost ~]# umount /mnt/cdrom

35.挂载U盘

[root@localhost ~]# fdisk -l   //查看U盘设备文件名
[root@localhost ~]# mount -t vfat /dev/sdb1 /mnt/usb/

注意:Linux默认是不支持NTFS文件系统的

36.查看登陆用户信息

[root@localhost ~]# w 
命令输出:
    USER:   登陆的用户名
    TTY:    登陆终端
    FROM:   从哪个IP地址登陆
    LOGIN@: 登陆时间
    IDLE:   用户闲置时间
    JCPU:   指的是该终端连接的所有进程占用的时间。这个时间里并不包括过去的后台作业时间,但包括当前正在运行的后台作业所占用的时间
    PCPU:   是指当前进程所占用的时间
    WHAT:   当前正在运行的命令

37.查看当前登录和过去登陆的用户信息

last
last命令默认是读取/var/log/wtmp文件数据
命令输出
    -用户名
    -登陆终端
    -登陆IP
    -登陆时间
    -退出时间(在线时间)

38.查看所有用户的最后一次登录时间

lastlog
lastlog命令默认是读取/var/log/lastlog文件内容
命令输出
    -用户名
    -登陆终端
    -登陆IP
    -最后一次登录时间

39.查看登陆用户信息

who
命令输出:
    -用户名
    -登陆终端
    -登陆时间(登陆来源IP地址)

40.echo输出命令

echo [选项] 输出内容

选项:
    -e:支持反斜杠控制的字符转换

Shell基础

一、Shell概述

二、脚本执行方式
    脚本编写:
    [root@localhost ~]# vi hello.sh
    #/bin/bash
    #第一个shell程序
    echo -e "\e[1;34m 你好世界 \e[0m"

    脚本执行:
    赋予执行权限,直接运行
        chmod 755 hello.sh
        ./hello.sh
    或:
    通过Bash调用执行脚本
        bash hello.sh

三、Bash的基本功能
    1、命名别名与快捷键
        alias   //查看系统中所有的命令别名
        alias 别名='原命令'  //设定命令别名

        命令生效顺序:
        第一顺位执行用绝对路径或相对路径执行的命令。
        第二顺位执行别名。
        第三顺位执行Bash的内部命令
        第四顺位执行按照$PATH环境变量定义的目录查找顺序找到的第一个命令。

        快捷键:
        Ctrl c 强制终止 
        Ctrl l 清屏 
        Ctrl u 删除到行首 
        Ctrl a 光标移动到行首 
        Ctrl e 移动到行尾 
        Ctrl z 把命令放到后台 (没有终止,仅仅是放入后台执行)
        Ctrl r 在历史记录中搜索

    2、历史命令
        history [选项] [历史命令保存文件]
        选项:
            -c  //清空历史命令
            -w  //把缓存中的历史命令写入历史命令保存~/.bash_history
        历史命令默认会保存1000条,可以在环境变量配置文件/ect/profile中进行修改

    3、输出重定向
        1.标准输入输出
            设备      设备文件名   文件描述符       类型
            键盘      /dev/stdin       0       标准输入
            显示器     /dev/sdtout     1       标准输出
            显示器     /dev/sdterr     2       标准错误输出

        2.输出重定向
            类型                      符合                      作用
            标准输出重定向             命令 > 文件             以覆盖的方式,把命令的正确输出输出到指定的文件或设备中。
                                     命令 >> 文件           以追加的方式,把命令的正确输出输出到指定的文件或设备当中
            标准错误输出重定向          错误命令 2>文件         以覆盖的方式,把命令的错误输出输出到指定的文件或设备当中
                                     错误命令 2>>文件      以追加的方式,把命令的错误输出输出到指定的文件或设备当中
            正确输出和错误输出同时保存  命令 > 文件 2>&1         以覆盖的方式,把正确输出和错误输出都保存到同一个文件当中。
                                    命令 >> 文件 2>&1       以追加的方式,把正确输出和错误输出都保存到同一个文件当中。
                                    命令 &> 文件            以覆盖的方式,把正确输出和错误输出都保存到同一个文件当中。
                                    命令 &>> 文件           以追加的方式,把正确输出和错误输出都保存到同一个文件当中。
                                    命令>>文件1 2>>文件2      把正确的输出追加到文件1中,把错误的输出追加到文件2中

    4、多命令顺序执行
        多命令执行符          格式                  作用
            ;               命令;命令           多个命令顺序执行,命令之间没有任何逻辑联系
            &&              命令1&&命令2        逻辑与,当命令1正确执行,则命令2才会执行。当命令1执行不正确,则命令2不会执行
            ||              命令1||命令2        逻辑或,当命令1执行不正确,则命令2才会执行;当命令1正确执行,则命令2不会执行

        管道符
            命令格式:
        [root@localhost ~]# 命令1 | 命令2  //命令1的正确输出作为命令2的操作对象

        例子:
            [root@localhost ~]# netstat -an | grep "ESTABLISHED" | wc -l
            netstat -an //查找出当前所有的链接
            grep "ESTABLISHED"  //查找出已建立的链接
            wc -l   统计行数

    5、Shell中特殊符号

        通配符         作用
        ?           匹配一个任意字符
        *           匹配0个或任意多个任意字符,即匹配任何内容
        []          匹配中括号中任意一个字符,例如[abc]
        [-]         匹配中括号中任意一个字符,-代表一个范围。例如[a-z]
        [^]         匹配不是中括号内的一个字符   

        其他特殊符号:

        符号              作用
        ''          单引号。在单引号中所有的特殊符号,如“$”和“`”(反引号)都没有特殊含义。 
        ""          双引号。在双引号中特殊符号都没有特殊含义,但是“$”、“`”和“\”是例外,拥有“调用变量的值”、“引用命令”和“转义符”的特殊含义。
        ``          反引号。反引号括起来的内容是系统命令,在Bash中会先执行它。和$()作用一样。不过推荐使用$(),因为反引号非常容易看错
        $()            用来引用系统命令
        #           代表注释
        $			用户调用变量的值,如需要调用变量name的值时,需要用$name的方式得到变量的值。
        \           转义符,跟在\之后的特殊符号将失去特殊含义,变为普通字符。如\$将输出“$”符号,而不当作是变量引用

        例子:
            [root@localhost ~]# echo $(ls -a)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值