linux的用户
linux的用户和windwos差不多,分为管理员用户和普通用户。
普通用户:权限没那么高而已。
管理员用户:在linux中就是root用户,所拥有的权限是最高的。
linux的目录结构

注意:Linux中没有像windows那样分c盘、d盘…最底层就是 / 也就是根目录。
- /
根目录,经常用。 - /root
根目录下面的root目录,使用root账号登录linux后,默认进入的就是root目录。 - /bin
根目录下面的bin目录,存放二进制文件的。 - /etc
根目录下面的etc目录,存放系统的一些配置文件。 - /home
根目录下面的home目录,每个用户都有自己的目录,除了root用户外,其它用户的目录都在这里面。 - /usr
根目录下面的usr 目录,相当于windows下的program files目录。
目录授权
- 第1位表示文件类型: -文件 d文件夹 l链接;
- 第2位开始每3位构成一组,总共3组,表示:所属用户user、所属用户组group、其他用户组other的权限详情。
- 每组权限依次为:读、写、执行,用字母rwx表示,没有该类权限使用-表示。

chmod命令
chmod主要是进行文件权限管理的,可以给文件增加修改删除权限
语法 chmod [-R] 权限 文件或者文件夹
选项:-R,对文件夹内的全部内容应用同样的操作
数值型权限管理
权限可以用3位数字来代表,第一位数字表示用户权限,第二位表示用户组权限,第三位表示其它用户权限。
数字的细节如下:r记为4,w记为2,x记为1,可以有:
0:无任何权限, 即 —
1:仅有x权限, 即 –x
2:仅有w权限 即 -w-
3:有w和x权限 即 -wx
4:仅有r权限 即 r–
5:有r和x权限 即 r-x
6:有r和w权限 即 rw-
7:有全部权限 即 rwx# 用户拥有读写执行权限(rwx 7), 用户组拥有读写权限(rw 6), 其他用户拥有读的权限(r 4) chmod 764 1.txt # 如果需要所有用户具有可读可写可执行权限 chmod 777 1.t.xt # 注意: 在开发中尽量不要出现777的权限会让别人觉得你很low 侮辱你的职业字母型权限管理
r : 读权限
w : 写权限
x : 执行权限
u : 拥有者
g : 用户组
o : 其他用户
a : 所有用户
# 格式1: chmod - + 权限 # 给自己减少可执行权限,给用户组增加写入权限 abc是目录名称 chmod u-x,g+w abc # 给所有用户减少读的权限 a是all的缩写 chmod a-r abc # 格式2: chmod = 权限 # 给自己设置属主权限为只读,此时原有权限全部消失,只保留新赋予的权限内容 chmod u=r abc # 给所有用户最高权限 chmod a=rwx abc # 格式3: 混用 # 给用户读写执行权限, 给用户组读写权限, 给其他用户只读权限 chmod u=rwx,g-x,o-wx abc # 如果我们需要修改当前目录及其目录中子文件的权限,需要使用递归方式完成操作 条件-R选项即可 chmod -R u=rwx,g=rw,o=r aaa
操作目录的一些命令
/ ./
/ 代表的是根目录
./ 代表的是当前目录,不写./时,默认就是当前目录
../ 代表的是当前目录的上一级目录
查看目录的命令:ll 和 pwd
ll语法:ll 目录
注意:ll后面不接目录时,默认是当前目录
pwd语法:pwd
列出当前目录下的所有内容。
[root@helf ~]# ll列出根目录下的bin目录下的所有内容。
[root@helf /]# ll /bin列出当前目录下的所有文件,包含隐藏文件。
[root@helf /]# ls -al显示当前在那个目录下。
[root@helf src]# pwd
切换目录的命令:cd
切换到根目录。
[root@helf ~]# cd /切换到当前用户的目录,下面两个都是。
[root@helf /]# cd ~ [root@helf /]# cd切换到上一级目录
[root@helf ~]# cd ..切换到上一次访问的目录
[root@helf bin]# cd -
创建目录的命令:mkdir
在当前目录下创建文件夹a。
[root@helf ~]# mkdir a在根目录下的root下创建一个文件夹b。
[root@helf ~]# mkdir /root/b在当前目录下创建b文件夹,在b文件夹下创建c文件夹,在c文件夹下创建d文件夹,假设当前目录b文件夹不存在。
语法:mkdir -pv 新目录 注意:创建多级目录时一定要加上【-pv】,mkdir b/c/d 这个一次只能创建一级目录。 [root@helf ~]# mkdir -pv b/c/d
删除目录的命名:rm
语法: rm -rf 目录
删除当前目录下的a目录,以及这个目录下的文件
[root@helf ~]# rm -rf a删除根目录下的a目录下的b目录及其子目录
[root@helf ~]# rm -rf /a/b
移动目录和重命名的目录的命令:mv
mv命令有两个作用:一个是重命名文件夹,一个相当于windows中的剪切命令
修改当前目录下的a目录名称为b
[root@helf ~]# mv a b修改根目录下的a目录名称为b
[root@helf ~]# mv /a /b移动当前目录下的a到根目录
[root@helf ~]# mv a /
复制目录的命令:cp
复制当前目录下的b目录到当前目录下的c目录
语法:cp -r 源文件 目录文件 [root@helf ~]# cp -r b c
注意:cp -r 可以复制多级目录,记得加上 -r 不加就是复制文件的。
操作文件的一些命令
创建一个文件的命令:touch
语法:touch 源文件
在当前目录下创建一个1.txt
[root@helf ~]# touch 1.txt在根目录下创建一个1.txt
[root@helf ~]# touch /1.txt
一次创建多个文件
[root@helf ~]touch 1.txt 2.txt 3.txt
查看文件内容
- cat:主要用于显示整个文件内容,适合查看小文件
- more:用于分页显示文件内容,适合查看大文件。
more /var/log/syslog
# 空格:下一页
# b / Ctrl+b:上一页(文件可用,管道不行)
# Enter:下一行
删除一个文件的命令:rm
删除当前目录下的 1.txt,删除别的目录下的与此类似,把 1.txt 改成别的路径文件即可。
语法:rm -rf 源文件 [root@helf ~]# rm -rf 1.txt
重命名文件和剪切文件的命令:mv
修改当前目录下的 1.txt 为 2.txt
mv 源文件 新文件 注意:重命名要求源文件和新文件在同一个路径下 [root@helf ~]# mv 1.txt 2.txt剪切当前目录下的 2.txt 到 根目录下
语法:mv 源文件 新文件 [root@helf ~]# mv 2.txt /2.txt
复制文件的命令:cp
复制当前目录下的 a.txt 到 根目录下的 a.txt
语法:cp 源文件 新文件 [root@helf ~]# cp a.txt /a.txt
文件或者目录搜索的命令:find
查找当前目录中以a开头的文件:
语法:find 路径 -name 正则表达式 [root@helf ~]# find ./ -name 'a*'
系统命令
ip相关
查看ip的命令:ifconfig
[root@helf ~]# ifconfig测试两台机器是否连通(这个和windos一个):ping
[root@helf ~]# ping 192.168.89.128
进程相关
模糊查看某个进程:ps -ef | grep -i 进程名
[root@izwz9avfmnk50odoq5rldpz ~]# ps -ef | grep -i mysql杀死进程:kill -9 进程id
防火墙和端口相关
查看防火墙已经开放的端口
centos7以下版本 [root@helf ~]# /etc/init.d/iptables status centos7以上版本 [root@helf~]# firewall-cmd --zone=public --list-ports防火墙开放某个端口
centos7以下版本 [root@helf ~]# /sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT [root@helf ~]# /etc/rc.d/init.d/iptables save centos7以上版本 [root@helf~]# firewall-cmd --zone=public --add-port=80/tcp --permanent [root@helf~]# firewall-cmd --reload
- Centos7防火墙
##Centos7 防火墙打开端口号
firewall-cmd --zone=public --add-port=3306/tcp --permanent
#下面3行是参数说明
#–zone #作用域
#–add-port=80/tcp #添加端口,格式为:端口/通讯协议
#–permanent #永久生效,没有此参数重启后失效
#重启防火墙后看看是否生效
firewall-cmd --reload #重启firewall
firewall-cmd --list-ports #查看已经开放的端口
#移除端口号
firewall-cmd --permanent --remove-port=8080/tcp
#如果想永久停止防火墙,执行下面操作
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动#如果想永久停止防火墙,执行下面操作
systemctl start firewalld.service #启动防火墙#查看防火墙状态(关闭not running,开启running)
firewall-cmd --state
# 查询端口是否开放
firewall-cmd --query-port=8080/tcp
# 开放80端口
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=8080-8085/tcp
# 移除端口
firewall-cmd --permanent --remove-port=8080/tcp
查看防火墙的开放的端口
firewall-cmd --permanent --list-ports
#重启防火墙(修改配置后要重启防火墙)
firewall-cmd --reload
# 参数解释
1、firwall-cmd:是Linux提供的操作firewall的一个工具;
2、--permanent:表示设置为持久;
3、--add-port:标识添加的端口;
vim文本编辑器
vim一般的操作流程
1.vim 文件 进入【一般模式】。 2.按下i,从【一般模式】进入【插入模式】,该模式下可以编辑文本信息。 3.按下esc,从【插入模式】进入【一般模式】 4.在【一般模式】下输入:wq,也就是保存并退出通过关键字模糊查询文本中的内容
a.在一般模式下,输入 / 关键字 ,并回车
b.按n可以向下查找,按N可以向上查找复制一行内容
a.在一般模式下,在需要复制的行上面 按下 yy b.在需要粘贴的地方输入 p 即可粘贴,按下一次就是复制一行复制多行内容
a.在一般模式下,在需要复制的行上面 按下 nyy,n为数字,如 3yy,就是复制从当前行开始的3行。 b.按下p,进行粘贴
其他
压缩和解压
主要有zip和unzip、tar命令
安装后可以用来压缩和解压
yum install zip
yum install unzip
语法如下:
- 压缩一个目录下的所有文件
zip 1.zip /test/*
- 查看压缩文件目录,但不解压。
unzip -v test.zip
- 将压缩文件test.zip在指定目录tmp下解压缩,如果已有相同的文件存在,要求unzip命令覆盖原先的文件。
unzip -o test.zip -d tmp/
参考: Linux命令zip和unzip
tar命令
tar命令是进行打包,解包, 压缩和解压的命令
打包: 将多个文件归档为一个文件,文件大小不会减小.
解包(拆包):将一个包文件拆分为多个实体文件.
压缩:将文件按照一定的算法减小体积,但是文件的内容和信息不发生改变
解压:将一个压缩文件还原到正常状态.
参数:
- c : 打包选项
- x : 解包选项
- z : 压缩或者解压选项
- v : 展示过程信息
- f : 指定文件名称
注意: c 和x 参数不能同时出现在终端命令中
打包
# tar -cvf 包的名称 要打包的文件列表 tar -cvf 1_3.tar 1.txt 2.txt 3.txt # 将1.txt 2.txt 3.txt 打包到 aaa目录下 tar -cvf aaa/1_3.tar 1.txt 2.txt 3.txt解包
# 将原有的.txt文件全部删除 rm -f *.txt # 将1_3.tar 解压到当前压缩包所在位置 tar -xvf 1_3.tar # 将个文件解压bbb目录下 # 此时需要使用选项C(大写)指定解包路径 tar -xvf 1_3.tar -C bbb压缩
tar -zcvf 1_3.tar.gz 1.txt 2.txt 3.txt解压缩
tar -zxvf 1_3.tar.gz -C bbb在开发中,我们一般使用的最多的是解压.解压指令可以记忆为长兄为父(zxvf)
注意:
- 压缩时,如果源文件太小,可能体积会增大 例如 被压缩文件只有20B 可能压缩完成后大小是50B
- 压缩和解压时一般使用.tar.gz结尾,方便程序员交流
- 使用上述指令压缩后,文件为gzip压缩格式.
zmodem拖拽上传文件
xshell或crt连接linux后默认是不可以拖拽上传。需要安装lrzsz
yum install lrzsz
参考:xshell使用zmodem拖拽上传文件(安装lrzsz(zmodem))
linux查询磁盘和分区的指令
查看磁盘情况
- lsblk -f (不加-f还可以看到磁盘的大小)
[root@izwz9avfmnk50odoq5rldpz ~]# lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
vda
└─vda1 ext4 59d9ca7b-4f39-4c0c-9334-c56c182076b5 /

- df -h (推荐这个)
[root@izwz9avfmnk50odoq5rldpz ~]# df -lh
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 40G 7.2G 31G 20% /
devtmpfs 910M 0 910M 0% /dev
tmpfs 920M 0 920M 0% /dev/shm
tmpfs 920M 73M 848M 8% /run
tmpfs 920M 0 920M 0% /sys/fs/cgroup
tmpfs 184M 0 184M 0% /run/user/0
查看目录的磁盘使用情况
- du -h ./

