Linux学习笔记

Linux学习笔记

本博客基于兄弟连Linux教程

基本内容

Linux目录

与命令相关

  • Linux中的命令同样以文件形式存在,二进制可执行文件即是命令

  • /bin/ : 存放系统命令,所有用户均可执行

    /sbin/ :保存和系统环境设置相关的命令,仅root用户可执行

  • /usr/bin/ :存放系统命令,单用户模式不可执行

    /usr/sbin/ :存放根文件系统不必要的系统管理命令

挂载目录

  • /media/ :挂载媒体设备
  • /mnt/ :挂载额外设备。u盘等(用的比较多)
  • /misc/ :挂载NFS服务的共享目录

虚拟文件系统

  • /proc/ :保存系统的内核、进程,外部设备状态和网络状态灯
  • /sys/ :保存内核相关信息
  • 它们均保存在内存中,关机会消失

其他

  • /boot/ :系统启动目录,保存系统启动相关文件
  • /dev/ :保存硬件文件
  • /etc/ :保存配置文件
  • /home/ :普通用户的家目录,默认登录位置。eg: helandou的家目录是/home/helandou。注:管理员的是/root
  • /lib/ :系统调用的函数库保存位置
  • /lost+found/ :存放系统意外崩溃或关机时产生的文件碎片,每个分区中均有
  • /opt/ :第三方安装的软件位置,更常用的是保存在/usr/local
  • /root/ :超级用户家目录
  • /srv/ :服务数据
  • /tmp/ :临时文件
  • /usr/ :系统软件资源目录
  • /var/:动态数据保存位置(日志等)

用户组

  • 所有者:一般是创建人,只能有一个,可以变更

    所属组:一组相同类型的用户,授权其有相同权限

    其他人:其他

  • eg:-rw-r–r–

    第一位:文件类型 (- 二进制文件 d 目录 l 软连接文件)

    之后的每三位:对应权限

    ​ u所有者 g所属组 o其他人

    ​ r读 w写 x执行(要运行它的时候才需要)

Linux常用命令

文件处理命令

ls

  • 英文原意:list

    所在路径:/bin/ls

    执行权限:所有用户

    功能:显示目录文件

  • 语法:ls [选项] [文件或目录]

    ​ -a all,显示所有文件,包括隐藏文件(.开头的是隐藏文件)

    ​ -l long,详细信息显示(执行权限 引用计数 所有者 所属组 文件大小单位字节 文件最后修改事件 文 件名

    ​ -d 查看目录属性

    ​ -h human

    ​ -i 查看i结点

mkdir

  • 英文原意:make directories(名录)

    所在路径:/bin/mkdir

    执行权限:所有用户

    功能描述:创建新目录

  • 语法: mkdir [选项] [目录名]

    ​ -p 递归创建,在不存在的目录创建子目录时使用,可以一块创建

cd

  • 英文原意:change directory

    所在路径:shell内置

    执行权限:所有用户

    功能描述:切换目录

  • 语法: cd [目录]

    ​ . :当前目录

    ​ .. :当前目录的上一级

pwd

  • 英文原意:print working directory

    所在路径:/bin/pwd

    执行权限:所有用户

    功能描述:显示当前目录

  • 语法: pwd

rmdir

  • 英文原意:remove empty directories

    所在路径:/bin/rmdir

    执行权限:所有用户

    功能描述:删除空目录

  • 语法: rmdir [目录名]

cp

  • 英文原意:copy

    所在路径:/bin/cp

    执行权限:所有用户

    功能描述:复制文件或目录(可以改名,复制到新目录即可)

  • 语法: cp [原文件或目录(可复制多个)] [目标目录]

    ​ -r 复制目录

    ​ -p 保留文件属性(保留原本文件的最后修改时间)

mv

  • 英文原意:move

    所在路径:/bin/mv

    执行权限:所有用户

    功能描述:剪切文件、改名(在当前目录移动,目标目录即为新文件名)

  • 语法:mv [原文件或目录] [目标目录]

rm

  • 英文原意:remove

    所在路径:/bin/rm

    执行权限:所有用户

    功能描述:删除文件

  • 语法: rm [选项] [文件或目录]

    ​ -r 删除目录

    ​ -f 强制执行

touch

  • 所在路径:/bin/touch

    执行权限:所有用户

    功能描述:创建空文件(文件名带空格会创建两个文件,想带空格的话加双引号)

  • 语法: touch [文件名(可以带上绝对路径)]

cat

  • 所在路径:/bin/cat

    执行权限:所有用户

    功能描述:显示文件内容

  • 语法: cat [文件名(可以带上绝对路径)]

    ​ -n 加行号

tac

  • 所在路径:/bin/tac

    执行权限:所有用户

    功能描述:显示文件内容(反向显示)

  • 语法: tac [文件名(可以带上绝对路径)]

more

  • 所在路径:/bin/more

    执行权限:所有用户

    功能描述:分页显示文件内容

    ​ 空格/f:翻页

    ​ 回车:换行

    ​ q/Q:退出

  • 语法: more [文件名(可以带上绝对路径)]

less

  • 所在路径:/bin/less

    执行权限:所有用户

    功能描述:分页显示文件内容(可以向上翻页以及查找)

    ​ 空格/f:向下翻页

    ​ pageup:向上翻页

    ​ 上箭头:向上翻一行

    ​ 回车:换行

    ​ q/Q:退出

    ​ / + 内容:搜索(按n继续查找)

  • 语法: less [文件名(可以带上绝对路径)]

  • 所在路径:/usr/bin/head

    执行权限:所有用户

    功能描述:显示文件前面几行

  • 语法: head [选项] [文件名]

    ​ -n 指定行数(默认前10行)

tail

  • 所在路径:/usr/bin/tail

    执行权限:所有用户

    功能描述:显示文件最后几行

  • 语法: head [选项] [文件名]

    ​ -n 指定行数(默认后10行)

    ​ -f 动态显示文件末尾内容(文件内容变化的时候输出内容也会实时变化)

ln

  • 英文原意:link

    所在路径:/bin/ln

    执行权限:所有用户

    功能:生成链接文件

  • 语法:ln [选项] [原文件] [目标文件]

    ​ -s 创建软链接

  • 软链接:类似Windows的快捷方式,直接执行软连接,它的权限不等于原文件的权限,所以所有软链接是lrwxrwxrwx。它仅仅是一个符号链接。

    硬链接:除位置外与原文件完全相同,与cp -p 的区别在于它可以同步更新,它的i结点与原文件相同。删掉原文件后仍然存在。不可以跨分区(eg:root到boot),不可以链接目录。

权限管理命令

chmod

  • 英文原意:change the permissions mode of a file

    所在路径:/bin/chmod

    执行权限:所有用户(所有者或管理员可以更改)

    功能:改变文件或目录权限

  • 语法:

    • chmod [{ugoa}{+-=}{rwx}] [文件或目录] :a指所有人,=指不管原来是什么,都改为后面的,可同时进行多个更改,用逗号间隔不同用户组即可
    • chmod [权限数字] [文件或目录]:r=4,w=2,x=1 所以rwxrw-r– = 764
    • -R 递归修改,改变目录的同时将其中的所有文件,子目录都一起改掉
权限类型 对文件的含义 对目录的含义
r 读权限 可以查看文件内容 可以列出目录中的内容
w 写权限 可以修改文件内容(无法删除文件,要对文件所在目录有写权限) 可以在目录中创建、删除文件
x 执行权限 可以执行文件 可以进入目录

chown

  • 英文原意:change file ownership

    所在路径:/bin/chown

    执行权限:所有用户(只有管理员可以改)

    功能:改变文件或目录所有者

  • 语法:chown [要变成所有者的用户(该用户必须存在)] [文件或目录]

chgrp

  • 英文原意:change file group ownership

    所在路径:/bin/chown

    执行权限:所有用户(只有管理员可以改)

    功能:改变文件或目录所属组

  • 语法:chgrp [要变成所属组的组(该用户必须存在)] [文件或目录]

  • 文件的所有者:创建它的人

    文件的所属组:一个用户可以属于多个组,但它只有一个缺省组,文件的所属组即为创建者的缺省组

umask

  • 英文原意:the user file-creation mask

    所在路径:Shell内置命令

    执行权限:所有用户

    功能:显示、设置文件的缺省权限

  • 语法:umask [选项]

    ​ -S 以rwx形式显示新建文件缺省权限(缺省创建的文件不具有可执行权限,所以touch的结果会与umask有不同)

  • 不加-S时 -> 0022

    第一个0:一种特殊权限

    后三个数:与777通过逻辑异或获得真正权限

    777 rwx rwx rwx
    022 -w- -w-
    结果 rwx r-x r-x
  • 若要更改缺省权限,要反算出来后三位数,然后umask 后三位即可(不推荐)

文件搜索命令

find

  • 所在路径:/bin/find

    执行权限:所有用户

    功能:文件搜索

  • 语法:find [搜索范围(eg:在根目录搜索 /)] [匹配条件]

  • -name 根据文件名搜索(精准搜索)

    若模糊搜索:加通配符* ->匹配任意字符,任意长度

    ​ 加通配符?->匹配单个字符

    -iname 不区分大小写

  • -size 根据文件大小查找

    +n 大于 -n小于 n等于

    单位为数据块,一个数据块为0.5k

  • -user 根据所有者查找

    -group 根据所属组查找

  • -amin 根据访问时间查找

    -cmin 根据文件属性更改时间查找(ls看到的那些)

    -mmin 根据文件内容更改时间查找

    +/-/不加与大小类似 单位分钟

  • -type 根据文件类型查找

    f 文件 d 目录 l 软链接

  • -inum 根据i结点查找

  • -a 两个条件同时满足

    -o 两个条件满足任意一个即可

  • -exec/-ok 命令 {} ;

    链接一个操作,对搜索结果执行

    -ok 会有询问确认的环节

locate

  • 所在路径:/usr/bin/locate

    执行权限:所有用户

    功能:在文件资料库中查找文件(文件资料库定期更新,新创建的文件可能找不到)

  • 语法:locate 文件名

    ​ -i 不区分大小写

  • updatedb : 更新资料库,/tmp不在收录范围

which

  • 所在路径:/usr/bin/which

    执行权限:所有用户

    功能:搜索命令所在目录及别名信息

  • 语法:which 命令

whereis

  • 所在路径:/usr/bin/whereis

    执行权限:所有用户

    功能:搜索命令所在目录及帮助文档路径

  • 语法:whereis 命令

grep

  • 所在路径:/bin/grep

    执行权限:所有用户

    功能:在文件中搜寻字串匹配的行并输出

  • 语法:grep [选项] [指定字串] [文件]

    ​ -i 不区分大小写

    ​ -v 排除指定字串 eg:^# 排除所有以#开头的行

帮助命令

man(与info类似)

  • 英文原意:manual

    所在路径:/usr/bin/man

    执行权限:所有用户

    功能:获得帮助信息

  • 语法:man [命令或配置文件(不能加绝对路径,只加名字即可)]

    ​ 类似less,空格/f翻页,/+内容搜索

  • whatis [命令名称] :查看命令简短信息

    apropos [配置文件名称] :查看配置文件简短信息

    –help 加在对应命令后,获得该命令主要选项

help

  • 英文原意:help

    所在路径:Shell内置命令(Shell是命令解释器,其内置命令找不到路径)

    执行权限:所有用户

    功能:获得Shell内置命令的帮助信息

  • 语法:help [命令名称]

用户管理命令

useradd

  • 所在路径:/usr/sbin/useradd

    执行权限:root

    功能:添加新用户

  • 语法:useradd [用户名]

passwd

  • 所在路径:/usr/bin/passwd

    执行权限:所有用户(普通用户只能更改自己的密码,root都可以改)

    功能:设置用户密码

  • 语法:passwd [用户名]

who

  • 所在路径:/usr/bin/who

    执行权限:所有用户

    功能:查看登录用户信息

  • 语法:who

  • 登录用户名-登录终端(tty:本地终端,pts:远程终端)-登录时间及ip地址

压缩解压命令

gzip

  • 所在路径:/bin/gzip

    执行权限:所有用户

    功能:压缩文件,无法压缩目录,不保留原文件

  • 语法:gzip [文件]

    ​ -d 解压缩

  • 压缩后格式:.gz

gunzip

  • 所在路径:/bin/gunzip

    执行权限:所有用户

    功能:解压缩.gz文件

  • 语法:gunzip [文件]

tar

  • 所在路径:/bin/tar

    执行权限:所有用户

    功能:打包目录

  • 语法:tar [选项] [压缩后文件名,通常会加.tar作为标记] [目录]

    ​ -c 打包

    ​ -v 显示详细信息

    ​ -f 指定文件名

    ​ -z 打包同时压缩

    ​ -j 打包并同时压缩为bzip2

    ​ -x 解包

    ​ -v 显示详细信息

    ​ -f 指定解压文件

    ​ -z 解压缩

    ​ -j 解压缩bzip2

  • 压缩后格式:.tar.gz

zip

  • 所在路径:/usr/bin/zip

    执行权限:所有用户

    功能:压缩文件或目录,可以保留原文件

  • 语法:zip [选项] [压缩后文件名] [文件或目录]

    ​ -r 压缩目录

  • 压缩后格式:.zip

unzip

  • 所在路径:/usr/bin/unzip

    执行权限:所有用户

    功能:解压.zip的压缩文件

  • 语法:unzip [压缩文件或目录]

bzip2

  • 所在路径:/usr/bin/bzip2

    执行权限:所有用户

    功能:压缩文件,压缩比很惊人

  • 语法:bzip2 [选项] [文件]

    ​ -k 产生压缩文件后保留原文件

  • 压缩后格式:bz2

bunzip2

  • 所在路径:/usr/bin/bunzip2

    执行权限:所有用户

    功能:解压bzip2

  • 语法:bunzip2 [选项] [文件]

    ​ -k 解压后保留原文件

网络命令

write

  • 所在路径:/usr/bin/write

    执行权限:所有用户

    功能:给用户发信息,以Ctrl+D保存,写错的话用delete删

  • 语法:write [用户名(要求在线)]

wall

  • 英文原意:write all

    所在路径:/usr/bin/wall

    执行权限:所有用户

    功能:发广播信息

  • 语法:wall [信息]

ping

  • 所在路径:/bin/ping

    执行权限:所有用户

    功能:测试网络连通性

  • 语法:ping [选项] [IP地址]

    ​ -c 指定发送次数

ifconfig

  • 英文原意:interface configure

    所在路径:/sbin/ifconfig

    执行权限:root

    功能:查看和设置网卡信息

  • 语法:ifconfig [网卡名称] [IP地址] (什么都不加的话是查看)

  • 网络类型、网卡物理地址mac、IP地址、接收发送数据包总数量总大小

mail

  • 所在路径:/bin/mail

    执行权限:所有用户

    功能:查看发送电子邮件

  • 语法:mail [用户名(无需用户在线)]

    ​ 不加用户名为查看自己收到的信

    ​ 序列号 查看该邮件

    ​ -h 看总列表

    ​ -d 删除

    ​ -q 退出

last

  • 所在路径:/usr/bin/last

    执行权限:所有用户

    功能:列出目前与过去登入系统的用户信息,重启信息

  • 语法:last

lastlog

  • 所在路径:/usr/bin/lastlog

    执行权限:所有用户

    功能:检查某特定用户的上次登录时间

  • 语法:lastlog [选项]

    ​ -u uid 仅查看对应uid用户

traceroute

  • 所在路径:/bin/traceroute

    执行权限:所有用户

    功能:显示数据包到主机间的路径

  • 语法:traceroute

netstat

  • 所在路径:/bin/netstat

    执行权限:所有用户

    功能:显示网络相关信息

  • 语法:netstat [选项]

    ​ -t TCP协议,类似打电话,面向连接

    ​ -u UDP协议,类似发短信

    ​ -l 监听,UDP没有

    ​ -r 路由

    ​ -n 显示IP地址和端口号

    ​ -a 查看所有,可以看到正在连接的

    ​ -tlun 查看本机监听的端口

    ​ -an 查看本机所有的网络连接

    ​ -rn 查看本机路由表

setup(仅RedHat有)

  • 所在路径:/usr/bin/setup

    执行权限:root

    功能:配置网络

  • 语法:setup

mount

  • 所在路径:/bin/mount

    执行权限:所有用户

    功能:将设备连接到所分配的挂载点

  • 语法:mount [选项] [设备文件名,就叫/dev/sr0] [挂载点]

    ​ -t 文件系统

关机重启命令

shutdown

  • 语法: shutdown [选项] [时间(now,或者具体某一时间)]

    ​ -c:取消前一个关机命令

    ​ -h:关机

    ​ -r:重启

  • 功能:关机重启

  • 会保存正在启动的服务和数据

  • 其他关机命令:halt,poweroff,init 0

    其他重启命令:reboot,init 6

  • 系统运行级别 0 1 2 3 4 5 6
    含义 关机 单用户(类似安全模式,仅启动最小核心程序,root登入) 不完全多用户,不含NFS服务(Linux间文件共享服务,有安全隐患) 完全多用户(完全命令行) 未分配 图形界面 重启

    cat /etc/inittab 可以查询到系统运行级别的解释

    runlevel 查询系统运行级别,N为空(NULL)

logout

  • 功能:退出登录

  • 语法:logout


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!