Liunx目录结构
目录 | 说明 |
---|---|
/ | 根目录,位于目录结构的最顶层,用斜线(/)表示,类似于Windows操作系统的“C:\“ |
/bin | 存放着Linux最经常使用的重要命令(cp,ls,cat,mkdir等) |
/boot | 存放用于系统引导时使用的各种文件 |
/dev | dev是Device(设备)的缩写, 该目录下存放的是Linux的外部设备 |
/etc | 存放系统配置文件 |
/home | 普通用户的主目录,在Linux中,每个用户都有一个自己的目录,该目录名是以用户的账号命名 |
/lib | 标准程序设计库,又叫动态链接共享库,作用类似windows里的.dll文件 |
/mnt | 系统提供这个目录是让用户临时挂载其他的文件系统。 |
/opt | 额外安装的可选应用程序包所放置的位置 |
/ root | 超级用户主目录 |
/sbin | 存放二进制可执行文件,只有root才能访问 |
/var | 这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包 括各种日志文件,比如 /var/log 下存放着Linux系统的日志文件 |
/usr | (unix system resource)用于存放系统应用程序,比较重要的目录/usr/local 本地管理员软件安装目录,也是最庞大的目录,要用到的应用程序和文件几乎都在这个目录 |
正则表达式
正则表达式通常被用来检索或替换符合某个模式或规则的文本内容。
正则表达式的符号大部分都是用来匹配字符串中单个字符的但是 ^ 和 $不是用来匹配单个字符的,而是匹配位置,分别匹配开始位置和结束位置。
正则表达式由以下内容组合而成:
普通字符,例如空格、下划线、A-Z、a-z、0-9。
位置限定符:^ 它匹配文件中一行的开头,以XX开头的行。 $ 它匹配文件中一行的结尾,以XX结尾的行。
数量限定符:
[0-9] 代表任意的一个单独的数字
[a-z] 代表一个任意单独的小写字母
[A-Z] 代表任意一个单独的大写字母
[a-z A-Z] 代表任意一个单独的字母
[a-z A-Z 0-9] 代表任意一个单独的字母或数字
[ ]表示符合中括号里面的字符组内的任一字符 无[ ]表示精确查找 .* 代表任意字符
文件权限
在Linxu系统中文件或目录权限的控制分别以读取,写入,执行3种一般权限来区分
三种基本权限
r 读权限 (read r)
w 写权限 ( write w)
x 执行权限 ( execute x)
样式:
drwxr-xr-x. 3 root root 19 2月 17 11:04 home
含义:
第一分组 d: 文件的类型,表示这是一个目录, – 表示是文件
第二分组 rwx:表示文件属主有 读、写,执行权限
第三分组 rw-:表示属主所属的用户组用户有读,写权限,没有执行权
分组 r–:指其他人(others)只有读权限,没有写和执行权。
文件常见类型:
d 目录、- 普通文件、l 链接文件
缩写权限表示方法:
u:User,即文件或目录的拥有者,属主。第1个用户
g:Group,即文件或目录的所属群组。 第2个用户
o:Other, 除了文件或目录拥有者或所属群组之外,其他用户皆属于这个范围。第3个用户。
数字权限表示方法:
r=4(读), w=2(写),x=1(执行) (任何一个用户都可以有这些数字:7/6/5/4/3/2/1/0)
若要rwx 属性则4+2+1=7;
若要 rw- 属性则4+2+0=6;
若要 r-x 属性则4+0+1=5。
若要 r- - 属性则4+0+0=4
没有任何权限 0
基础命令练习
显示当前路径
pwd
切换指定目录
cd 相对/绝对路径
返回上级目录
cd ..
返回上次目录
cd -
查看当前目录下的文件/文件夹
ls
查看当前目录下的文件/文件夹的详细资料
ls -l 或 ll
查看指定目录下的文件/文件夹
ls 绝对/相对路径
创建一个空文件
touch 文件名
在当前目录下创建文件夹
mkdir 文件夹名
在当前目录下创建多个文件夹
mkdir 文件夹1 文件夹2
到指定目录下创建文件夹
mkdir 绝对或相对路径/文件夹名
删除文件或目录
rm 文件名
rm 目录路径
递归强制删除文件或目录
rm -rf 文件名
rm -rf 目录名
重命名/移动 文件/目录
mv test1.txt test2.txt //将test1.txt 改名为test2.txt(当前目录无test2.txt文件,重命名)
mv test1.txt mydoc1 //将test1.txt移动到mydoc1目录中(当前目录存在mydoc1目录,移动)
mv test1.txt test3.txt mydoc3 //移动多个文件到mydoc3目录中
mv mydoc1 mydoc2 //当前目录存在mydoc2目录,因此移动目录mydoc1到mydoc2目录中
mv mydoc7 mydoc8 //当前目录不存在mydoc8目录,因此将mydoc7重命名为mydoc8
mv mydoc1 /root //移动mydoc1目录到/root目录下
注意:如果是移动,则将文件移动到某个目录,原目录的文件将被删除,类似windows的剪切命令
复制文件或目录
cp file1 file1.bak //复制一个文件,将file1复制且名字改为file1.bak,文件内容不变
cp -r dir1 dir2 //复制一个目录,将dir1复制且名字改为dir2,文件内容不变 ,-r参数表示复制目录,将递归复制该目录下所有的子目录和文件,不加r则或略过该目录
查看整个文件内容
cat 文件名
分页显示文件内容
more 文件名 //b或者空格下一页,Enter下一行,q停止显示离开该文件
less 文件名 //j 往后翻一行,y往前翻一行,按q离开该命令,可使用键盘方向键往回看
查看文件前几行
head -n 10 /root/file.txt //查看文件file.txt的前10行, -n :后面接数字,代表显示几行的意思
查看文件后几行
tail -n 10 /root/file.txt //查看文件file.txt的后10行
实时查看问价内容
tail -fn 50 file //动态查看文件-f,从倒数第50行看起,持续连续看(旧的记录依旧保持在里面,只是执行时从50行开始)
查找文件
find /root -name filename //从‘/root’ 目录查找名为filename的文件
find . -name "*.log" //在当前(就是点 . )目录查找 以.log结尾的文件。 (”.”代表当前目录,*是通配符=代指所有字符)
find . -user //用户名:在当前目录下按照用户名查找文件,只列出当前用户名的文件或者目录
find . -name "目录名字" -type d //在当前目录下查找指定名字的目录(-type d目录)
在当前目录的所有文件中查找new1.txt文件
ls –l|grep “new1.txt”
在文件wusong中查找1开头或数字结尾的内容
cat wusong|grep '^[1]\|[0-9]$'
分页显示当前目录所有文件
ls|more
ll|more
ll|less
压缩/解压文件
gzip file1 file2 //压缩2个文件
gzip -d file1.gz file2.gz //解压缩2个文件,解压后,原压缩文件被删除
gzip * //分别压缩当前目录下所有文件 (*是通配符 ,表示所有,任意)
gzip –d * //解压当前目录下的所有文件
bzip2 file1 file2 //压缩2个文件
bzip2 -d file1.gz file2.gz //解压缩2个文件
打包文件
tar -cvf Newname.tar sourcefile //打包
tar -xvf Newname.tar //解包
tar -zcvf newname.tar.gz sourcefile1 sourcefile1 //打包后立即使用gzip工具进行压缩 (打包并压缩)
tar -zxvf Newname.tar.gz //解包并使用gzip工具进行解压(解包并解压)
Tar [参数] [压缩/打包文件时的新名称] [欲压缩的源文件]
-c :打包(建立压缩文件名,产生新文件)
-x :解包
-z :用 gzip 压缩(压缩后的格式是 gz)
-j :用 bzip2 压缩 (压缩后的格式是 bz2)
-v :打包或解包的过程中显示详细信息
-f :指定一个文件名,在 f 之后要立即接文件名
查看文件或者目录大小
du -a //
du -h //以友好可读的方式显示
du -k //以KB为单位显示内存使用情况
du -m //以MB为单位显示内存使用情况
du -h 文件名 //查看文件占用磁盘空间大小(总的,包括下面的文件和目录)
du -h 绝对路径目录 //查看目录下所有的目录占用磁盘空间大小
(可组合使用)
VIM 常用命令
:q 直接退出vi (前提是你对这个文件没有做任何修改,只是进入来看一看)
:w 保存文件,但是未退出(相当于先保存编辑的部分,还可以继续编辑,临时离开先保存)
:wq 保存后退出vim ,按Enter回车键(也可以先保存:w 后退出:q)
:q! 强制退出,不保存(不保存这次编辑的内容)
:wq! 强制保存,并退出 (wq退出不了就用这个命令,包括修改只读模式的文件)
:w 文件名,vim时未指定文件,保存时可以起个名字
vim filename 打开文档(如没有该文件,则表示新建)
Vim newfile 新建空文件(执行:wq命令则会生成一个空文件,否则不生成)
vim /usr/local/filename 绝对路径
vim +3 filename 普通方式打开文档后,直接定位第3行(光标定位)
在纯文本终端下:
(1)选定文本块,使用v进入可视模式;移动光标键选定内容
(2)复制选定块到缓冲区,用y;复制整行,用yy
(3)剪切选定块到缓冲区,用d;剪切整行用dd
(4)粘贴缓冲区中的内容,用p
查找:
1、命令模式下输入“/字符串”,例如“/am”。 回车
2、如果查找下一个,按“n”即可。
替换字符串:
s/u/2018u/ 替换当前行第1个 u 为 2018u
s/u/2018u/g 替换当前行所有 u 为 2018u
%s/u/2018u/g 替换所有行,%表示整个文件
链接文件
ln -s 文件 软链接名 //创建一个指向文件或目录的软链接(或叫符号链接 - 快捷方式。要移动要绝对路径)
ln 文件 硬链接名 //创建一个指向文件或目录的物理链接 ( 或叫硬链接 – 复制一个一样 的文件,就是备份)
修改文件或目录(文件夹)权限
chmod ugo=rwx filename //缩写法权限修改
chmod 700 dir1 //数字法权限修改
chmod –R 777 dir1 //递归遍历修改
远程拷贝文件及文件夹
scp 本地文件 远程机的用户名@远程机的IP :/远程机路径 //上传文件
scp -rp e:\data root@10.1.22.5:/root //-r: 递归复制整个目录 -p:保留原文件的修改时间,访问时间和访问权限
scp -rp root@192.168.1.222:/33 /cxk //下载文件
文本统计
wc -l filename //-l 统计行数 (lines 行数)
wc -c filename //-c 统计字节
访问网站工具
curl 请求的URL地址 //获得了http://地址 指向的页面
如果这里的URL指向的是一个文件或者一幅图都可以直接下载到本地 ,加参数 –i 可以获得头部信息
网络下载工具
wget URL地址 //下载到当前目录下
文件拆分
split -b 字节大小 文件名 //根据字节大小来分割文件(日志)
split -b 1m cxk.log //以1m的大小来分割cxk日志
split -b 字节大小 文件名 前缀名 //分割加前缀
split -b 1m cxk.log cxk_
split -l 行数 文件名 前缀名 //根据行数来分割文件(日志)
cat 文件1 文件2>新文件名 //合并日志
系统命令练习
显示正在使用的Linux内核版本
uname -a
显示操作系统的位数(数字显示)
getconf LONG_BIT
查操作系统版本号
cat /etc/redhat-release
显示主机名
hostname
显示系统日期
date
查看软件安装的位置
whereis 软件名
显示系统的磁盘使用情况
df -lh
查看系统内存使用情况
free -h
查看本地IP地址
ifconfig
显示一个以太网卡的配置
ifconfig eth0
测试从本机到对方机器物理网络的连通性(区分硬件和软件故障)
ping 对方IP
清屏 —清空所有历史输出
reset
设置系统时间
date -s “2018-11-10 08:10:10”
动态查看系统资源使用情况
top
top -d 3 //每3秒刷新一次,默认5秒
top -n 3 -b > topinfo.txt //刷新3次后,将结果定向输出到topinfo.txt文档中
top -bn1|less //分页当前系统全部进程(按回车键)
显示当前进程的状态 (或者查看进程)
ps -ef //显示所有进程
ps -aux //显示全部终端所有的属于全部用户的正在运行的程序(显示进程状态)
ps -ef|grep mysql //先列出当前系统的进程,然后在列出的进程中查找名字为mysql的进程
系统的关机、重启以及注销
shutdown - h now //关闭系统
reboot //重启
logout //注销
停止某进程
kill pid //停止某进程(pid 进程ID)
Kill -9 pid //加-9,表示强制杀掉进程
用户和组的账户管理
所有用户基本信息的文件:/etc/passwd
所有组的文件:/etc/group
useradd newuser //创建一个新用户 ,所有普通用户的家目录默认在home目录下
passwd newuser //回车,为新用户newuser设置密码,(密码是不显示的),创建新口令
userdel -r cc //删除用户cc,其家目录及文件一并删除 (如果用户登录了需要先logout注销,再删除)
groupadd -g 550 mygroup1 //创建新组,groupadd -g 组ID 组名
groupdel group1 //删除用户组group1
gpasswd -a user1 test //把user1用户添加到test用户组
su 用户名 或 su - root //切换用户,“-”前后需要有空格
id 用户名 //显示当前用户的UID,GID
groups 用户名 //显示当前用户所属组
临时赋权
sudo 命令
监控磁盘读写情况
iostat -x -k 3 1 //显示全部设备,显示扩展信息,每隔3秒刷新一次,总共刷新一次
系统的虚拟内存情况
Vmstat 3 10 //每间隔3秒采样刷新一次, 总共采样显示10次
查看网络状态信息
netstat -a //列出所有当前的连接
netstat -at //列出 TCP 协议的连接
netstat -au //列出UDP协议的连接
netstat -nlpt //查看TCP协议的链接及它们对应的进程名和PID
netstat -nlpt|grep mysqld //查看mysql 端口号