关于 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/binpwd/usr/local/bin所在的目录ln: 链接命令(相当于 windows 下面的快捷方式) 用法ln -s 源文件夹或源文件 目标链接名称ln -s /var/tmp ./linkvar# 将/var/tmp文件软连到./linkvar[在./linkvar中创建一个/var/tmp的快捷方式]文本文件查看
>: 重定向(覆盖原文件)>>: 重定向(追加源文件)查看
more,less,head,tail,cat,以及grepmore查看文件的内容 用法more filenameless作用/用法同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.txtgrep: 匹配文件中的行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新组 某文件