Linux学习笔记
1. Linux
1.1. Linux目录结构
- bin 存放最经常使用的命令
- sbin Super User,存放管理员使用的系统管理程序
- home 存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般该目录是以用户的账号命名
- root 该目录为root用户的主目录
- lib 系统开机所需要的最基本的动态链接共享库,作用列斯与windows中的dll文件,几乎所有的应用程序都需要用到这些共享库
- etc 所有系统管理所需要的配置文件和子目录
- usr 非常重要,用户的很多应用程序和文件都放在这个目录下
- boot 存放启动linux的一些核心文件,包括一些连接文件以及镜像文件
- dev 类似于windows的设备管理器
- media linux系统会自动识别一些设备,比如U盘光驱,会把是别的目录挂在到这个目录下
- mnt 让用户临时挂载别的文件系统,比如U盘
- proc 是一种伪文件系统,即虚拟文件系统,存储的是当前内核运行状态的一系列特殊文件,proc/meminfo可以查看内存占用
1.2. vi
- 正常模式
- 插入/编辑模式
- 命令行模式
1.3. 开关机等
-
shutdown
- shutdown -h now 立即关机
- shutdown -h 1 1分钟后关机
- shutdown -r now 立即重启
-
halt 等于立即关机
-
reboot 重启
-
sync 将内存数据同步到磁盘
1.4. 用户管理
- useradd -d 指定目录 添加一个用户
- passwd xm 给xm设置密码
- userdel xm 删除xm用户
- userdel xm home目录仍然保留
- userdel -r xm 删除home目录
- id 用户 获得用户id,组id 组名称
- su 切换用户
- whoami 返回当前用户名
1.5. 用户组管理
系统可以对有共性的多个用户进行统一的管理
- groupadd 组名
- groupdel 组名
- useradd -g 组名 用户名 创建用户时指定用户组
- usermod -g 组名 用户名 修改用户组
1.6. 用户和组相关的文件
- /etc/passwd
- /etc/shadow
- /etc/group
以上三个都是用vi文件打开的
passwd打开后:用户名 密码 uid gid home目录 shell解析器
group打开后:组名 密码 组id
1.7. 实用指令
1.7.1. 指定运行级别
- 关机
- 单用户 找回丢失密码
- 多用户无网络服务
- 多用户有网络服务
- 保留
- 图形界面
- 重启
- init 切换到指定运行级别的指令
如何找回root密码?
思路:进入单用户模式,然后修改root密码。因为单用户模式,root不需要密码就可以登录。
开机 -> 引导时候选中命令内核 -> 输入1表示进入单用户模式 -> reboot -> 利用passwd命令修改密码
1.7.2. 帮助指令
当我们对某个指令不熟悉时,我们可以使用Linux提供的帮助之林来了解这个指令的用法。
- man ls 查看ls的用法
- help ls 查看ls的用法
1.7.3. 文件目录的指令
- pwd
- ls -l 列表实现 -a 显示所有文件和目录,包括隐藏
- cd ~ 回到自己的home目录 …回到当前目录的上一级
- mkdir -p 创建多级目录
- rmdir 删除空目录
- rm -rf 强制删除,可以删除文件夹
- touch 本质上是修改一个文件的时间
- mv 移动文件/重命名
- cp -r 递归赋值整个文件夹 \cp 不提示覆盖
- cat 只能浏览文件而不能修改 -n 显示行号
- more 以全屏幕的形式分页显示
- 空格 向下翻页
- enter 向下一行
- q 离开
- ctrl+f 向下滚动一屏
- ctrl+b 返回上一屏幕
- = 抛出当前行号
- :f 输出文件名和当前行号
- cat -n /etc/profile | more 只读模式打开并分页
- less 并不是一次将整个文件加载才显示,而是根据现实需要加载内容,对于大型文件具有较高效率
- > 重定向 >> 追加
- echo 输出内容到控制台 echo $PATH 向控制台输出环境变量
- head -n 5 查看文件 前5行内容
- tail -n 5 后5行 -f实时追踪更新
- ln -s 原文件或目录 软连接名 ln -s /root/ myroot 当我们使用pwd指令查看目录时,仍然看到的是软连接所在目录,即…/myroot,而不是/root/。删除软连接的时候
- history n 查看已经执行过的n个指令
1.7.4. 时间日期类指令
- date 显示当前时间和日期
- date “+%Y-%m-%D %H:%M:%S”
- date -s 字符串时间
- cal 以日历的形式显示当前日历
1.7.5. 搜索查找类
-
find 搜索范围 选项 find /root/
- name 按照指定的文件名查找模式
- user 查找属于指定用户名所有文件
- size 按照指定的文件大小查找文件 -小于 +大于
- name 按照指定的文件名查找模式
-
locate
可以快速定位文件路径。利用事先建立的系统中所有文件名称和路径的数据库实现快速定位。查询速度较快,但是管理员必须定期更新locate时刻。- locate 搜索文件
- updatedb 特别说明:由于locate指令基于诗句哭,所以第一次运行前,必须用updatedb创建locate数据库
-
grep 过滤查找,管道夫“|”表示将前一个命令的处理结果输出传递给后面的命令处理。
- grep 选项 查找内容 源文件
- n 显示匹配行及行号
- i 忽略字母代销写
-
wc 计数
-m 统计字符数
-w 统计字数
-L 打印最长行长度
-l 统计行数
-c 统计字节数 -
grep -i -n hello hello.txt | wc -l = grep -i -c hello hello.txt <= %s/\cPATTERN//gn
查找文件中字符串
https://www.cnblogs.com/freshair_cnblog/p/9843300.html
1.7.6. 压缩与解压类
-
gzip/gunzip 压缩与级压缩
- gzip 文件 压缩文件成.gz文件
- gunzip 文件 解压缩文件命令
- 使用gzip的时候,不会保留源文件,解压后也不会有压缩包
-
zip/unzip
- zip 选项 XXX.zip 将要压缩的内容
- -r 递归压缩,即压缩目录
- unzip 选项 XXX.zip
- -d 指定解压文件的存放目录
- zip 选项 XXX.zip 将要压缩的内容
-
tar 打包指令,打包后为tar.gz文件
- tar 选项 XXX.tar.gz 打包的内容
- tar 选项
- -c 建立tar包
- -v 显示详细信息
- -f 指定压缩后的文件名
- -z 压缩 本质上是表明是gzip压缩格式,也可以用j表示bz2压缩格式
- -x 解包.tar文件
- 实例
- zcvf 先用c建立tar包,再用z压缩,v显示详细信息,f指定名称
- zxvf 解压
- zcvf 先用c建立tar包,再用z压缩,v显示详细信息,f指定名称
-
三者区别
- gzip和zip之间命令不同
- gzip压缩为gz格式,zip压缩为zip格式
- gzip压缩后源文件小时,zip压缩后源文件保留
1.7.7. 组管理和权限管理
- 文件->所有者->所在组->其他组
- list -ahl 查看文件所有者
- chown 用户名 文件名。修改文件所有者修改之前,要先登录修改后的用户名。
- chown newowner:newgroup file改变用户的所有者和所在组
- -R递归。即目录下所有的文件
- chgrp 组名 文件名 修改文件所在组
- 除文件的所有者和所在组的用户外,系统的其他用户都是文件的其他组。
- 改变某个用户的所在组
- usermod -g 组名 用户名
- usermod -d 目录名 用户名 改变该用户登录的处事目录
- 权限
- 文件类型
- - 普通文件
- d 目录
- l 软连接
- c 字符设备
- b 块文件
- 详细介绍
- 文件类型
- -rwxr-wr-x
- 文件 r可读 w可写,但是是否能删除的前提是是否对文件所在目录有写权限 x可运行
- 目录 r可读,ls查看目录内容 w 可以修改,目录内创建+删除+重命名目录 x可执行,可以进入该目录
- rwxrwxrwx 均为2进制,4 2 1 4 2 1 4 2 1。所以是777,rw-r—w-为642。第一组为文件拥有者,第二组为该文件所在组内用户的权限,第三组为其他组成员。
- chmod 修改目录或文件的权限
- chmod u=rwx,g=rx,o=x。user,group,other
- chmod o+w 文件目录名 给o增加w权限
- chmod a-x 文件目录名 给所有都增加x权限
- chmod 777
- 通过
- 注意:
hty与kiky属于kiky组
,对于文件,kiky可以执行,但是hty不可以执行。说明什么呢?说明第二组参数并不是“第二组参数为与文件拥有者同组的用户”。
。实验证明,第二组参数实质表示的是——该文件所在组的权限,而不是改文件所属用户的所在组的权限。
OVER。
1.7.8. 定时任务调度
- crond任务调度
- crontab 进行定时任务的设置
1.7.9. Linux分区
硬盘挂载到文件系统中。
- lsblk -f
- mount /dev/sdb1 /home/newdiskl
- umount /home/newdisk1
- df -lh 查询系统整体磁盘使用情况
- du -h 目录插叙年制定目录的磁盘占用情况
- -s 指定目录占用大小汇总
- -h带计量单位
- -a含文件
- –max-depth=1 子目录深度
- 统计目录数
1.7.10. 网络配置
- ifconfig 查看网路配置
- ping 目的主机
- vi /etc/sysconfig/network-scripts/ifcfg-ens33 固定IP地址
1.7.11. 进程管理
- ps -aux | more 查看系统中的进程情况
- a 显示当前终端 的所有进程信息
- u 以用户的格式显示进程信息
- x 显示后台进程运行的参数
- ef 查看父进程
- kill、killalll -9(强制终止) 进程号 终止进程
- pstree 以树状形式展现进程关系
1.7.12. 服务管理
- systemctl 服务名 start stop restart reload status
- windows下: telnet ip port 可以查看
- setup 可以查看有哪些服务
- 查看有哪些服务
- chkconfig 可以给每个服务的各个运行级别设置自启动/关闭
- chkconfig --list|grep xxx 查看xxx服务
- chkconfig xxx --list 查看xxx服务
- chkconfig --level 5 服务名 on/off 修改某个服务在某个级别下是否自启动
1.7.13. 动态监控进程
- top 动态监控进程,与ps不同的是执行一段时间可以更新正在运行的进程。和任务管理器很像
- d 指定top命令每隔几秒更新
- i 使top不显示任何闲置或僵死进程
- p 通过制定进程id来仅仅监控某个进程的状态
- u 查看用户的进程
- k 啥进程
- netstat -anp 监控网络状态
1.7.14. RPM与YUM
- rpm
- rpm -qa | grep xxx rpm查询所有的rpm包
- rpm -e 卸载 --nodeps强制删除,忽略依赖
- rpm -ivh xxxx 安装
- rpm -qa | grep xxx rpm查询所有的rpm包
- yum
- yum list|grep xxx
- yu install xxx
1.7.15. 牛客网Java Linux 面经相关问题
-
linux中的grep管道用处?linux的常用命令?
将管道前的结果作为管道符后的操作对象。 -
Linux 如何查看内存使用情况 如何查看哪些端口被占用 如何查看IP等等
- top、free、cat /proc/meminfo查看内存你占用
- /proc/cpuinfo查看cpu
- lsof -i:3306, netstat -tunlp | grep xxx 查看端口
- ifconfig可以查看自己的ip地址
-
Linux中,假如要找某一个日志文件中时间为早上10点-12点之间的日志,如何操作?
正解表达式解决:grep '2018-Nov-06 1[0-2] shop-bussiness.log.2018-11-06
-
两个文件存着电话号码
- 用Linux命令怎么合并在一起
- 求交集
cat file1 file2 | sort | uniq -d - 求并集
cat file1 file2 | sort | uniq -u
- 用Linux命令怎么合并在一起
-
Linux查看某个端口号是否被占用
- lsof -i:3306
- netstat -tunlp | grep 3306
- lsof -i:3306
-
Linux中查询进程并杀死
- top,k+pid
- ps查询pid后,kill -9强制杀死
-
Linux中查看日志后100
tail -f -n 100 filename 动态查看日志后100行内容 -
Linux用过什么命令 如何查看网络状态 具体参数
- netstat
- a 显示所有socket,包括正在监听的。
- c 每隔1秒就重新显示一遍,直到用户中断它。
- i 显示所有网络接口的信息,格式同“ifconfig -e”。
- n 以网络IP地址代替名称,显示出网络连接情形。
- r 显示核心路由表,格式同“route -e”。
- t 显示TCP协议的连接情况。
- u 显示UDP协议的连接情况。
- v 显示正在进行的工作。
- l 仅仅显示监听状态。
- netstat
-
linux有进程和线程的区分吗
-
Linux下 给定一个文件,里面存放的是IP地址,统计各个IP地址出现的次数
grep 192.168.0.1 file | wc - l -
在linux系统中,查看编辑某个文件的命令是什么?
cat/vi -
从日志文件中搜索带有abcde关键字的行
grep、awk、sed; -
epoll、poll和select的区别
-
linux用过哪些命令,写过哪些shell
-
linux硬连接和软连接知道吗?
- ln -s source target 软连接 快捷方式,相当于是个指针,指向了源文件的地址
- ln source target 硬连接 同样文件的不同入口,本质是一样的
- 本质:
- AAA和AAAhard是同一个文件的两个名字, 它们具有同样的索引节点号和文件属性,建立文件AAA的硬链接,就是为 AAA的文件索引节点在当前目录上建立一个新指针。你可以删除其中任何一个,如rm AAA,每次只会删除一个指针,链接数同时减一,只有将所有指向文件内容的指针,也即链接数减为0时,内核才会把文件内容从磁盘上删除。
- 尽管硬链接节省空间,也是Linux系统整合文件系统的传统方式,但是存在一些不足之处:
- 不允许给目录创建硬链接。
- 不可以在不同文件系统的文件间建立链接。因为 inode 是这个文件在当前分区中的索引值,是相对于这个分区的,当然不能跨越文件系统了。
- 软链接克服了硬链接的不足,没有任何文件系统的限制,任何用户可以创建指向目录的符号链接。因而现在更为广泛使用,它具有更大的灵活性,甚至可以跨越不同机器、不同网络对文件进行链接。
- AAA和AAAhard是同一个文件的两个名字, 它们具有同样的索引节点号和文件属性,建立文件AAA的硬链接,就是为 AAA的文件索引节点在当前目录上建立一个新指针。你可以删除其中任何一个,如rm AAA,每次只会删除一个指针,链接数同时减一,只有将所有指向文件内容的指针,也即链接数减为0时,内核才会把文件内容从磁盘上删除。