Linux学习笔记
参考教程:尚硅谷
一、Linux目录结构
- /bin
是Binary的缩写,这个目录存放着最经常使用的命令。 - /sbin
s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。 - /home
存放着普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。 - /root
该目录为系统管理员,也称作超级权限者的用户主目录。 - /lib
系统开机所需要最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。 - /lost+found
这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。 - /etc
所有的系统管理所需要的配置文件和子目录 my.conf - usr
这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于Windows的program files目录。 - /boot
存放的是启动Linux时的一些核心文件,包括一些连接文件以及镜像文件。 - /proc
这个目录是一个虚拟目录,它是系统内存的映射,访问这个目录来获取系统信息。 - /srv
service的缩写,该目录存放一些服务启动之后需要提取的数据。 - /sys
这是Linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统。 - /tmp
这个目录是用来存放一些临时文件的。 - /dev
类似于Windows的设备管理器,把所有的硬件用文件的形式存储。 - /media
Linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux会把识别的设备挂载到这个目录下。 - /mnt
系统提供该目录是为了让用户临时挂在别的文件系统的,我们可以将外部的存储挂在在此目录下,然后进入该目录就可以查看内容了。 - /opt
这是给主机额外安装软件所摆放的目录,如安装Oracle数据库就可以放到该目录下。默认为空。 - /usr/local
这是另一个给主机额外安装软件所用的目录,一般是通过编译源码方式安装的程序。 - /selinux
SELinux是一种安全子系统,它能控制程序只能访问特定文件。
总结:
- Linux有一个根目录/,其他目录都是它的分支。
- 在Linux中,所有设备都可以通过文件来体现,例如:字符设备文件(鼠标、键盘),块设备文件(硬盘)。
- 学习Linux要尽快在脑海中形成一个目录树。
二、Vim编辑器
Vim三种模式切换

Vim的快捷键(在一般模式下)
- 拷贝当前行:
yy,拷贝当前往下5行:5yy,粘贴:p。 - 删除当前行:
dd,删除当前向下5行:5dd。 - 查找某个词:
/词汇+回车,跳到下一处:n。 - 显示行号:
:set nu,隐藏行号::set nonu。 - 跳到末行:
G,跳到首行:gg。 - 撤销刚才的输入:
u。
三、关机、重启和用户注销
1.id 关机
立刻关机:shutdown -h now
一分钟后关机:shutdown -h 1
立刻重启:shutdown -r now
两分钟后重启:shutdown -r 2
立刻关机:halt
立刻重启:reboot
不管是关机还是重启,都要先运行sync命令,将内存中的数据写到磁盘中。
2. 用户切换和注销
用户切换:su 用户名
用户注销:logout
四、用户管理
- 添加用户
useradd 用户名
创建后会在/home目录下为该用户分配一个家目录。 - 指定/修改密码
passwd 用户名 - 删除用户
userdel 用户名
删除后用户的家目录还是保留的。 - 查询用户信息指令
id 用户名 - 切换用户
su 用户名
从权限高的用户切换到权限低的用户无需密码,反之需要;
用exit命令返回原来用户;
su后面不带用户名,则默认切换到root用户。 - 用户组
增加组:groupadd 组名
删除组:groupdel组名
创建用户时指定组:useradd -g 组名 用户名
修改用户组:usermod -g 组名 用户名 - 用户和组的相关文件
/etc/passwd
该文件记录用户的配置信息,各字段信息如下:
zwj:x:1001:1002::/home/zwj:/bin/bash
zwj:用户名
x:加密密码,保存于/etc/shadow文件中
1001:用户id
1002:用户组id
/home/zwj:用户的家目录
/bin/bash:使用的shell类型
/etc/shadow
zwj:$1$GWkHcv1t$x9nHu3JCUvEopynZQCGEG.:18868:0:99999:7:::
登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:保留
/etc/group
shaolin:x:1002:
组名:口令:组标识号:组内用户列表
五、实用指令
-
指定运行级别
init 0/1/2/3/4/5/6
0:关机
1:单用户[类似安全模式,这个模式可以帮助找回root密码]
2:多用状态没有网络服务
3:多用状态有网络服务
4:系统未使用,保留给用户
5:图形界面
6:重启 -
帮助指令
man [指令或配置文件]
例:man ls
help [指令]
例:help cd -
文件和目录相关指令
显示当前目录的绝对路径:pwd
查看目录下的文件内容:ls [选项] [目录或文件]
-a 显示当前目录所有的文件和目录,包括隐藏的 (文件名以.开头就是隐藏)
-l 以列表的方式显示信息
-h 显示文件大小时,以k,m,G单位显示
为了方便,实际操作一般用ll
创建目录:mkdir [-p] [目录]
-p 创建多级目录
删除目录:rmdir [目录]
rmdir删除的是空目录,如果要删除非空目录,使用rm -rf
-r 表示递归删除,就是将该目录下的文件和子目录全部删除
-f 表示强制删除,就是不需询问
创建空文件:touch [文件名称]
若文件存在,表示更新文件的修改时间。
拷贝文件到指定目录:cp [选项] source[源] dest[目的路径]
-r 表示递归拷贝整个目录
移除指定的文件或目录:rm [选项] 文件或目录
-r 递归删除整个文件夹
-f 强制删除不提示
移动目录文件或重命名:
mv oldFilename newFilename重命名
mv source dest移动
查看文件内容:cat -[选项] Filename
-n 显示行号
为了浏览方便,一般会带上管道命令| more,如:cat hello.txt | more
分页显示文件内容:more Filename
space 向下翻一页
Enter 向下翻一行
q 离开
Ctrl+F 向下翻一屏
Ctrl+B 向上翻一屏
= 输出当前行号
:f 输出当前的文件名和行号
查看大文件:less Filename
less命令不是一次加载整个文档,而是每次加载当前显示的内容,因此效率比more高。
space 向下翻页
pagedown 向下翻页
pageup 向上翻页
/字串 向下搜寻,n:向下查找;N:向上查找
?字串 向上搜寻,n:向上查找;N:向下查找
q 离开
输出内容到控制台:echo [选项] [内容]
输出环境变量:echo $PATH
附:查看系统所有环境变量:env;修改环境变量:vim/etc/profile
显示文件头部内容:head [选项] Filename
-5 显示5行,不写默认10行
输出文件尾部内容:tail [选项] Filename
-5 显示5行,不写默认10行
tail -f Filename 实时追踪文档的所有更新(实用指令)
输出重定向和追加
ls -l > Filename 列表的内容写入文件 a.txt 中(覆盖写)
ls -al >> Filename 列表的内容追加到文件 aa.txt 的末尾
cat Filename1 > Filename2 将文件 1 的内容覆盖到文件 2
echo "Content" >> Filename 将内容追加到文件末尾
软链接:ln -s [源文件或目录] [软链接名]
创建一个链接到/root目录的软链接linkToRoot:ln -s /root/ linkToRoot
查看历史命令:history
!5执行历史编号为5的指令
查找文件:find [搜索范围] [选项]
-name 按照文件名查找
-user 按照所属用户名查找
-size 按照文件大小查找
例如:
find /home -name hello.txt
find /opt -user root
find /size +10M
过滤查找:grep [选项] 查找内容 源文件
-n 显示匹配行及行号
-i 忽略字母大小写
例如:在/etc/profile中查找if,并显示行号,不区分大小写
grep -ni if /etc/profile
配合管道符号使用的案例,查看当前服务器有没有sshd服务在监听:
netstat -anp | grep sshd
压缩和解压缩:tar [选项] xxx.tar.gz [文件或目录]
-c 产生.tar打包文件
-v 显示详细信息
-f 指定压缩后的文件名
-z 打包同时压缩
-x 解压.tar文件
案例:
压缩多个文件,将/home/a1.txt和/home/a2.txt压缩成a.tar.gz
tar -zcvf a.tar.gz a1.txt a2.txt
将/home文件夹 压缩成 myhome.tar.gz
tar -zcvf myhome.tar.gz /home/
将a.tar.gz解压到当前目录
tar -zxvf a.tar.gz
将myhome.tar.gz解压到/opt/tmp2目录下
tar -zxvf myhome.tar.gz -C /opt/tmp2
六、进程管理
- 在LINUX中,每个执行的程序(代码)都称为一个进程。每一个进程都分配一个ID号。
- 每一个进程,都会对应一个父进程,而这个父进程可以复制多个子进程。
- 每个进程都可能以两种方式存在的。前台与后台,所谓前台进程就是用户目前的屏幕上可以进行操作的。后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行。
- 一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。直到关机才才结束。
显示系统所有的进程:ps -aux
USER:用户名称
PID:进程号
%CPU:进程占用CPU的百分比
%MEM:进程占用物理内存的百分比
VSZ:进程占用的虚拟内存大小(单位:KB)
RSS:进程占用的物理内存大小(单位:KB)
TTY:终端名称,缩写 .
STAT:进程状态,其中S-睡眠,s-表示该进程是会话的先导进程,N-表示进程拥有比普通优先级
更低的优先级,R-正在运行,D-短期等待,Z-僵死进程,T-被跟踪或者被停止等等
STARTED:进程的启动时间
TIME:CPU时间,即进程使用CPU的总时间
COMMAND:启动进程所用的命令和参数,如果过长会被截断显示
查看有无某个进程:ps -aux | grep xxx
终止进程:kill [选项] 进程号
-9 强制终止
案例:
踢掉某个登录的用户:ps -aux | grep sshd找到对应的进程号,kill xxx
查看进程树:pstree -pu
-p 显示进程的PID
-u 显示进程的所属用户

浙公网安备 33010602011771号