linux
记
添加开机启动项
更改/etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local
redis 启动命令
/data/java/redis/redis-5.0.2/src/redis-server ../redis.conf &
nginx 启动命令
/usr/local/nginx/sbin/nignx -s reload
启用服务
systemctl enable rc-local
启动服务
systemctl start rc-local
**## **查看启动端口
netstat -nutlp
netstat -ntlp
终结某个端口服务
kill -9 22132
启动项目
nohup java -jar qqq-admin.jar > qqq.log &
查看日志
tail -f qqq.log
**# **菜鸟教程
linx 系统启动过程
- 内核的引导
- 运行 init
- 系统初始化
- 建立终端
- 用户登录系统
文件管理与目录管理
ll
ls
- /bin Binaraes(二进制文件)的缩写,存放最经常使用的命令
- /root 存放启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件
- /dev Device(设备)的缩写,存放 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的
- /etc Etcetera(等等)的缩写,存放所有的的系统管理所需要的配置文件和子目录
- /home 用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的,如上图中的 alice、bob、eve
- /lib Library(库)的缩写,存放系统最基本的动态连接共享库,作用列斯于 Windows 里的 DLL 文件。几乎所有应用程序都需要用到这些共享库
- /lost+found 一般情况系是空的,当系统非法关机后,这里就存放了一些文件
- /media linux 系统会自动识别一些设备,如 u 盘、光驱等,识别后,就会把识别的设备挂载到这个目录
- /mnt 让用户临时挂载别的文件系统的,可以将光驱挂载在/mnt/上,然后进该目录就可以查看光驱里的内容
- /opt optional(可选)缩写,给主机额外安装软件所拜访的目录
- /proc Processes(进程)缩写,是一种伪文件系统(虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录害死一个虚拟的目录,他是系统内存的映射,可以通过直接访问这个目录来获取系统信息;内容不在硬盘上而是在内存里
- /root 系统管理员(超级权限者)的用户主目录
- /sbin s:Super User; Superuser Binaries(缩写),存放系统管理员使用的系统管理程序
- /selinux Redhat/CentOS 所特有的目录,Selinux 是一个安全机制,类似于 windows 的防火墙,但是这套机制比较负载,存放 selinux 相关的文件的
- /srv 存放一些服务启动之后需要提取的数据
- /sys Linux2.6 内核的一个很大的变化,安装了 2.6 内核中新出现的一个文件系统 sysfs;sysfs 文件系统继承了三种文件系统的信息:针对进程信息的 proc 文件系统、针对设备的 devfs 文件系统以及针对伪终端的 devpts 文件系统;此文件系统是内核设备树的一个直观反映;当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建;
- /tmp temporary(临时)缩写,用来存放一些临时文件
- /usr unix system resources(unix 系统资源)缩写,这是一个非常重要的目录, 用户的很多应用程序和文件都放在这个目录下,类似 windows 下的 program files 目录
- /usr/bin 系统用户使用的应用程序
- /usr/sbin 超级用户使用的比较高级的管理员程序和系统守护程序
- /usr/src 内核源代码默认的放置目录
- /var variable(变量)缩写。存放着在不断扩充着的东西,习惯将那些经常被修改的目录放在这里;包括各种日志文件
- /run 是一个临时文件系统个,存储系统启动以来的信息;当系统重启时,这个目录下的文件应该被删掉或清除;如果你的系统上有/var/run 目录,应该让他指向 run
文件基本属性
chown 修改所属用户与组
chmod 修改用户的权限 chmod -R 777 xxx
chgrp 更改文件属组
- d 目录
- -文件
- l 链接文档
- b 装置文件里面的可供储存的接口设备
- c 装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)
在开始本教程前我们需要先知道什么是绝对路径与相对路径。
- 绝对路径: 路径的写法,有根目录
/写起,例如:/usr/share/doc这个目录。 - 相对路径:路径的写法,不是由
/写起,例如由/usr/share/doc 要到/usr/share/man 底下时,可以写成:cd ../man这就是相对路径的写法
文件与目录管理
linux 的目录结构为树状结构,最顶级的目录为根目录/
其他目录通过挂载可以将他们添加到树中,通过解除挂载可以移除它们。
. ./当前目录
.. ../上一层目录
.xxx 隐藏目录或文件
- 绝对路径 从根目录
/开始 - 相对路径 从当前目录开始
处理目录常用命令
ls 列出目录及文件名;-a 全部 ,联通隐藏文件;-d 列出目录本身;-
l 长数据串列出,包含文件的属性与权限
cd 切换目录
pwd 显示当前的目录;
-P显示出确实的路径**mkdir 创建一个新的目录; **
-m配置文件权限;-p所需目录递归创建rmdir 删除一个空的目录
cp 复制文件或目录
**rm 删除文件或目录; **
-f不会出现警告;i删除前询问;-r递归删除mv 移动文件或目录,修改文件或目录的名称;
-f强制;-i存在后询问覆盖;-u存在且比较新才升级
cp
- **-a:**相当於 -pdr 的意思,至於 pdr 请参考下列说明;(常用)
- **-d:**若来源档为链接档的属性(link file),则复制链接档属性而非文件本身;
- **-f:**为强制(force)的意思,若目标文件已经存在且无法开启,则移除后再尝试一次;
- **-i:**若目标档(destination)已经存在时,在覆盖时会先询问动作的进行(常用)
- **-l:**进行硬式链接(hard link)的链接档创建,而非复制文件本身;
- **-p:**连同文件的属性一起复制过去,而非使用默认属性(备份常用);
- **-r:**递归持续复制,用於目录的复制行为;(常用)
- **-s:**复制成为符号链接档 (symbolic link),亦即『捷径』文件;
- **-u:**若 destination 比 source 旧才升级 destination !
- **-a:**相当於 -pdr 的意思,至於 pdr 请参考下列说明;(常用)
- **-d:**若来源档为链接档的属性(link file),则复制链接档属性而非文件本身;
- **-f:**为强制(force)的意思,若目标文件已经存在且无法开启,则移除后再尝试一次;
- **-i:**若目标档(destination)已经存在时,在覆盖时会先询问动作的进行(常用)
- **-l:**进行硬式链接(hard link)的链接档创建,而非复制文件本身;
- **-p:**连同文件的属性一起复制过去,而非使用默认属性(备份常用);
- **-r:**递归持续复制,用於目录的复制行为;(常用)
- **-s:**复制成为符号链接档 (symbolic link),亦即『捷径』文件;
- **-u:**若 destination 比 source 旧才升级 destination !
文件内容查看
- cat 从第一行开始显示
- tac 从最后一行开始显示
- nl 显示的时候,输出行号
- more 一页一页显示
- less 往前翻页
- head 只看头几行
- tail 只看后几行
cat
- **-a:**相当於 -pdr 的意思,至於 pdr 请参考下列说明;(常用)
- **-d:**若来源档为链接档的属性(link file),则复制链接档属性而非文件本身;
- **-f:**为强制(force)的意思,若目标文件已经存在且无法开启,则移除后再尝试一次;
- **-i:**若目标档(destination)已经存在时,在覆盖时会先询问动作的进行(常用)
- **-l:**进行硬式链接(hard link)的链接档创建,而非复制文件本身;
- **-p:**连同文件的属性一起复制过去,而非使用默认属性(备份常用);
- **-r:**递归持续复制,用於目录的复制行为;(常用)
- **-s:**复制成为符号链接档 (symbolic link),亦即『捷径』文件;
- **-u:**若 destination 比 source 旧才升级 destination !
nl
- -b :指定行号指定的方式,主要有两种: -b a :表示不论是否为空行,也同样列出行号(类似 cat -n); -b t :如果有空行,空的那一行不要列出行号(默认值);
- -n :列出行号表示的方法,主要有三种: -n ln :行号在荧幕的最左方显示; -n rn :行号在自己栏位的最右方显示,且不加 0 ; -n rz :行号在自己栏位的最右方显示,且加 0 ;
- -w :行号栏位的占用的位数。
more
- 空白键 (space):代表向下翻一页;
- Enter :代表向下翻『一行』;
- /字串 :代表在这个显示的内容当中,向下搜寻『字串』这个关键字;
:立刻显示出档名以及目前显示的行数; - q :代表立刻离开 more ,不再显示该文件内容。
- b 或 ctrl-b :代表往回翻页,不过这动作只对文件有用,对管线无用。
less
- 空白键 :向下翻动一页;
- pagedown:向下翻动一页;
- pageup :向上翻动一页;
- /字串 :向下搜寻『字串』的功能;
- ?字串 :向上搜寻『字串』的功能;
- n :重复前一个搜寻 (与 / 或 ? 有关!)
- N :反向的重复前一个搜寻 (与 / 或 ? 有关!)
- q :离开 less 这个程序;
head
- -n :后面接数字,代表显示几行的意思
tail
- -n :后面接数字,代表显示几行的意思
- -f :表示持续侦测后面所接的档名,要等到按下ctrl-c 才会结束 tail 的侦测
用户和用户组管理
- 用户账号的添加、修改、删除
- 用户口令的管理
- 用户组的管理
useradd 选项 用户名
- 选项:
- -c comment 指定一段注释性描述。
- -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m 选项,可以创建主目录。
- -g 用户组 指定用户所属的用户组。
- -G 用户组,用户组 指定用户所属的附加组。
- -s Shell 文件 指定用户的登录 Shell。
- -u 用户号 指定用户的用户号,如果同时有-o 选项,则可以重复使用其他用户的标识号。
- 用户名:指定新账号的登录名。
userdel 选项 用户名
删除账号
usermod 选项 用户名
修改账号
passwd 选项 用户名
改密码
- -l 锁定口令,即禁用账号。
- -u 口令解锁。
- -d 使账号无口令。
- -f 强迫用户下次登录时修改口令。
groupadd 选项 用户组
- -g GID 指定新用户组的组标识号(GID)。
- -o 一般与-g 选项同时使用,表示新用户组的 GID 可以与系统已有用户组的 GID 相同。
groupdel 用户组
删除用户组
groupmod 选项 用户组
修改用户组
- -g GID 为用户组指定新的组标识号。
- -o 与-g 选项同时使用,用户组的新 GID 可以与系统已有用户组的 GID 相同。
- -n 新用户组 将用户组的名字改为新名字
磁盘管理
- df 列出文件系统的整体磁盘使用量
- du 检查磁盘使用空间量
- fdisk 用于磁盘分区
df -ahikHTm 目录或文件名
-h:以人类可读的方式显示输出结果(例如,使用 KB、MB、GB 等单位)。-T:显示文件系统的类型。-t <文件系统类型>:只显示指定类型的文件系统。-i:显示 inode 使用情况。-H:该参数是-h的变体,但是使用 1000 字节作为基本单位而不是 1024 字节。这意味着它会以 SI(国际单位制)单位(例如 MB、GB)而不是二进制单位(例如 MiB、GiB)来显示磁盘使用情况。-k:这个选项会以 KB 作为单位显示磁盘空间使用情况。-a:该参数将显示所有的文件系统,包括虚拟文件系统,例如proc、sysfs等。如果没有使用该选项,默认情况下,df命令不会显示虚拟文件系统。
du -ahskm 文件或目录名称
- -a :列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已。
- -h :以人们较易读的容量格式 (G/M) 显示;
- -s :仅显示指定目录或文件的总大小,而不显示其子目录的大小。
- -S :包括子目录下的总计,与 -s 有点差别。
- -k :以 KBytes 列出容量显示;
- -m :以 MBytes 列出容量显示;
fdisk -l 装置名称
- -l :输出后面接的装置所有的分区内容。若仅有 fdisk -l 时, 则系统将会把整个系统内能够搜寻到的装置的分区均列出来。
mkfs -t 文件系统格式 装置文件名
磁盘格式化
- -t :可以接文件系统格式,例如 ext3, ext2, vfat 等(系统有支持才会生效)
fsck -t 文件系统 -ACay 装置名称
- -t : 给定档案系统的型式,若在 /etc/fstab 中已有定义或 kernel 本身已支援的则不需加上此参数
- -s : 依序一个一个地执行 fsck 的指令来检查
- -A : 对/etc/fstab 中所有列出来的 分区(partition)做检查
- -C : 显示完整的检查进度
- -d : 打印出 e2fsck 的 debug 结果
- -p : 同时有 -A 条件时,同时有多个 fsck 的检查一起执行
- -R : 同时有 -A 条件时,省略 / 不检查
- -V : 详细显示模式
- -a : 如果检查有错则自动修复
- -r : 如果检查有错则由使用者回答是否修复
- -y : 选项指定检测每个文件是自动输入 yes,在不确定那些是不正常的时候,可以执行 # fsck -y 全部检查修复。
磁盘挂载与卸除
**Linux 的磁盘挂载使用 **mount 命令,卸载使用 umount 命令。
磁盘挂载语法:
mount -t 文件系统 -L Label 名 -o 额外选项 -n 装置文件名 挂载点
**磁盘卸载命令 **umount 语法:
umount -fn 装置文件名或挂载点
- -f :强制卸除!可用在类似网络文件系统 (NFS) 无法读取到的情况下;
- -n :不升级 /etc/mtab 情况下卸除。
vim
命令模式
- i -- 切换到输入模式,在光标当前位置开始输入文本。
- x -- 删除当前光标所在处的字符。
- : -- 切换到底线命令模式,以在最底一行输入命令。
- a -- 进入插入模式,在光标下一个位置开始输入文本。
- o:在当前行的下方插入一个新行,并进入插入模式。
- O -- 在当前行的上方插入一个新行,并进入插入模式。
- dd -- 剪切当前行。
- yy -- 复制当前行。
- p(小写) -- 粘贴剪贴板内容到光标下方。
- P(大写)-- 粘贴剪贴板内容到光标上方。
- u -- 撤销上一次操作。
- Ctrl + r -- 重做上一次撤销的操作。
-- 保存文件。 - -- 退出 Vim 编辑器。
- ! -- 强制退出 Vim 编辑器,不保存修改。
输入模式
- 字符按键以及 Shift 组合,输入字符
- ENTER,回车键,换行
- BACK SPACE,退格键,删除光标前一个字符
- DEL,删除键,删除光标后一个字符
- 方向键,在文本中移动光标
- HOME/END,移动光标到行首/行尾
- Page Up/Page Down,上/下翻页
- Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
- ESC,退出输入模式,切换到命令模式
底线命令模式
:w:保存文件。:q:退出 Vim 编辑器。:wq:保存文件并退出 Vim 编辑器。:q!:强制退出 Vim 编辑器,不保存修改。
yum 命令
是一个在 Fedora 和 RedHat 以及 SUSE 中的 Shell 前端软件包
管理器。
基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依赖关系,并且一次安装所有依赖的软件包,无需频繁地一次次下载、安装
yum 提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简单好记
yum options command package ...
- **options:**可选,选项包括-h(帮助),-y(当安装过程提示选择全部为 "yes"),-q(不显示安装的过程)等等。
- **command:**要进行的操作。
- **package:**安装的包名。
常用命令
- **列出所有可更新的软件清单命令:**yum check-update
- **更新所有软件命令:**yum update
- **仅安装指定的软件命令:**yum install <package_name>
- **仅更新指定的软件命令:**yum update <package_name>
- **列出所有可安裝的软件清单命令:**yum list
- **删除软件包命令:**yum remove <package_name>
- **查找软件包命令:**yum search
- **查找软件包命令:**yum search
- 清除缓存命令:
- yum clean packages: 清除缓存目录下的软件包
- yum clean headers: 清除缓存目录下的 headers
- yum clean oldheaders: 清除缓存目录下旧的 headers
- yum clean, yum clean all (= yum clean packages; yum clean oldheaders) :清除缓存目录下的软件包及旧的 headers
切换源
- **备份/etc/yum.repos.d/CentOS-Base.repo **
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup - 下载对应版本 repo 文件, 放入 /etc/yum.repos.d/ (操作前请做好相应备份) `
wget http://mirrors.163.com/.help/CentOS6-Base-163.repo mv CentOS6-Base-163.repo CentOS-Base.repo运行命令生成缓存 yum clean all yum makecache
推荐源
中科大的 yum 源,安装方法查看:https://lug.ustc.edu.cn/wiki/mirrors/help/centos
**sohu 的 yum 源安装方法查看: **http://mirrors.sohu.com/help/centos.html
阿里云的源:https://developer.aliyun.com/mirror/centos
对于 Linux 软件安装时提示缺失库的,可以使用 yum 的 provides 参数查看 libstdc++.so.6 的库文件包含在那个安装包中只需要执行:
yum provides libstdc++.so.6
**然后按查询到安装包包名,使用 **yum install 安装即可。
apt 命令
- 十一个在 Debian 和 Ubuntu 中的 Shell 前端软件包管理器
- 提供了查找、安装、升级、删除某一个、一组甚至全部软件包的命令,
- 需要超级管理员权限(root)
apt options command package ...
- **options:**可选,选项包括 -h(帮助),-y(当安装过程提示选择全部为"yes"),-q(不显示安装的过程)等等。
- **command:**要进行的操作
- package:安装的包名
apt 常用命令
- **列出所有可更新的软件清单命令:**sudo apt update
- **升级软件包:**sudo apt upgrade **列出可更新的软件包及版本信息:**apt list --upgradable **升级软件包,升级前先删除需要更新软件包:**sudo apt full-upgrade
- **安装指定的软件命令:**sudo apt install <package_name> **安装多个软件包:**sudo apt install <package_1> <package_2> <package_3>
- **更新指定的软件命令:**sudo apt update <package_name>
- **显示软件包具体信息,例如:版本号,安装大小,依赖关系等等:**sudo apt show <package_name>
- **删除软件包命令:**sudo apt remove <package_name>
- **清理不再使用的依赖和库文件: **sudo apt autoremove
- **移除软件包及配置文件: **sudo apt purge <package_name>
- **查找软件包命令: **sudo apt search
- **列出所有已安装的包:**apt list --installed
- **列出所有已安装的包的版本信息:**apt list --all-versions