1.查看进程端口号 | 进程监听端口号 | 端口号占用
netstat -lantp | grep -i 1922 # 查看1922端口占用
netstat -lantp | grep -i listen #查看listen 所有服务
ps -ef | grep xxxx #查看进程pid
2.状态解读
root@lynash/ 用户名@主机名当前目录 home/ly/公共的模板 cd ~ 当前用户目录 cd/根目录 cd .. 上一级目录 ./ 代表当前文件目录 ../上级文件目录 / 根目录 |
3.常用操作
3.1切换到root用户
111111
切换到普通用户 su-ly
密码
3.2移动文件
[root@lynash share]# mv jdk1.7.0_55 /usr/local
3.3删除文件
rm -rf XX,
3.4切换用户
切换到root用户
111111
3.5移动文件
mv -f 移动目标文件或目录与现有的文件或目录重复,那么将直接覆盖
[root@lynash share]# mv jdk1.7.0_55 /usr/local
|
3.6移动目录
[root@lynash /]# mv abc-2 abc
|
3.7删除文件
rm -rf XX,
|
3.8显示工作目录
pwd |
3.9创建目录
mkdirabc |
3.10删除目录
有东西的不能删除
rmdir |
有东西的可以删除
rm -rf abc |
3.11创建文件
touchtest.txt |
3.12复制文件
cp test.txt test_copy.txt |
3.13复制目录
[root@lynash /]# cp -r abc_copy abc/abc_copy |
3.14重命名目录
mvabcabc-2
4.系统命令
4.1查看进程状态
[root@node20 updateDB]# ps aux|grep ./update_stock |
linux上进程有5种状态:
1. 运行(正在运行或在运行队列中等待)
2. 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号)
3. 不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生)
4. 僵死(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放)
5. 停止(进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行)
ps命令(Process Status)
ps工具标识进程的5种状态码:
grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。
使用实例 ps aux输出格式: USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
格式说明: USER: 行程拥有者 PID: pid %CPU: 占用的 CPU 使用率 %MEM: 占用的记忆体使用率 VSZ: 占用的虚拟记忆体大小 RSS: 占用的记忆体大小 TTY: 终端的次要装置号码 (minor device number of tty)
STAT: 该行程的状态,linux的进程有5种状态: D 不可中断 uninterruptible sleep (usually IO) R 运行 runnable (on run queue) S 中断 sleeping T 停止 traced or stopped Z 僵死 a defunct (”zombie”) process 注: 其它状态还包括W(无驻留页), <(高优先级进程), N(低优先级进程), L(内存锁页).
START: 行程开始时间 TIME: 执行的时间 COMMAND:所执行的指令
1) ps a 显示现行终端机下的所有程序,包括其他用户的程序。 $ ps aux | grep amoeba 查到amoeba的进程 $ kill -s 9 pid 杀死进程
S处于休眠状态,静止状态; s进程的领导者(在它之下有子进程); +位于后台的进程组 R正在运行,在可中断队列中 D无法中断的休眠状态(通常io的进程) |
4.2将某个进程显示出来
ps -ef | grep ApacheJetspeed
[root@localhost ~]# ps -ef | grep ApacheJetspeed root 18887 18828 0 08:09 pts/0 00:00:00 grep ApacheJetspeed
|
目录
6.压缩命令
6.1压缩文件
tar -zcvf abc.tar ./abc |
6.2解压缩
删除已经存在的文件夹 # rm -rf ./abc 解压 tar -zxvf ./abc.tar |
7.关机
reboot重启
halt立刻关机
8.权限
ls-l显示如下
-rwxrw-r‐-1 root root 1213 Feb 2 09:39 abc
- 10个字符确定不同用户能对文件干什么 - 第一个字符代表文件(-)、目录(d),链接(l) - 其余字符每3个一组(rwx),读(r)、写(w)、执行(x) - 第一组rwx:文件所有者的权限是读、写和执行 - 第二组rw-:与文件所有者同一组的用户的权限是读、写但不能执行 - 第三组r--:不与文件所有者同组的其他用户的权限是读不能写和执行 也可用数字表示为:r=4,w=2,x=1 因此rwx=4+2+1=7
|
8.1改变文件或目录的权限
chmod 755 abc:赋予abc权限rwxr-xr-x chmod u=rwx,g=rx,o=rx abc:同上u=用户权限,g=组权限,o=不同组其他用户权限 chmod u-x,g+w abc:给abc去除用户执行的权限,增加组写的权限 chmod a+r abc:给所有用户添加读的权限 |
执行结果 dwrxr-x r-x 7 5 5
|
8.2改变所有者(chown) 和用户组(chgrp)
改变所有者(chown)和用户组(chgrp)命令 chown xiaoming abc:改变abc的所有者为xiaoming chgrp root abc:改变abc所属的组为root chown root ./abc:改变abc这个目录的所有者是root chown ‐R root ./abc:改变abc这个目录及其下面所有的文件和目录的所有者是root
|
改变用户所在组 在添加用户时,可以指定将该用户添加到哪个组中,同样用root的管理权限可以改变某个用户所在的组 - usermod ‐g 组名 用户名 你可以用 - usermod ‐d 目录名 用户名,改变该用户登录的初始目录
|
8.3综合案例
【综合案例】 【题1.1】建立两个用户组group1和group2,以及三个用户dennis、daniel、abigale,并且将前2个用户分配在group1用户组下,后一个分配在group2用户组下 【题1.2】以dennis用户登录,创建一个Hello.java文件 【题1.3】以daniel用户登录,观察是否可以访问/home/dennis目录以及读或写其创建的Hello.java文件 【题1.4】以dennis用户登录,修改目录/home/dennis及Hello.java文件的读写权限(更正:修改目录权限的时候,应该使用770,而不是760,否则权限不足) 【题1.5】重复【题1.3】 【题1.6】改变abigale的用户组由group2变为group1 然后,可以使用cat /etc/passwd查看并确定 【参考】 - groupadd 组名,在linux中添加组 - vi /etc/group,查看linux中所有组信息,可以看可以编辑 - cat /etc/group,查看linux中所有组信息,只可以看不可以编辑 - useradd ‐g 组名 用户名,创建用户的同时指定将该用户分配到哪个组下 - vi /etc/passwd,查看linux中所有用户信息,可以看可以编辑 - cat /etc/passwd,查看linux中所有用户信息,只可以看不可以编辑
|
9.网卡配置
查看网卡信息
cat /etc/sysconfig/network-scripts/ifcfg-eth0 |
配置信息
setup |
10.拷贝文件到linux服务器
然后拖动文件到空白处即可
11.xshell登录
192.168.128.4
rootsysware
从Xshell跳转到ftp查看文件
12.查看tomcat是否启动
在Linux系统下,重启Tomcat使用命令的操作!
首先,进入Tomcat下的bin目录
cd /usr/local/tomcat/bin
使用Tomcat关闭命令
./shutdown.sh
查看Tomcat是否以关闭
ps -ef|grep java
如果显示以下相似信息,说明Tomcat还没有关闭
root 7010 1 0 Apr19 ? 00:30:13 /usr/local/java/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms1024m -Xmx1024m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+DisableExplicitGC -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/usr/local/tomcat/endorsed -classpath /usr/local/tomcat/bin/bootstrap.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start
*如果你想直接干掉Tomcat,你可以使用kill命令,直接杀死Tomcat进程
kill -9 7010
然后继续查看Tomcat是否关闭
ps -ef|grep java
如果出现以下信息,则表示Tomcat已经关闭
root 7010 1 0 Apr19 ? 00:30:30 [java]
最后,启动Tomcat
./startup.sh
13.其他
13.1cd/cd~cd/home
一、cd / 是跳转到根目录 根目录是所有用户共享的目录,如图所示
二、cd ~ 是跳转到当前用户的家目录 如果是root用户,cd ~ 相当于 cd /root 如果是普通用户,cd ~ 相当于cd /home/当前用户名
三、cd /home 相当于查看有多少普通用户的家目录 因为所有的普通用户的父目录都是home目录 |
13.2 ls -l
是unix命令意思指以长格式的形式查看当前目录下所有可见文件的详细属性。
14. mysql查看
或者
命令行方式:
[root@localhost bin]./mysqld_safe & 服务方式: 1
2
3 [root@localhost ~]service mysql restart 命令行方式:
服务方式:
|
echo Start MySql service mysql start sleep 10 echo Start Mongodb /usr/local/mongodb-linux-x86_64-3.6.3/bin/mongod -f /data/mongo/mongodb.cnf sleep 5 echo Start Redis /home/syslight_bin/redis-4.0.8/src/redis-server /home/syslight_bin/redis-4.0.8/src/redis.conf echo 5 echo Show Listen port netstat -ntl sleep 5 echo Start Tomcat /home/syslight_bin/apache-tomcat-8.5.12/bin/startup.sh |
15.查看系统版本
电脑及操作系统信息
正在运行的内核版本
发行版本信息
16.tomcat启动log查看
17.Linux课程///
17.1基本命令
-
ehco 命令回显
-
tab命令补齐
-
linux的目录结构
linux下, 所有设备都是文件
用户目录~ 根目录/
cd – 从哪来回哪去 两个路径来回跳
pwd显示当前路径
4.ls 列出文件
ls -a显示隐藏文件
ls –l 详细列表
ls -R连子目录一起列出
touch 创建文件
文件不存在则创建文件
如果文件存在,则修改这个文件的时间
5.mkdir
mkdir –p ff/aa/bb/cc
6.tree 显示树形目录
rmdir
空目录, 只包含. 和.. 的目录
aa/bb/cc/dd
在bb下删除cc
rmdir cc 提示失败,因为cc非空
在cc下删除dd
提示成功
7.rm
rm –r ff 递归删除ff
-r 是递归
ln
硬链接 ln hello_world.h
软连接 ln –s hello_world.h
权限后面的数字 2 1 2是硬链接计数
tree显示目录结构
8.wc
统计计数
6行9个单词80个字符
9.du
查看某个目录的大小
df
查看整个磁盘的使用情况
17.2文件属性用户和组
-
whoami
登录用户是谁
2.chmod
修改用户的权限类
(1)给文件所有者增加执行权限
chmod u+x file
(2)给group减少w权限
chmod g-w file
(3)其他人减少w权限
chmod o-r file
- 数字表示法
chmod 777 file, 给file所有用户的所有权限
3.chown
sudo chown root:root
[root@lynash cc]# chown ly:ly include.h
也可以这样
[root@lynash cc]# chown ly:root include.h 所偶有者和所有组不属于同一个也行 |
查看用户所在组
[root@lynash cc]# groups ly ly : ly |
-R可以递归改变文件夹内的文件权限
[root@lynash aa]# chown root:ly bb -R [root@lynash aa]# ll 总用量 4 drwxr-xr-x. 3 root ly 4096 9月 16 15:44 bb [root@lynash aa]# cd bb [root@lynash bb]# ll 总用量 4 drwxr-xr-x. 2 root ly 4096 9月 16 16:33 cc |
17.3查找与检索
-
find基于文件名查找
默认是递归查找
查找当前目录下的.h文件 [root@lynash aa]# find ./* -name "*.h" ./bb/cc/include.h
查找左右目录下的文件 /usr/share/doc/db4-devel-4.7.25/examples_cxx/wce_tpcb/newres.h /usr/share/doc/db4-devel-4.7.25/examples_cxx/wce_tpcb/TpcbExample.h /usr/share/doc/kpathsea-2007/kpathsea_defaults/paths.h /usr/share/cups/ppdc/hp.h /usr/share/cups/ppdc/escp.h /usr/share/cups/ppdc/epson.h /usr/share/cups/ppdc/pcl.h /usr/share/cups/ppdc/label.h /usr/share/perl5/Encode/encode.h [root@lynash aa]# find /* -name "include.h" /root/aabb1/aa/bb/cc/include.h /root/aabb1/include.h /root/aabb/aa/bb/cc/include.h |
2.grep根据文件内容去查找
grep默认值是当前 -R是递归查找
[root@lynash aa]# grep "include" ./* include -R ./bb/cc/include.h:include <stdio.h> |
-c:只输出匹配行的计数。
-I:不区分大小写(只适用于单字符)。
-h:查询多文件时不显示文件名。
-l:查询多文件时只输出包含匹配字符的文件名。
-n:显示匹配行及行号。
-s:不显示不存在或无匹配文本的错误信息。
-v:显示不包含匹配文本的所有行。
-R: 连同子目录中所有文件一起查找
[root@lynash aa]# grep "include" ./* include -R -n ./bb/cc/include.h:1:include <stdio.h> |
18.安装和卸载软件
-
apt-get
常用的软件都放到了服务器上了(例如tree, vsftpd),我们是一个一个的client
ubuntu用apt
centos用yum
2.安装包安装
解压
tar zxvf xx.tar.gz
- 源码安装的一般步骤
拷贝目录到/usr/local/bin/ctags下面
19.磁盘管理
-
挂载U盘
-
2.查看U盘
fdisk –l
Device Boot Start End Blocks Id System /dev/sdb1 * 1 3739 30031122 7 HPFS/NTFS |
3.安装ntfs支持
安装步骤:
添加上面的阿里云软件源 wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
安装NTFS-3G yum install ntfs-3g 命令运行结束后就可以支持NTFS格式的文件系统了。
|
4.挂载
[root@lynash ly]# sudo mount /dev/sdb1 /mnt The disk contains an unclean file system (0, 0). The file system wasn't safely closed on Windows. Fixing. |
查看内容
[root@lynash ly]# ls /mnt System Volume Information 西宁救援720.rar 西宁站救援720 新建文件夹 (2) |
此时操作mnt目录就是操作U盘了
5.卸载
[root@lynash /]# sudo umount /mnt [root@lynash /]# cd /mnt [root@lynash mnt]# ls hgfs |
之后mnt下面就没有其他文件了
注意:挂载之后就看不到源文件夹的文件了。 只有卸载之后才能看见。
6.dd拷贝文件
[root@lynash cc]# dd if=include.h of=of.h |
创建一个空文件
zero是一个输入设备,用来初始化文件
dd if=/dev/zero of=hello.txt bs=100M count=1
blocksize是100M 一共一个块
7.压缩包管理
tar打包文件
tar cvf of.tar of.h
[root@lynash cc]# ls c.c include.h of.h of.tar |
gz
压缩 tar acvf of.tar.gz of.h
解压缩 tar zxvf of.tar.gz |
bz2打包
tar jcvf dir.tar.bz2 dir
tar jxvf dir.tar.bz2 解压到指定目录下 tar jxvf of.tar.bz2 -C dd |
20.进程管理
-
ps
-
who
ps ajx 把当前进程关系列出来
3.ctrl+z
挂起当前线程
4.kill
向指定的进程发送信号
只需关注前32个信号
ctrl+c 是 SIGIN
SIGKILL 杀死进程
写一个死循环
#include<stdio.h> int main(void) { while(1); char *str = "hello"; *str = 'H'; printf("%s\n",str); return 0; } |
编译
gcc a.c -g -o app |
查看进程号
ps aux root 7335 97.2 0.0 3920 332 pts/0 R+ 09:54 0:03 ./app |
发送kill 信号
9号信号一定能杀死
[root@lynash aabb]# kill -9 7335 |
22.env
查看环境变量, 当前用户信息等内容
[root@lynash aabb]# echo $PATH /usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/ly/bin |
* vim ∼/.bashrc |
1.配置用户的环境变量
[ly@lynash ~]$ vi .bashrc
增加如下内容 export PATH=$PATH:/root/aabb 然后查看PATH变量 echo $PATH 发现添加的环境变量已经进去了 |
2.配置系统path
* vim /etc/profile
配置系统环境变量,配置时需要有root权限
改变方法同上面的
3.权限
r读
w写
x执行
rwx r-- ---
file1 b有读写执行的权限 同组只有读, 其他用户什么权限都没有
drwxxrwr-x
-普通文件
d是目录
l是符号链接 , 类似windows下面的快捷方式
b块设备文件
c字符设备文件
s socket文件
p管道
最前面的一位是文件类型
分析这个权限,这个文件的所有者,拥有-rw权限,就是读写权限
同组人-rw,也具有读写权限
其他用户,具有r-- 只有读权限
改变权限 chmod 775 app
23.gdb调试
[root@lynash aabb]# ./app 段错误 (core dumped) [root@lynash aabb]# gdb app GNU gdb (GDB) Red Hat Enterprise Linux (7.2-60.el6_4.1) Copyright (C) 2010 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-redhat-linux-gnu". For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>... Reading symbols from /root/aabb/app...done. (gdb) r Starting program: /root/aabb/app
Program received signal SIGSEGV, Segmentation fault. 0x00000000004004d8 in main () at a.c:5 5 *str = 'H'; Missing separate debuginfos, use: debuginfo-install glibc-2.12-1.132.el6.x86_64 (gdb) l 1 #include<stdio.h> 2 int main(void) 3 { 4 char *str = "hello"; 5 *str = 'H'; 6 printf("%s\n",str); 7 return 0; 8 } (gdb) |
这是修改只读数据区的内容了, 所以报了段错误了。
24.vi文件操作
vi test.txt 按下i从一般模式进入插入模式 按下esc从插入模式进入一般模式 按下:wq.保存并退出 按下:q直接退出 |
搜索字符串:在编辑模式下 /xxx,搜索下一个按下n即可 |
撤销
ctrl+u
25.用户管理
1.创建一个用户
[root@lynash ~]# useradd -s /bin/bash -g root -d /home/pt -m pt |
新建密码 su
进入root用户, 然后
passwd pt (pt是自己起的名)
输出两边自己的密码就行了
2.创建用户组
[pt@lynash home]$ su 密码: [root@lynash home]# sudo groupadd newgroup |
3.查看用户组
[root@lynash home]# cat /etc/group |
4.sudo
临时变成超级用户的意思
文件位置
26.脚本执行
创建一个脚本
touch a.sh
#! /bin/sh
www=123 |
执行脚本
source a.sh
之后查询这个变量
echo $www 会显示123
source的作用是执行脚本
. a.sh效果一样
.和source这里一样
27.网络管理
-
查询ifconfig
关闭某个网卡sudo ifconfig eth2 down
开启sudo ifconfig eth2 up
设置ip sudo ifconfig eth0 IP
这是给电脑设置临时ip
2.ping
vmware nat与windows共用ip
桥接, 是用物理网卡, 有自己的独立ip
3.netstat
显示所有tcp的连接
netstat –ta
4.nslookup
将域名变为ip
5.finger
finger 用户名
显示当前用户的登录信息
6.防火墙
解决CentOS7关闭/开启防火墙出现Unit iptables.service failed to load: No such file or directory.
systemctl stop firewalld
systemctl mask firewalld
28.其他操作
man
man printf 进行查询
ctrl+l清屏跟clear一样
alias用来起别名
alias ls='ls –color=auto'
在 .bashrc中定义
$? 返回上一程序返回值
内核版本
uname -a
看发行版本信息
lsb_release –a
关机
shutdown -r now 立刻重新开机 |
- centos7安装jdk