Linux达人养成计划I 笔记

    xiaoxiao2021-03-25  83

    一.命令的基本格式

    命令提示符格式

    root@localhost ~

    root :当前登陆用户 localhost: 主机名. ~: 家目录, home下的二级目录 \# :当前登陆超级用户

    命令格式

    命令 [选项] [参数]

    例如:

    ls -l ls -lh

    显示格式:

    前10位表示什么啊:第一位表示文件类型, 后面9位表示用户和组

    .所有者u 所属组g 其他人o 的权限 用 r读 w写 x执行 标示 后面部分 ACL权限 引用计数 最后一次修改时间

    ls -a 显示包括隐藏文件(什么意义 告诉你系统文件,别轻易改) ls -d 只显示目录信息,而不是文件 ls -h 人性化显示,后面跟文件大小 ls -i 显示文件id号

    二.文件处理命令

    目录处理命令

    创建目录

    mkdir [option] [directory] -p 递归创建 eg: mkdir -p japan/cangls

    cd [directory]

    cd ~ 到家目录 cd - 返回上次目录 cd .. 到上一层目录

    (福利:Ctrl +L 清屏快捷键) (概念: .相对路径 .绝对路径)

    pwd 打印当期目录

    删除目录

    rmdir 只删除空目录

    rm -f [目录名]

    拷贝目录

    cp -r japan/ temp/

    (虚拟机时间不准 没有电池)

    cp -a [s] [t] 所有属性一起复制 ll 是 ls -l 缩写,可以设置

    剪切目录

    不需要加 -r 也是改名命令 mv [s] [t] linux开发的问题

    linux根目录讲解:

    bin的几个位置:

    根目录下的bin和sbin,usr目录下的bin和sbin 这四个目录都是用来保存系统命令的,区别在sbin只有root才能执行.

    boot 启动目录 启动数据 dev 设备目录 etc 配置文件 lib 函数库的保存位置

    media mnt misc: empty directoty, 挂载外接盘符,mnt就可以,老的linux没有其他两个空目录

    pro sys 内存中的数据不应该操作 usr 系统软件资源目录,比如

    usr/bin/系统命令(普通用户) usr/sbin/系统命令(超级用户)

    var:系统可变文档的目录

    linux是一个严谨系统, 别随便改.

    文件处理命令

    链接命令

    链接命令

    ln [源文件] [目标文件] ----hard link ln -s [源文件] [目标文件] ----soft link

    英文link

    硬链接:一个文件不同接入点

    1.拥有相同的i节点和存储的block块,可以看成是是同一个文件. 2.可通过i节点识别 3.不能跨分区 4.不能针对目录使用

    并不建议创建硬链接

    软连接:

    类似windows快捷方式

    软连接拥有自己的i节点合Block块,但是数据只保存源文件名和i节点号,并没有实际的文件数据

    .lrwxrwxrwx中 l是软连接的意思,而且软连接的权限一般都是这样的.

    .修改任意文件,另一个都改变

    .删除源文件,软连接不能使用

    command: touch [fire]: create a file ll -i : list all info. and node id of the file

    三.文件搜索命令

    文件搜索命令 lcoate 速度快 locate [文件名]

    在后台数据库按文件名搜索,优点搜索速度快

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

    updatedb,因为不是实时的

    缺点只能按照文件名搜索

    etc/updatedb.conf 里面定义了筛选规则. 比如tmp目录下创建文件不会被搜索到.whereis 和which也遵循这个筛选规则.

    命令搜索命令

    whereis与which

    whereis [选项] [命令名]

    查看命令命令执行目录和帮助文档所在位置

    -b 只看命令位置 m 只看文档位置

    which [选项] [命令名] ,可以看到命令别名

    cd 命令不能被找到,是shell命令.

    查看PATH 环境变量, echo PATH

    文件搜索命令 find

    精确搜索find / -name install.log

    通配符: a[cd] *[cd] ?

    []–括号内的任意一个 ?–任意一个 *任意多个

    find /root -name install.log find /root -iname install.log 不区分大小写 find /root -user root 搜索固定所有者的文件 find /root -nouser 搜索指定目录下没有所有者的文件 即垃圾文件,但是外来文件和内核产生文件没有所有者 find /var/log/ -mtime(modify) +10 -10 十天内修改的文件 10 10天当天修改文件 +10 10天前修改文件

    atime 文件访问时间

    ctime 改变文件属性

    mtime 改变文件

    find . -size 25 按照文件大小搜索

    +25k 25k -25k

    find . -inum 2131132 按节点搜索 ls -i 相反

    find /etc +20k -a -size -50 -a and -o or find /etc +20k -a -size -50 -exec ls -lh {} \;

    命令2处理命令1的结果

    字符串搜索命令 grep

    grep [选项] 字符串 文件名

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

    find命令与grep命令的区别

    grep 包含匹配 , find 是完全匹配

    四.帮助命令

    帮助命令man man [命令名] /-g 可以查询相关命令.

    man -f [comment] 配置文件帮助等级 相当于what is man 1 ls man 1 null apropos passwd 查处所有含有关键字的命令信息

    其他帮助命令

    1.获取选项帮助

    ls --help

    获取shell命令帮助

    help shell 内部命令

    whereis 能够找到位置是后来安装的,而像cd这样的事找不到的,是系统自带的.

    所以用 help cd 才可以

    3.info 更详细的命令 太麻烦,信息杂

    五压缩和解压缩命令

    .zip .gz .bz2

    zip格式

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

    gz格式

    .tar.gz 不保留源文件 gzip 源文件 gzip -c 源文件 > 压缩文件 保留源文件 gzip -r 目录 压缩目录下面所有子文件 //解压缩文件 gzip -s 压缩包 gunzip 压缩文件 //解压缩目录 gunzip -r 压缩文件

    .bz2 不能解压缩目录 加-k保留源文件

    // 压缩 bzip2 压缩文件 //解压缩 bunzip 或bzip -d 压缩文件

    tar.bz2 先打包再压缩

    tar -cvf 打包文件源文件 -c 打包 -v 显示所有文件 -f 打包后文件名

    再 gzip 打包文件

    bzip2 打包文件

    解压缩

    gzip -d 压缩文件 tar -xvf 包名

    麻烦直接 tar就可以做

    tar -zcvf 压缩包.tar.gz [后面可跟多个文件]

    选项 -z : 压缩成 ..

    tar -zxvf 压缩包名

    选项 -x 解压缩

    tar -jcvf 压缩包.tar.bz2

    选项 -c : 压缩成 ..

    tar -jxvf 压缩包名.tar.bz2 -C 指定解压缩位置

    选项 -x 解压缩

    tar -ztvf 压缩包.tar.gz 查看而不解压

    六关机和重启命令

    shutdown -r 05:30 //5:30 关机 shutdown -c 取消前一个关机命令 shutdown -h 关机 shutdown -r 重启 shutdown更安全,会保存一些状态.

    不安全命令:

    halt poweroff init 0

    重启命令

    reboot init 6 //不要用了

    系统运行级别:

    0 关机 1 单用户 2 不完全用户,不包含NFS服务 3 完全多用户 4 未分配 5 图形界面 6 重启

    runlevel 显示运行级别,之前运行级别与现在运行级别,以启动就进入钱一个级别是N(null)

    远程时每次要退出.

    七其他常用命令

    挂在命令

    mount mount -a // etc/fstab 里面保存开机自动挂载部分挂载一遍. mount [-t 文件系统] [-o 特殊选项] -t ext3 ext4 iso9660(光盘和U盘)

    -o 特殊选项(读写权限 exec(是否挂在分区的可执行文件可执行)) 用户登陆查看和用户交互命令

    mount -o remount,noexec /home/ 取消home分区的执行文件的权限. mount -o remount,exec /home/ 恢复home分区的执行文件的权限. 把boot分区搞成这样就起不来了

    挂载光盘

    mkdir /mnt/cdrom/ mount -t iso9660 /dev/sr0 /mnt.cdrom/ mount /dev/sr0 /mnt/cdrom/

    卸载光盘

    1.退出光盘目录

    unmount /mnt/cdrom/

    如果强制换盘,linux容易崩溃

    u盘名字 sdb1

    fdisk -l 查看u盘设备文件名 mount -t vfat /dev/sdb1 /mnt/usb/

    挂载NTFS分区不太好

    linux不支持NTFS系统, ntfs-3g 安装后默认支持,只能只读

    用户登陆查看命令

    w

    JCPU 所有CPU耗费 PCPU当前CPU耗费

    who last 查询当前登陆和以前登陆用户的信息 存在 /var/log/wtmp中 lastlog 用户名 登陆终端登陆IP 最后一次登陆时间

    shell 基础

    shell概述

    linux 标准 Bash bourne 和 c 两种

    echo $变量名 sh // 切换到另一个shell

    操作终端可以接连调用好几个层级.

    执行方式: 命令后加分号

    echo -e "" alias 显示别名 alias ls= "ls --color=never" 设置命令别名 alias vi ='vim'

    永久生效,配置环境变量配置文件

    vim ~/.bashrc write the alias set source ~/.bashrc unalias vi 暂时删除命令别名

    命令生效顺序:

    绝对路径或相对路径执行的命令

    执行别名

    Bash内部命令

    按照Path环境变量定义的目录下的查找顺序第一个找到的命令

    常用快捷键:

    ctrl+c 强制终止当前命令 ctrl+l 清屏 ctrl+a 光标移动到命令的行首 ctrl+e光标移动到命令的行尾 ctrl+u从光标位置删除到行尾 ctrl+z把命令放入后台 ctrl+r在历史命令中搜索

    历史命令:排错,记录hack

    history -w 缓存历史存入文件 -c 清空所有命令 !n 重复执行第n条命令 !! 重复执行上一条命令 !字符串 调用最后一个以字符串开始的命令

    命令补全和文件补全

    输出重定向:

    1.标准输入输出

    键盘 /dev/stdin 标准输入 0 (文件描述符) 显示器 /dev/stdout 标准输出 1 (文件描述符) 显示器: /dev/stderr 标准错误输出 2(文件描述符)

    2.输出重定向

    标准输出重定向

    命令 > 文件 以覆盖的方式把输出输出到指定文件或设备当中 命令 >>文件 以追加的方式把命令正确输出输出到指定文件或设备中

    标准错误输出重定向()注意大于号左右两边都没有空格,你要知道命令是会报错的,所以很少用.

    错误命令 2>文件 错误命令 2>>文件

    标准输出重定向复合:

    命令 > 文件 2>&1 正确的写入文件 错误2的写入正确&1也写入文件

    命令 >> 文件 2>&1 命令 &>文件 命令 &>>文件 命令>>文件1 2>>文件2 // 很有用

    输入重定向(很少见,一般软件安装打补丁时候)

    wc [选项] [文件名]

    wc -c 统计字节数

    wc -w 统计单词数

    wc -l 统计行数

    输出

    几行几个单词几个字符

    wc < 文件名 统计文件的几行几个单词几个字符, 不加小于号也可以 wc << 输入结束标记(几乎没用过) 管道符号

    多命令顺序执行

    ; 多个命令顺序执行 && 只有命令1正确执行 命令2才执行 || 第一条命令不正确执行 命令2才执行

    检测命令是否正确执行:

    ls && echo yes || echo no ls execute print yes , else print no ls || echo no && echo yes 顺序关系

    管道符 |:

    ls -l /etc | more 命令1的结果作为命令2的对象,命令2一定要可以操作命令1输出才可以 netstat -an (established,由客户端正在链接) netstat -an | grep ESTABLISHED 查看有多少各人正在链接.

    通配符:

    ? 任意一个字符 ls a? 列出aX的文件 * 任意多个字符 ls a* 列出所有以a开头的文件 [] 任意一个字符 ls a[0-9] 匹配后缀数字0-9, -表示范围 [^] 匹配非 ls a[^0-9]

    正则表达式

    Bash 其他的符号

    $ 调用和得到变量的值

    单引号'' echo '$a' 输出$a 双引号"" echo "$a" 输出变量值 反引号`` echo `ls` 先执行,再把结果赋给变量 = $() \#注释
    转载请注明原文地址: https://ju.6miu.com/read-33722.html

    最新回复(0)