关于 Linux 你需要先知道这些...
关于位置的探讨
在 Linux
下有两种定位方式: 相对定位
, 绝对定位
;
- 相对定位:是从当前所在目录开始,通过
../
和./
来表示上级目录和当前目录; -
绝对定位:是从
/
根目录算起,一层一层的定位;-
绝对定位举例:
cd /usr/local/bin
#此时就进入/usr/local/bin
目录下; -
相对定位: 来到当前目录 (
/usr/local/bin
), 如果我想来到/usr/local
目录下,可以 使用命令cd ../
返回上级目录。如果想进入/usr/local/nginx
目录,可以 使用cd ../nginx
这是就会来到/usr/local/nginx
目录下;
-
-
目录/文件的进入[查看],创建,复制,移动,删除和重命名
cd
: 进入目录;- 用法:
cd path
; - 示例:
cd /usr/local
; 进入 /usr/local/ 目录中; cd ../share
; 进入上级目录下的share
目录中;
mkdir
:创建目录- 创建一个或多个目录。
☁
test mkdir dir1
: 创建一个目录 ☁mkdir dir1 dir2 dir3
:创建多个目录 ☁test mkdir {1,2,3}
:创建多个目录【1 2 3】目录; ☁mkdir -p dir1/dir2/dir3
: 创建联机目录
ls
: 查看目录- ☁
ls
:列出当前目录中的所有文件和目录; ☁ls /path
: 列出 /path 中的所有文件
mv
: 移动文件夹或者文件【重命名】- 用法:
mv 源文件 目标文件夹/文件
; - 移动:
mv ./a.php ../path/
: 将当前目录下的 a.php 移动到上级目录下的 path 目录中; - 示例:
mv dir1 dir2
; 将dir1
移动成dir2
.此处是重命名的作用。
cp
: 复制- 用法:
cp 源文件 目标文件
; - 复制文件夹:
cp -R [递归] 源文件夹 目标文件夹
;
rmdir
: 删除空文件夹 (如果文件夹非空,不能用这个命令)- 用法
rmdir 空文件夹名称
- 示例
rmdir ./dir2/dir1
再ls ./dir2
看一看,dir1 还有没有?
touch
: 创建一个空文件. Touch 文件名称- 示例:
touch tmp.txt
创建一个 tmp.txt 文件 - 如果要创建的文件已经存在,
touch
命令会修改文件的inode
时间;
rm
: 删除一个文件或文件夹- 用法
rm 文件名称
; rm -rf ./path
: (-r
表示循环迭代的意思,这样他碰到子目录就进去删,-f
是强制的意思) 强制递归删除 /path目录下的所有文件;
pwd
: 显示当前所在位置;cd /usr/local/bin
pwd
/usr/local/bin
所在的目录ln
: 链接命令(相当于 windows 下面的快捷方式) 用法ln -s 源文件夹或源文件 目标链接名称
ln -s /var/tmp ./linkvar
# 将/var/tmp
文件软连到./linkvar
[在./linkvar
中创建一个/var/tmp
的快捷方式]文本文件查看
>
: 重定向(覆盖原文件)>>
: 重定向(追加源文件)查看
more
,less
,head
,tail
,cat
,以及grep
more
查看文件的内容 用法more filename
less
作用/用法同more
[
more
最后一屏时自动退出,less
不自动退出,按q
退出,也可以ctrl+b
往前翻,ctrl+f
往后翻]head
: 查看文件的前几行 用法head -3 filename
(不一定是 -3 哦,只是举个例子,查看前 3 行)tail
: 查看文件的后几行 用法 tail -5 filename (也不一定是-5,只是举个例子,查看后 5 行)cat
: 把文件的内容连接起来打印到终端或者用 > 覆盖到另一个文件 用法 cat 文件 1 文件 2 ...文件 n (直接把 n 个文件的内容连接起来输出在屏幕上)cat 文件 1 文件 2 ...文件 n > 文件 n+1(把 n 个文件连接成一个新文件) 示例 echo aa > aa.txt echo bb > bb.txt cat aa.txt bb.txt > cc.txt
grep
: 匹配文件中的行grep
判断字 文件grep adm /etc/passwd
,会把/etc/passwd 文件中含有 adm 的行打印出来more a.txt|grep china
, 把本来要输出 a.txt 的内容,交给grep
再匹配,匹配含有 china 的行. - 用法:
-
文件打包压缩及解压
.tar
解包:tar xvf FileName.tar
打包:tar cvf FileName.tar DirName
(注:tar 是打包,不是压缩!) 注:如果不想看打包的具体过程,可以用tar cf filenamt.tar dirname
;.gz
解压 1:gunzip FileName.gz
解压 2:gzip -d FileName.gz
压缩:gzip FileName
压缩且不删除源文件:gzip -c FileName > FileName.gz
.tar.gz
解压:tar zxvf FileName.tar.gz
压缩:tar zcvf FileName.tar.gz DirName
.bz2
解压 1:bzip2 -d FileName.bz2
解压 2:bunzip2 FileName.bz2
压缩:bzip2 -z FileName
.tar.bz2
解压:tar jxvf FileName.tar.bz2
压缩:tar jcvf FileName.tar.bz2 DirName
.bz
解压 1:bzip2 -d FileName.bz
解压 2:bunzip2 FileName.bz
压缩:未知.tar.bz
解压:tar jxvf FileName.tar.bz
压缩:未知.Z
解压:uncompress FileName.Z
压缩:compress FileName
.tar.Z
解压:tar Zxvf FileName.tar.Z
压缩:tar Zcvf FileName.tar.Z DirName
.tgz
解压:tar zxvf FileName.tgz
压缩:未知 .tar.tgz 解压:tar zxvf FileName.tar.tgz
压缩:tar zcvf FileName.tar.tgz FileName
.zip
解压:unzip FileName.zip
压缩:zip FileName.zip DirName
.rar
解压:rar a FileName.rar
压缩:rar e FileName.rar
-
文件查找
find / -name \*.php
在根目录下查找 文件名中包含.php
的文件 无错误查找技巧: 在Linux系统中,普通用户使用该命令时,可能会出现Permissiondenied." (禁止访问)
的错误信息。 系统将无法找到匹配的文件,可以使用find / -name access_log 2>/dev/null
将错误信息转移继续查找文件。根据文件的特征查询方法:
find / -amin -10 # 查找在系统中最后 10 分钟访问的文件 find / -atime -2 # 查找在系统中最后 48 小时访问的文件 find / -empty # 查找在系统中为空的文件或者文件夹 find / -group cat # 查找在系统中属于 groupcat 的文件 find / -mmin -5 # 查找在系统中最后 5 分钟里修改过的文件 find / -mtime -1 #查找在系统中最后 24 小时里修改过的文件 find / -nouser #查找在系统中属于作废用户的文件 find / -user fred #查找在系统中属于 FRED 这个用户的文件
参数说明:
-amin n
查找系统中最后 N 分钟访问的文件 atime n 查找系统中最后 n24 小时访问的文件 cmin n 查找系统中最后 N 分钟被改变状态的文件 ctime n 查找系统中最后 n24 小时被改变状态的文件 empty 查找系统中空白的文件,或空白的文件目录,或目录中没有子目录的文件夹 false 查找系统中总是错误的文件 fstype type 查找系统中存在于指定文件系统的文件,例如:ext2 . gid n 查找系统中文件数字组 ID 为 n 的文件 group gname 查找系统中文件属于 gnam 文件组,并且指定组和 ID 的文件 技巧: find 配合 grep 来查询含有某个关键词的文件find /www -name “*.php” |xargs grep ‘mysql_connect’
-
Linux 的系统命令
-
whoami 或者 who am I , 显示当前登陆者的用户名称 用法 whoami 或 who am I
-
示例 先用 whoami 看看自己是谁 再 su -登陆 root 账号, 再运行 who am i 看看自己谁?
-
who 是显示谁在线
-
su – 切换用户 用法 su 用户名 或者 示例 su – root ; su 后面加-和不加-有什么区别?
-
su – 用户名 加 -后,不仅切换到其他用户,而且环境变量这些什么的都切换成其他用户的. 而不加-的话,仅仅使用这个用户的权限,而不使用其他.
-
Free 显示内存状态 用法
free -m -s
(-m 表示内存的状态用 M 为单位来表示, -s 表示刷新的时间间隔,秒为单位) 示例: free -m -s 3 -
top (类似于 windows 下面的资源管理器)
ps
列出进程 用法ps -aux
管道操作$xx|strtoupper
,竖线前面的内容,作为竖线后的命令的输入参数 -
kill 进程号 , root身份运行
-
pkill 进程名, 注意,杀所有 进程名 的进程
-
-
文件挂载
mount
命令,直接输入,可以看到目前的硬盘分区和所挂载点.mount
命令用法mount -t
文件系统类型-o
选项参数 device(设备) dir(挂载点)-t
: 如 fat32,ext3,iso9660,ntfs 等,但这个选项通常不必指定,系统往往能自动认出来.-o
: option,选项的意思,可以是-ro(只读) -rw(读写),-loop(把文件看成一分区)umount
卸载 用法umount dir(挂载点)
或者umount dev(所挂载的设备)
- 示例
umount /mnt/cd
-
vim 操作
-
命令模式下的光标快捷移动键
-
字符级移动
h
左移一个字符l
右移一个字符 -
单词级移动
w
移到下个单词首e
移到本单词尾b
移到本单词首 -
行级移动
$
移到行尾0
移到行首j
下移一行k
上移一行 -
段级移动
{
上移一段}
下移一段 -
屏级移动
H
移到本屏幕第一行L
移到本屏幕最后一行 -
文章级移动
G
移到文章末尾1G
移到文章开头 -
命令模式下的快捷删除
1:d+
光标快捷移动键2:x
删除当前字符3:dd
删除一行 -
命令模式下的复制
1:v+
光标快捷移动键+y 2:yy
复制一行3:yny
复制 n 行, n 为数字 -
命令模式下的粘贴命令
p
-
有效的命令组合
xp
交换两个字符ddp
交换两行 -
其他命令 . 重复上一次命令
u
撤消J
合并两行 -
尾行模式 相对简单一些
w
保存,q
退出wq
保存+退出!
表示强制 如q!
,更改了之后,不保存,强制退出.
-
-
网络配置时常用的命令
service network stop/start/restart
: 停/启/重启网络
ifdown eth0
: 关闭 eth0 网卡ifup eth0
: 激活 eth0 网卡ifconfig
查看网卡信息 -
远程管理
-
常用的端口号
ftp:21 ssh:22 telnet:23 http:80 https:443 Mysql:3306
-
linux 的用户管理
- 增加组(
groupadd
) - 修改组(
groupmod
) - 删除组(
groupdel
) - 增加用户(
useradd
) - 修改用户(
usermod
) - 删除用户(
userdel
)
groupadd 增长一个用户组 用法 groupadd [-g 组 id] 组名称 示例 groupadd -g 502 javaf (指定组 id=502) groupadd javae (不指定组 id,由系统自动生成) groupdel 删除一个组 用法 groupdel 组名 示例 groupdel javae groupmod 修改一个组 用法 groupmod [-g 组 id] [-n 新组名] 示例 groupmod -g 509 javaf groupmod -n javax javaf useradd 增加一个用户 用法 useradd [-g 组名] [-d 家目录] 示例 useradd -g javaf -d /var/javaf03/ 组名 javaf03 usermod 修改一个用户 用法 usermod [-g 组名] [-d 家目录] [-l 新用户名] 用户名 示例 usermod -g 502 -d /home/javaf03 javaf03 userdel 删除一个用户 用法 userdel 用户名 - 示例 userdel javaf03 userdel mysql -r // -r 代表连用户的相关文件彻底删除
passwd
修改密码 注意,我们刚刚用useradd
增长一个新用户之后,还不能立即使用,得给新用户设一个密码才可以使用. 用法:passwd username
然后两次输入相同密码,就可以使用了.
- 增加组(
-
注意⚠️:
- 用户信息在
/etc/passwod
文件里存储 用户密码在/etc/shadow
文件里加密存储 组信息在/etc/group
文件里存储
- 用户信息在
-
权限管理
用户 权限 权限的数值表示 u(表示文件的属主) r (读权限) 4 g(与文件属主一组的用户) w(写权限) 2 o(既非 u,又不同组的其他人) x(执行权限) 1- 每个文件或者文件夹,都有 3 个权限
-
修改权限的方法
- 修改权限有两种方法:一种是相对法,一种是绝对法.
- 相对法,是指在原有权限基础上,针对不同的角色加/减 某一个权限
- 绝对法,则不需考虑之前的角色及对应权限,直接指定最终的各角色权限
- 修改权限有两种方法:一种是相对法,一种是绝对法.
-
绝对法修改权限 特点:不管之前的权限是什么样儿的,直接把 3 个对象(u,g,o)的权限改成指定权限 如 chmod 755 for.sh
-
相对法修改权限
特点:在知道当前权限的基础上,针对 3 种角色(u,g,o)中的某一个角色,增加或减小某种权限(r,w,x) 如
chmod o+x for.sh
修改一个文件的主人 chown (change owner 改变主人) chown 新主人 某文件 , 修改一个文件的组chgrp(change group) chgrp
新组 某文件