Linux的命令分为两大类
内置命令:Linux内核自带的命令,不需要借助任何的第三方程序。
外置命令:不属于Linux内核的原生命令,需要通过第三方程序独立安装。
绝对和相对路径
绝对路径都是以“/”开头 相对路径不以“/”开头 返回上一级目录../
cd : 变更工作目录(change directory)
pwd : 打印当前工作目录(print working directory)
ls : 展示当前目录下所有的子目录和子文件(list)
ll : 等同于ls -l
创建或删除目录
mkdir : 创建目录(make directory. -p参数表示创建多级目录)
rm 删除目录或文件(remove. -r参数表示递归删除整个目录recursion; -f强制删除-force])
创建、编辑、查看文件
touch : 创建文件
vi : 打开并编辑文件内容(visual)
vim : 打开或编辑文件内容(visual improved), vi命令的增强版本, 需要独立安装
cat : 查看或连接文件 (concatenate)
more : 可以分页查看文件,尤其适合大文件的查看。但是只能向下翻页。空格键进行下翻。
less : 可以上下翻页。进入到文件内存进行阅读。使用键盘[PageDown]和[PageUp]进行下翻和上翻。
拷贝、移动、重命名文件或目录
cp [-r] : 拷贝文件(copy)
mv : 移动文件或目录(move)
解压缩
tar : 打包或解压命令(tape archive) -zxvf解压; -zcvf压缩
-x 提取文件,就是解压缩的意思, 对应extract这个单词
-z表示文件是tar.gz格式。采用gzip进行压缩或者解压缩,gzip是Linux中的压缩工具包
-c表示压缩文件的意思
-v表示压缩或者解压缩过程中显示详细的压缩或者解压缩的过程。对应verbose这个单词
-f表示文件, 对应file这个单词,f必须放在最后,f后面一定要跟文件名称
安装
yum : 基于RPM(Redhat Package Manager, 类似我们windows系统的[添加/删除]的方式来管理Linux上的程序,安装/升级
yellow dog updater, modifier)
查看命令在哪个目录
which 命令名称
查询文件或者查询指定文件中的内容
find [name] : 查找在指定目录下的文件名称,查询包括子文件夹中的内容 grep [查询的内容] [指定的文件]
管道命令
多个命令的一个组合 比如:ps -ef | grep tomcat 通过进程名tomcat查找进程
权限简介和授权
例如:drwxr-xr-x. 2 root root 4096 May 25 23:27 bin
d: 代表文件夹 (directory);r: 可读 (read) ;w: 可写 (write) ;x: 可执行 (execute)
第一个drwxr:表示当前文件或目录的所有者拥有的权限;
第二个xr:代表当前文件或目录的所有者同组用户所拥有的权限;
第三个x:代表不同组的其他用户对当前文件拥有的权限 chmod 744 文件名称 (change mode)
r: 4 w: 2 x: 1
yum和rpm
RPM 是Red-Hat Package Manager(RPM软件包管理器)的缩写,这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是开放式的,现在包括OpenLinux、S.u.S.E.以及Turbo Linux等Linux的分发版本都有采用,可以算是公认的行业标准了。
rpm命令管理
-ivh 包全名 安装
-Uvh 包全名 升级
rpm -e 包名 卸载
rpm -q 包名 查询
rpm -qa 包名 查询
rpm -qi 包名 查询信息
rpm -qip 包全名 查询未安装包
rpm -ql 包名 查询安装位置
rpm -qlp 包全名 查询呢未安装包信息
rpm -qf 系统文件名 根据文件名查询属于哪个包
rpm -qR 包名 查询软件包的依赖性
rpm -qRp 包全名 查询未安装包信息
安装rpm1的时候,需要先安装rpm2和rpm3,但是安装rpm2需要先安装rpm3。难点:不知道先要安装谁
Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
查看当前IP
hostname -I:查看当前IP(只显示IP)
ifconfig:查看本机当前网络(IP,MTU最大传送单元,子网掩码,广播地址,蓝牙地址,最近数据包相关信息....)
ip addr show | grep 'inet'(IP,广播地址)
查看进程PID,端口
1.进程查PID
ps -ef | grep 进程名(ps -ef | grep tomcat,xxx.jar)
ps aux | grep 进程名
2.根据PID查端口
netstat -nap | grep 进程pid
3.根据端口查PID
[sudo] netstat -auntpl|grep 8080
[sudo] netstat -antup|grep PID号
4.根据PID查进程名
ps -ef|grep 13218
查看当前系统下所运行的所有端口情况(需要在sudo的权限下查看,不然有部分的pid是查看不到的)
sudo netstat -auntpl
sudo netstat -antup
kill -9 pid:杀死进程
重启,关机
关机
1、halt 立刻关机
2、poweroff 立刻关机
3、shutdown -h now 立刻关机(root用户使用)
4、shutdown -h 10 10分钟后自动关机 如果是通过shutdown命令设置关机的话,可以用shutdown -c命令取消重启重启
1、reboot
2、shutdown -r now 立刻重启(root用户使用)
3、shutdown -r 10 过10分钟自动重启(root用户使用)
4、shutdown -r 20:35 在时间为20:35时候重启(root用户使用) 如果是通过shutdown命令设置重启的话,可以用shutdown -c命令取消重启注销命令
1、logout
2、exit #工作中常用
3、ctrl+d #工作中常用
注销表示退出当前用户登录
vim
gg:vim中回到第一行
/关键字:vim中查找出现多个结果,使用 n字符切换到下一个即可,查找到结果后输入:noh退回到正常模式
./<可执行程序>
表示运行该程序
比如有可执行程序,名叫print_name,
./print_name表示运行该程序
防火墙
查看防火墙状态
firewall-cmd --state
停止/启动firewall
systemctl stop/start firewalld.service
禁止firewall开机启动
systemctl disable firewalld.service
单独开启、关闭某个端口步骤:
1、输入命令查看防火墙的状态;
firewall-cmd --state
2、如果上一步处于关闭状态,输入命令:
systemctl start firewalld.service
3、开启/关闭8080端口,输入命令:
firewall-cmd --zone=public --add/remove-port=8080/tcp --permanent
解释一下上一个命令:
--zone=public:表示作用域为公共的;
--add-port=8080/tcp:添加tcp协议的端口8080;
--permanent:永久生效,如果没有此参数,则只能维持当前服务生命周期内,重新启动后失效;
4、输入命令重启防火墙;
systemctl restart firewalld.service
5、输入命令重新载入配置;
firewall-cmd --reload
java -jar
java -jar xxx.jar
表示在当前ssh窗口,可按CTRL + C打断程序运行,或者直接关闭窗口,则程序直接退出。
java -jar xxx.jar &
表示在当窗口关闭时,程序才会中止运行。&代表让该命令在后台执行。
nohup java -jar XXX.jar &
表示不挂断运行命令,当账户退出或终端关闭时,程序仍然运行。注意,该作业的所有输出被重定向到nohup.out的文件中。
nohup java -jar XXX.jar > Log.log &
......并且该作业的所有输出被重定向到Log.log的文件中。“ > Log.log ” 指定日志输出的文件。
nohup java -jar XXX.jar >> Log.log &
......">>"表示将输出以追加的方式重定向到Log.log中。
nohup java -jar XXX.jar > Log.log 2>&1 &
nohup java -jar XXX.jar >> Log.log 2>&1 &
nohup java -jar XXX.jar > /dev/null 2>&1 &
- 标准输入文件(stdin):stdin的文件描述符为0,Unix程序默认从stdin读取数据。
- 标准输出文件(stdout):stdout 的文件描述符为1,Unix程序默认向stdout输出数据。
- 标准错误文件(stderr):stderr的文件描述符为2,Unix程序会向stderr流中写入错误信息。
- 屏蔽输出,起到禁止输出作用:/dev/null 是一个特殊的文件,写入到它的内容都会被丢弃;如果尝试从该文件读取内容,那么什么也读不到。但是 /dev/null 文件非常有用,将命令的输出重定向到它,会起到"禁止输出"的效果。
- “> Log.log 2>&1” :表示将 stdout 和 stderr 合并后重定向到 Log.log
备注:输出之后,可以使用“jobs”查看一下后台运行的任务。