大一菜鸡的个人笔记,欢迎指点和交流。
Linux
Linux中没有错误就代表成功
Linux环境
LAMP(Linux+Apache+Mysql+PHP)或LNMP(Linux+Nginx+Mysql+PHP)
阿里云开放端口
添加安全组规则
如果要让所有人都可以连接,则在授权对象填0.0.0.0/0
指令
clear 清空屏幕
Ctrl+鼠标滚轮 放大或缩小字体
上传文件使用xftp
命令
概述
ls 列出目录
cd 进入目录
pwd 显示当前目录
mkdir 创建新目录 make dictory
mkdir -p 创建多级目录
cp 复制文件或目录 copy
rm 移除文件或目录 remove
rm -f 忽略不存在的文件,不会出现警告,强制删除
rm -r 删除多层文件夹
rm -i 询问是否删除
rmdir 删除一个为空的文件夹
rmdir -p 删除一个不为空的文件夹 或 层叠的文件夹
mv 移动文件与目录 修改文件与目录的名称
ls命令(查看)
list的缩写,可以查看linux文件夹包含的文件。而且可以查看文件权限,目录信息等。
ls / 打开起始目录
ls -a 列出目录所有文件 包含以.开始的隐藏文件
ls -A 列出除.及..的其他文件
ls -r 反序排列
ls -t 以文件修改时间排序
ls -s 以文件大小排序
ls -h 以易读大小显示
ls -l 把文件名 权限 所有者 文件大小等信息详细列出来
按易读方式按时间反序排序,并显示文件详细信息
ls -lhrt
列出当前目录中所有以t开头的目录的详细信息
ls -l t*
列出文件绝对路径(不包含隐藏文件)
ls | sed "s:^:`pwd`/:"
列出文件绝对路径(包含隐藏文件)
find $pwd -maxdepth 1 | xargs ls -ld
竖着列出
cd命令(进入目录)
changeDirectory
进入目录
cd /目录名
cd .. 返回上一级目录
cd ./当前目录
进入"home"目录
cd ~
进入上一次工作路径
cd -
把上个命令的参数当作cd参数来用
cd !$
pwd命令(查看路径)
用于查看当前工作目录
查看当前路径
pwd
查看软链接的实际路径
pwd -p
mkdir命令(创建文件夹)
用于创建文件夹
- -m 对新建目录设置存取权限,也可以使用chmod命令设置
- -p 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统会自动建立号那些尚不存在的目录,即一次可以建立多个目录
在当前工作目录下创建名为t的文件夹
mkdir t
在tmp目录下创建路径为test/t1/t的目录,若不存在,则创建
mkdir -p /tmp/test/t1/t
rm命令(删除文件或目录)
删除一个目录中的一个或多个文件或目录,如果没有使用-r选项,则rm不会删除目录。如果使用rm来删除文件,通常仍可以将该文件恢复原状。
删除任何.log文件,删除前逐一询问确认
rm -i *.log
删除test子目录及子目录中的所有档案,并且不用一一确认
rm -rf test
删除以-f开头的文件
rm -- -f*
删除所有文件
rm -rf / 系统中
rmdir命令(删除子目录)
从一个目录中删除一个或多个子目录项,删除某目录时必须具有对其父目录的写权限。
注意:不能删除非空目录
当parent子目录被删除后使它也成为空目录的话,则顺便一并删除。
rmdir -p parent/child/child11
mv命令(移动文件或修改文件名)
移动文件或修改文件名,根据第二参数类型(如目录,则移动文件;如为文件则重命名该文件)
当第二参数为目录时,第一个参数可以是多个以空格分隔的文件或目录,然后移动第一个参数指定的多个文件到第二个参数指定的目录中。
将文件test.log重命名为test1.txt
mv test.log test1.txt
将文件 log1.txt log2.txt log3.txt 移动到根的test3目录中
mv llog1.txt log2.txt log3.txt /test3
将文件file1改名为file2,如果file2已经存在,则询问是否覆盖
mv -i log1.txt log2.txt
移动当前文件夹下的所有文件到上一级目录
mv * ../
cp命令(复制文件)
将源文件复制到目标文件夹
注意:命令行复制,如果目标文件已经存在则会提示是否覆盖,而在shell脚本中,如果不加-i参数,则不会提示,而是直接覆盖。
-i 提示
-r 复制目录及目录内所有项目
-a 复制的文件与原文件时间一样
复制a.txt到test目录下,保持原文件时间,如果原文件存在则会提示是否覆盖
cp -ai a.txt test
为a.txt建议一个链接(快捷方式)
cp -s a.txt link_a.txt
cat命令(显示、创建、合并文件)
cat主要有三大功能:
- 一次显示整个文件
cat filename
- 从键盘创建一个文件 只能创建新文件,不能编辑已有文件
cat > filename
- 将几个文件合并为一个文件
cat file1 file2 > file
-b 对非空输出行号
-n 输出所有行号
把log2012.log的文件内容加上行号后输入log2013.log这个文件里
cat -n log2012.log log2013.log
把log2012.log和log2013.log的文件内容加上行号(空白行不加)之后将内容附加到log.log里
cat -b log2012.log log2013.log log.log
more命令(逐页展示文件)
空格键为下一页,b键往回一页。
+n 从第n行开始显示
-n 定义屏幕为n行
+/pattern 查找pattern字符串 然后在pattern前两行开始显示
-c 从顶部清屏
-d 提示"Press space to continue,'q'to quit",禁用响铃功能。
-l 忽略Ctrl+l(换页)字符
-p 通过清除窗口而不是滚屏来对文件进行换页,与-c相似。
-s 把连续的多个空行显示为一行
-u 去除下划线
开机登录
开机会启动许多程序,这个在Windows叫服务,在Linux叫守护线程(daemon)
一般有三种登陆方式
- 命令行
- ssh(xshell)
- 图形界面(虚拟机使用)
最高权限账号为root
关机或重启
除非迫不得已否则不关机,关机或重启前必须sync
sync 同步内存数据到硬盘 关机前的安全操作
shutdown 立即关机
shutdown -h 10 10分钟后关机
shutdown -h +10 同上
shutdown -h now 立即关机
shutdown -h 20:25 20:25关机
shutdown -r now 立即重启
shutdown -r +10 十分钟后重启
reboot 重启
halt 关机
Linux目录
-
/bin Binary 存放在最常用的命令
-
/root 存放启动Linux时使用的一些核心文件,包括一些连接文件和镜像文件
-
/dev Device 存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。
-
/etc 存放所有系统管理所需要的配置文件和子目录
-
/home 用户的主目录 每个用户有一个自己的目录
-
/lib 存放系统最基本的动态连接共享库,其作用类似于DLL文件
-
/lost+found 一般是空的 当系统非法关机 这里会存放一些文件
-
/media linux会自动识别一些设备,如U盘、光驱等等,当识别后,linux会把识别的设备挂载在这个目录下
-
/mnt 用于用户临时挂载别的系统文件,可以把光驱等挂在/mnt上,然后进入该目录可以看到光驱内的文件
-
/opt 给主机额外安装软件所摆放的目录
-
/proc 这是一个虚拟的目录,它是系统内存的映射,可以通过访问这个目录来获取系统信息
-
/root 超级权限者的用户主目录
-
/sbin Super User 存放管理员使用的系统管理程序
-
/srv 存放一些服务启动之后需要提取的数据
-
/sys 存放文件系统sysfs
-
/tmp 存放临时文件
-
/usr 用户的很多应用程序和文件都存放在这个目录 类似program files
-
/usr/bin 系统用户使用的应用程序
-
/usr/sbin 超级用户使用的比较高级的管理程序和系统守护程序
-
/usr/src 内核源代码默认放置的目录
-
/var 存放不断扩充的东西 我们习惯把经常修改的文件放在这个目录下 包括各种日志
-
/run 是一个临时文件系统 存储系统启动以来的信息 当系统重启,这个目录应该会被清空
-
/www 存放服务器网站相关的资源,环境,项目
文件基本属性
最左边开头表示不同的属性
- d开头表示是文件夹
- -开头表示文件
- l表示为链接文档(快捷方式)
- b表示外部接口(可随机存取装置)
- c表示鼠标或键盘等
接下来的字符 每三个为一组
r代表可读 w代表可写 x代表可执行(execute) 如果没有此权限 则用-代替
左边的数字表示文件的个数 中间表示属主 右边表示属组(用户组)
表示文件大小和时间
修改文件属性
chgrp -R 更改属组
chown -R 更改属主
r:4 w:2 x:1
可读可写不可执行 rw- 6
可读可写可执行 rwx 7
chmod 777 赋予所有权限
chmod 700 等等等等
文件内容查看
-
cat 由第一行开始显示文件内容
-
tac 从最后一行开始显示
-
-
-
nl 显示的时候带上行号
- more 一行一行地显示文件内容 enter往下 空格翻页 :f 看行号 使用q离开
- less与more相似 但less可以往前翻页 空格翻页 上下键移动 使用q离开
- head 只看头几行
- tail 只看尾几行
- 向下搜索 /set 搜索set 在文件内使用
- 向上查询 ?set 按n跳到下一个 N表示跳到上一个
网络配置信息
windows用ipconfig
Linux用ifconfig
链接
分为硬链接和软链接(符号链接)
硬链接:相当于备份 但只占一份的空间
软连接:相当于快捷方式
编辑文件 软硬链接的文件都会被修改
touch创建文件
touch f1
ln f1 f2 创建指向f1的硬链接f2
ln -s f1 f3 创建指向f1的软连接f3
echo输入文件
echo "i love you" >> f1
f1 f2 f3都可以读取到i love you
VIM编辑器
VIM是VI的升级版
主要用来查看文件,编辑文件,保存文件。
VI和VIM分为三种模式,命令模式,输入模式,还有底线命令模式。
命令模式
刚启动VI/VIM时,进入的就是命令模式。此时无法输入,
- 按下i/a/o进入输入模式。
- 按x删除当前光标所在的字符
- 在命令模式输入:切换到底线命令模式
- 按esc退出输入模式到命令模式
- 在底线命令模式,按q退出程序,按w保存文件
:wq 在命令模式下保存并退出
当使用指令:
vim abc.txt
如果abc.txt不存在 则新建 存在则修改
:set nu 显示行号
强制写入等:——冒号
账号管理
添加用户
useradd -m 用户名 自动创建主目录
useradd -G 用户组 分配用户组
删除用户
userdel -r 用户名 删除用户并删除用户的目录
userdel 用户名 删除用户 但不删除目录
修改用户
usermod -d /home/233 用户名 把用户的目录改为233
查看账号信息:cat /etc/passwd
切换用户
su 用户名 切换用户
su - 用户名 切换并使用用户的工作环境
[root@rush home]#
root为当前用户吗 rush为主机名 home是目录 #表示超级用户
切换后#变为$符号
配置密码
passwd 用户名
Linux输入密码是不会显示的
修改密码
passwd
冻结与解冻账号
passwd -l 用户名 使用户无法登录
passwd -d 用户名 清空密码 并且无法登录
passwd -u 用户名 解冻账号
用户组管理
查看用户组
cat /etc/group
创建用户组
groupadd 用户组名 id号自增1
groupadd -g 520 用户名 创建用户组并指定id号为520
删除用户组
groupdel 用户名
修改用户组
groupmod -g id 修改id
groupmod -n name 修改用户组名
groupmod -g 666 -n rush 同时修改id和用户组名
切换用户组
newgrp 用户组
查看用户信息
/etc/passwd
root为用户名 x是登录密码(不可见) 第一个0是账号id 第二个0是用户组id 之后是主目录 主登录shell
加密后的用户密码在/etc/shadow
磁盘管理
df 列出磁盘使用情况 用字节表示
df -h 用KB MB GB表示大小
du 当前目录的情况
du -a 显示所有文件的情况 还可以看到子文件夹
du -sm /* 检查每个目录使用的情况
du不要在主目录使用 会一直加载,若使用了按Ctrl + Z 退出
挂载本地磁盘或文件
mount /dev/rush /mnt/rush 将外部设备rush挂载到mnt目录下,实现访问
unmount /dev/rush /mnt/rush 卸载
unmount -f /dev/rush /mnt/rush 强制卸载
进程管理
查看进程
ps -a 线程运行的所有进程信息
ps -u 看用户的进程信息
ps -x 显示后台运行进程的参数
ps -aux|grep mysql 查看mysql的进程
|为Linux管道符 grep 查找
ps -ef|grep mysql 查看mysql的父进程信息
pstree -pu 以目录树形式来看 很清晰
p:显示父id
u:显示用户组
结束进程
kill -9 进程id
环境安装
- rpm
- 解压
- yum在线安装
rpm -qa|grep jdk 检查jdk版本信息
rpm -e --nodeps jdk 卸载jdk 先用qa指令查询信息 再对应地卸载
rpm -ivh 文件名 安装文件
tar -zxvf 解压文件
配置环境
vim /etc/profile
防火墙
firewall-cmd --zone=public --add-port=9000/tcp --permanent 开启9000端口 开启后需要重启防火墙
systemctl restart firewalld.service 重启防火墙
firewall-cmd --list-ports 查看防火墙端口
资料来源:https://www.runoob.com/w3cnote/linux-common-command-2.html