文章目录
常用命令
-
ls查看目录中的文件
-
cd /home 进入 ‘/ home’ 目录;cd … 返回上一级目录;cd …/… 返回上两级目录
-
mkdir dir1 创建一个叫做 ‘dir1’ 的目录
-
rmdir dir1 删除一个叫做 ‘dir1’ 的目录 (只能删除空目录)
-
rm -f file1 删除一个叫做 ‘file1’ 的文件’,-f 参数,忽略不存在的文件,从不给出提示。
-
rm -rf /mulu 目录下面文件以及子目录下文件
-
cp /test1/file1 /test3/file2 如将/test1目录下的file1复制到/test3目录,并将文件名改为file2
-
mv /test1/file1 /test3/file2 如将/test1目录下的file1移动到/test3 目录,并将文件名改为file2
-
mv * …/ Linux当前目录所有文件移动到上一级目录
-
ps -ef|grep xxx 显示进程pid
-
kill 使用kill命令来终结进程。先使用ps命令找到进程id,使用kill -9命令,终止进程。
-
tar –xvf file.tar 解压 tar包
-
unzip file.zip 解压zip
-
unrar e file.rar 解压rar
-
free -m 查看服务器内存使用情况
ps查看进程
参数
a 显示所有进程
-a 显示同一终端下的所有程序
-A 显示所有进程
c 显示进程的真实名称
-N 反向选择
-e 等于“-A”
e 显示环境变量
f 显示程序间的关系
-H 显示树状结构
r 显示当前终端的进程
T 显示当前终端的所有程序
u 指定用户的所有进程
x 包括不占用控制台的进程
-au 显示较详细的资讯
-aux 显示所有包含其他使用者的行程
-C<命令> 列出指定命令的状况
--lines<行数> 每页显示的行数
--width<字符数> 每页显示的字符数
--help 显示帮助信息
--version 显示版本显示
grep是搜索关键字
-ef显示所有搜索到的进程(all 关系 显示)
ps -ef | grep java
-aux 显示所有状态(all user 不占用 显示)
ps -aux | grep java
kill杀掉进程
-9 强迫进程立即停止
kill -9 [PID]
这里pid需要用 ps -ef | grep 查询pid
netstat查看端口
参数
-a (all)显示所有选项,netstat默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。(重要)
-l 仅列出有在 Listen (监听) 的服務状态
-p 显示建立相关链接的程序名(macOS中表示协议 -p protocol)
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计 (重要)
-c 每隔一个固定时间,执行该netstat命令。
查看端口占用情况,是否是listen
-anp(all no别名 protocol)
netstat -anp | grep 端口号
图中主要看监控状态为LISTEN表示已经被占用,最后一列显示被服务mysql占用,查看具体端口号,只要有如图这一行就表示被占用了
netstat -anp |grep 82
可以看出并没有LISTEN那一行,所以就表示没有被占用。此处注意,图中显示的LISTENING并不表示端口被占用,不要和LISTEN混淆哦,查看具体端口时候,必须要看到tcp,端口号,LISTEN那一行,才表示端口被占用了
查看当前所有已经使用的端口情况:
-nultp(no别名 udp listen tcp protocol)
netstat -nultp(此处不用加端口号)
如何启动服务
以启动Tomcat为例,先cd到启动的.sh文件目录
cd /java/tomcat/bin
./startup.sh
停止Tomcat服务命令
./shutdown.sh
ls查看文件
-a 全部的文件,连同隐藏文件(开头为.的文件)一起列出来
-A 全部的文件,连同隐藏文件,但是不包括.和…这两个目录
-d 仅列出目录本身,而不是列出目录内的文件数据
-f 直接列出结果,而不进行排序(ls默认会以文件名排序)
-F 根据文件、目录等信息,给予附件数据结构,例如:*:代表可执行文件;/:代表目录;=:代表socket文件;|:代表FIFO文件
-h 将文件容量以人类较易读的方式(如GB,KB等)列出来
-i 列出inode号码
-l 详细信息显示,包含文件的属性和权限等数据
-n 列出UID和GID而非使用者与用户组的名称
-r 将排序结果反向输出,例如:原本文件名由小到大,反向则由大到小
-R 连同子目录内容一起列出来,等于该目录下的所有文件都会显示出来
-S 以文件容量大小排序,而不是用文件名排序
-t 依时间排序,而不是用文件名排序
查看目录下所有文件、目录,包括隐藏的
ls -la
按时间排序
ls -lta
自动变换单位,这里以KB显示文件的大小
ls -lh anaconda-ks.cfg
文件的inode号
ls -i anaconda-ks.cfg
查看文件内容
- cat 由第一行开始显示内容,并将所有内容输出 (之前公司用的比较多)
- tac 从最后一行倒序显示内容,并将所有内容输出
- more 根据窗口大小,一页一页的现实文件内容
- less 和more类似,但其优点可以往前翻页,而且进行可以搜索字符
- head 只显示头几行
- tail 只显示最后几行 (之前公司用的比较多)
- nl 类似于cat -n,显示时输出行号
- tailf 类似于tail -f
1 cat 与 tac
cat的功能是将文件从第一行开始连续的将内容输出在屏幕上。但是cat并不常用,原因是当文件大,行数比较多时,屏幕无法全部容下时,只能看到一部分内容。
cat [-n] 文件名 (-n : 显示时,连行号一起输出)
tac的功能是将文件从最后一行开始倒过来将内容数据输出到屏幕上。我们可以发现,tac实际上是cat反过来写。这个命令也不常用。
tac 文件名。
2 more和less(常用)
more的功能是将文件从第一行开始,根据输出窗口的大小,适当的输出文件内容。当一页无法全部输出时,可以用“回车键”向下翻行,用“空格键”向下翻页。退出查看页面,请按“q”键。另外,more还可以配合管道符“|”(pipe)使用,例如:ls -al | more
more 文件名
Enter 向下n行,需要定义,默认为1行;
Ctrl f 向下滚动一屏;
空格键 向下滚动一屏;
Ctrl b 返回上一屏;
= 输出当前行的行号;
:f 输出文件名和当前行的行号;
v 调用vi编辑器;
! 调用Shell,并执行命令;
q 退出more
less的功能和more相似,但是使用more无法向前翻页,只能向后翻。
less可以使用【pageup】和【pagedown】键进行前翻页和后翻页,退出查看页面:按“q”键。。
less 文件名
less字符高亮显示:
在passwd文件中查找有没有weblogic字符串:
less passwd
然后输入:
/weblogic
回车
此时如果有weblogic字符串,linux会把该字符已高亮方式显示。
3 head和tail
head和tail通常使用在只需要读取文件的前几行或者后几行的情况下使用。
head的功能是显示文件的前几行内容
head [n number] 文件名 (number 显示行数)
tail的功能恰好和head相反,只显示最后几行内容
tail [-n number] 文件名
4 nl
nl的功能和cat -n一样,同样是从第一行输出全部内容,并且把行号显示出来
nl 文件名
5 tailf
- tailf命令几乎等同于tail -f,严格说来应该与tail --follow=name更相似些。当文件改名之后它也能继续跟踪,特别适合于日志文件的跟踪(follow the growth of a log file)。与tail -f不同的是,如果文件不增长,它不会去访问磁盘文件。
- tailf特别适合那些便携机上跟踪日志文件,因为它能省电,因为减少了磁盘访问嘛。tailf命令不是个脚本,而是一个用C代码编译后的二进制执行文件,某些Linux安装之后没有这个命令,需要编译安装tailf命令。
tail查看日志文件
-c 输出最后的K个字节; 或者使用 -c +K 从每个文件的第K字节开始打印。
-f 动态输出最新的信息
-F 与 --follow=name --retry 作用相同
-n 输出最后的K行,而不是最后的10行;或者使用 -n +K 从每个文件的第K行开始打印。
-q 当有多个文件参数时,不输出各个文件名
-v 当有多个文件参数时,总是输出各个文件名
-s 与“-f”选项连用,指定监视文件变化时间隔的秒数(默认为1.0); 使用inotify和-pid=P,每N秒检查进程P至少一次
--max-unchanged-stats=N 在N(默认5)次迭代后更改了大小,以确定它是否已经解除了连接或重新命名(这是旋转日志文件的常见情况); 使用inotify,这个选项很少有用
--pid=PID 与“-f”选项连用,当指定的进程号的进程终止后,自动退出tail命令;
--retry 即是在tail命令启动时,文件不可访问或者文件稍后变得不可访问,都始终尝试打开文件。使用此选项时需要与选项“——follow=name”连用;
--help 显示此帮助信息并退出
--version 显示版本信息并退出
一般测试的项目里面,有个logs的目录文件,会存放日志文件,有个xxx.out的文件,可以用tail -f 动态实时查看后端日志
动态实时查看后端日志
tail -f xx.out
先cd 到logs目录(里面有xx.out文件),这时屏幕上会动态实时显示当前的日志,ctr+c停止
查看最近1000行日志
tail -n 1000 xx.out
查看日志的指定行数
tail命令,head命令,cat命令
显示最后10行
tail -n 10
从第10行显示到最后
tail -n +10
显示前面10行
head -n 10
从第10行开始显示15行
cat access.log | tail -n +10 | head -n 15
find、locate 查找文件
详情
查找一个文件大小超过5M的文件
find . -type f -size +5M
如果知道一个文件名称,怎么查这个文件在linux下的哪个目录,如:要查找tnsnames.ora文件
find / -name tnsnames.ora
查到:
/opt/app/oracle/product/10.2/network/admin/tnsnames.ora
/opt/app/oracle/product/10.2/network/admin/samples/tnsnames.ora
还可以用locate 来查找
locate tnsnames.ora
结果是:
/opt/app/oracle/product/10.2/hs/admin/tnsnames.ora.sample
/opt/app/oracle/product/10.2/network/admin/tnsnames.ora
/opt/app/oracle/product/10.2/network/admin/samples/tnsnames.ora
find查找文件
find / -name httpd.conf #在根目录下查找文件httpd.conf,表示在整个硬盘查找
find /etc -name httpd.conf #在/etc目录下文件httpd.conf
find /etc -name ‘srm‘ #使用通配符(0或者任意多个)。表示在/etc目录下查找文件名中含有字符串‘srm’的文件
find . -name ‘srm‘ #表示当前目录下查找文件名开头是字符串‘srm’的文件
按照文件特征查找
find / -amin -10 # 查找在系统中最后10分钟访问的文件(access time)
find / -atime -2 # 查找在系统中最后48小时访问的文件
find / -empty # 查找在系统中为空的文件或者文件夹
find / -group cat # 查找在系统中属于 group为cat的文件
find / -mmin -5 # 查找在系统中最后5分钟里修改过的文件(modify time)
find / -mtime -1 #查找在系统中最后24小时里修改过的文件
find / -user fred #查找在系统中属于fred这个用户的文件
find / -size +10000c #查找出大于10000000字节的文件(c:字节,w:双字,k:KB,M:MB,G:GB)
find / -size -1000k #查找出小于1000KB的文件
locate
- locate 与 find 不同: find 是去硬盘找,locate 只在 /var/lib/slocate 资料库中找。
- locate 的速度比 find 快,它并不是真的查找,而是查数据库,一般文件数据库在 /var/lib/slocate/slocate.db 中,所以 locate 的查找并不是实时的,而是以数据库的更新为准,一般是系统自己维护,也可以手工升级数据库 ,命令为:
updatedb
- 详情
创建、删除移动目录/文件
创建文件夹/目录
mkdir name
删除指定名称目录
rmdir name
创建文件
touch filename
删除文件
rm filename
移动文件
mv filename path
copy文件
cp name newname
chmod添加文件权限
参数
[ u / g / o / a ] 为权限范围,其中
u User,即文件或目录的拥有者
g Group,即文件或目录的所属群组
o Other,除了文件或目录拥有者和所属群组外,其他用户都属于这个范围
a All,即全部用户
权限操作
+ 表示增加权限
- 表示取消权限
= 表示取消之前的权限,并给予唯一的权限
权限代号
r 读取权限,数字代号为 “4”
w 写入权限,数字代号为 “2”
x 执行权限,数字代号为 “1”
- 不具备任何权限,数字代号为 “0”
file,文件名(路径)
chmod [ u / g / o / a ] [ + / - / = ] [ r / w / x ] file
(字母法) 改命令说明对filename文件, 赋予user、group、other均有read、write、excute的权限
chmod u+rwx, g+rwx, o+rwx filename
说明对filename,赋予user用户read、write、excute权限;赋予group用户read、write权限
chmod u+rwx, g+rw filename
数字法:chmod 755 filename 对应 字母法: chmod u+rwx, g+rx, o+rx filename
数字法:chmod 751 filename 对应 字母法: chmod u+rwx, g+rx, o+x filename
数字法:chmod 765 filename 对应 字母法: chmod u+rwx, g+rw, o+rx filename
文件默认666, 没有x权限,目录默认777,有x权限
tar解压文件
必选参数
-c 建立一个压缩文件的参数指令(create 的意思);
-x 解开一个压缩文件的参数指令!
-t 查看 tarfile 里面的文件!
-r 向压缩归档文件末尾追加文件
-u 更新原压缩包中的文件
可选参数
-z:有gzip属性,即需要用 gzip 压缩
-j:有bz2属性,即需要用 bzip2 压缩
-Z:有compress属性的
-v :压缩的过程中显示文件(显示所有过程)!这个常用,但不建议用在背景执行过程!
-O:将文件解开到标准输出
-f :使用档名,请留意,在 f 之后要立即接档名!不要再加参数!例如使用『 tar -zcvfP tfile sfile』就是错误的写法,要写成『 tar -zcvPf tfile sfile』才对喔!
-p :使用原文件的原来属性(属性不会依据使用者而变)
-P :可以使用绝对路径来压缩!
-N :比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中!
--exclude FILE:在压缩的过程中,不要将 FILE 打包!
将所有.jpg的文件打成一个名为all.tar的包。-c是表示产生新的包,-f指定包的文件名。
tar -cf all.tar *.jpg
将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。
tar -rf all.tar *.gif
更新原来tar包all.tar中logo.gif文件,-u是表示更新文件的意思。
tar -uf all.tar logo.gif
列出all.tar包中所有文件,-t是列出文件的意思
tar -tf all.tar
解出all.tar包中所有文件,-x是解开的意思
tar -xf all.tar
在不解压的情况下查看压缩包的内容
tar -tf aaa.tar.gz
将目录里所有jpg文件打包成jpg.tar
tar –cvf jpg.tar *.jpg
将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包,命名为jpg.tar.gz
tar –czf jpg.tar.gz *.jpg
将目录里所有jpg文件打包成jpg.tar后,并且将其用bzip2压缩,生成一个bzip2压缩过的包,命名为jpg.tar.bz2
tar –cjf jpg.tar.bz2 *.jpg
将目录里所有jpg文件打包成jpg.tar后,并且将其用compress压缩,生成一个umcompress压缩过的包,命名为jpg.tar.Z
tar –cZf jpg.tar.Z *.jpg
解压
tar –xvf file.tar // 解压 tar包
tar -zxvf file.tar.gz // 解压tar.gz
tar -jxvf file.tar.bz2 // 解压 tar.bz2
tar –Zxvf file.tar.Z // 解压tar.Z
top监控指令
top是Linux较为常用的命令,可以监控服务器的CPU、内存、进程的运行情况,话不多说,直接操作。输入top即可启动。
whatis(命令的作用)
whereis(命令的位置)
scp (主机间拷贝)
scp [可选参数] file_source file_target
远程mongodb 复制到本地soft文件夹下
scp -r root@192.168.120.204:/opt/soft/mongodb /opt/soft/
上传本地目录 /opt/soft/mongodb到远程机器192.168.120.204上/opt/soft/scptest的目录中去
scp -r /opt/soft/mongodb root@192.168.120.204:/opt/soft/scptest