Linux菜鸟常常对命令行心存胆怯。部份缘由是由于须要记忆大量的命令,虽然把握命令是高效使用命令行的前提,不幸的是,学习这种命令并无捷径,但是在你开始学习命令之初,有些工具或方式还是可以帮到你的。
怎样学习(记住)linux命令(常用选项)?
1、完全没必要企图记住命令的所有参数
注意,是所有,而不是常用。对于常用的命令和命令参数,在使用过程中自然就记得很熟了。你艳羡的这些前辈能记得各类命令及其参数,虽然缘由是她们常常使用这种命令或命令的组合完成各类各样的事儿,熟能生巧而已。
2、学会看man
最好的答案都在指南里,而最确切的指南就是原始的英语文档。英语不好就打算一个翻译工具。计算机词汇就是如此积累的。
3、要想记得牢,有规律可循
假如要快速解决问题,读man又认为有难度的时侯;本着实用的理念,使用搜索引擎是最快捷有效的办法。还有有好多在线的速记表(例如cheatography),可以帮助你快速查询命令。更重要的是,还要学会知其所以然,加深记忆和理解。下边是一些示例:
1.-h一般意指'h'+uman,也就是human-readable【人类可读的】,代表有:ls-lth,sort-h
2.-v一般意指'v'erbose【verbose:详尽的】,代表有:curl-v,ssh-v,python-v
3.-a包括dot文件,代表有:ls-a,tree-a
4.-r一般意指:
a.'r'+everse【reverse:反向】,代表有:ls-lthr,sort-r
b.'r'+ecursive【recursive:递归】,代表有:grep-r,rm-r
5.--exclude-dir排除某个目录,代表:cloc.--exclude-dir=xxx,grep-rniI--exclude-dir=xxxabc./*
Linux下的一些常用命令解释pwd-->示当前的工作目录(pwd:printworkingdirectory)ls-->显示当前目录内容(list)
ls|more 分屏显示("|"为管道符,将前一个命令结果传递给后面的命令,more表示分屏)
ls /usr>test01/abc.txt 将指定目录的内容追加到test01目录下的abc.txt文本文档中
ls -l 显示长格式,简写ll,主要看文件的名,大小,权限等
ls -a 显示隐藏文件
cd-->改变当前工作目录
cd /usr-->转到指定目录
cd usr-->转到指定目录的子目录
cd ..-->返回到上一级目录
cd ~ -->返回到主目录
clear-->清屏cat-->显示文件内容
cat file|more
分屏显示文件内容(先显示文件内容,再将结果内容传给后一个命令分屏)
cat file|grep abc
显示包含字符abc的文件内容(先显示文件内容,再将结果传给后一个命令搜索,grep具有搜索功能)
cat > catalina.out 清空日志内容
touch-->创建新文件
linux下的一个目录下同时创建多个文件,参考下边创建目录,用touch命令。
mkdir-->创建新目录
linux下的一个目录下同时创建多个目录
mkdir命令前面直接跟目录名就行,想建几个就几个
注意:不能同时构建两级目录linux命令速查手册 pdf,如mkdirbin/newdir/foldA/foldB,都会报错
示例:
mkdir创建新目录
rm-->删掉文件或目录
rm file.txt 删除文件
rm -rf test01 删除不为空的目录(参数r:递归recursion,f:强制force)
rmdir-->删掉空目录cp-->复制文件
cp src.txt dest.txt
示例:使用cp命令报cp:omittingdirectory错误剖析:
由于testlianjw目录下还有目录或文件,不能直接进行拷贝。在cp命令前面加-r参数,递归拷贝实现。
cp复制文件
mv-->联通文件
mv命令来为文件或目录更名或将文件由一个目录联通到另一个目录中。
mv abc.txt def.txt 改名【重命名】
mv test01 test02 改目录名【重命名】
mv test 相当于mv t+(按Tab键),tab键有查找补充命令功能。
将/usr/udt中的所有文件移到当前目录(用”.”表示)中:$mv/usr/udt/*.
联通当前文件夹下的所有文件到上一级目录mv*../
chmod-->改变权限模式
chmod+xcatalina.sh为catalina.sh加可执行的权限(参数x:执行execute)。linux下的文件是否可执行取决于文件属性,不看扩充名。
chmod a+r catalina.out
将文件catalina.out设为所有人皆可读取。(参数a:所有人all)
chmod ugo+r catalina.out
也是将文件catalina.out设为所有人皆可读取。(参数u:档案拥有者user,g:group群组,o:other其他)
反例(给这两个文件添加可执行的权限):
# chmod +x apache-tomcat-6.0.24.tar.gz jdk-6u13-linux-i586.bin
vi-->Linux下的一个简单编辑器
vi.bash_profile打开Linux的用户级初始文件,:wq保存退出,:q!不保存退出
vi+文件名步入
按i【insert】进行编撰
:w为保存
:q推出
:wq保存推出
在以上操作中加入''!''为强制执行
tail-->显示文件尾部内容
tail -f ./catalina.out
将文件最尾部内容显示在屏幕上,并不断刷新显示,按ctrl+c或delete退出。【当前目录用”.”表示)】
【tail-f是linux下的命令意思是动态监视文件尾部。例如log更新了中标麒麟linux,在屏幕上立刻能够看到】
又如:
tail -f /usr/local/tomcat5/logs/catalina.out
netstat或则lsof-->查看网路端口与进程号
netstat -anp|grep 8080
直接查看指定端口的进程pid,结果为
合同本地地址外部地址状态PID
TCP0.0.0.0:800.0.0.0:8080LISTENING5144/java
lsof -i:8080
直接查看指定端口的进程pid,结果为
COMMANDPIDUSERFDTYPEDEVICESIZENODENAME
java5144root33uIPv6127800TCP*:8080(LISTEN)
则5144为8080这个端口的tomcat进程的pid,之后就可以kill这个进程:kill-95144
对比Windows下netstat命令:netstat-ano|findstr8080,taskkill-f-pid5144(f:force强制)
ping-->查看网路是连通
ping 127.16.8.66
查看当前机器与目录机器是否能正常通讯(主要是看TCP/IP合同是否正常)
ipconfig查看ip地址
ipconfig -all
可以看见各个网路适配器(本地网卡、无线网卡)的IP地址和MAC地址
ps-->查看程序活动进程
ps -ef |grep tomcat
查看是否早已有tomcat在运行了,假如有则将其进程杀害
#结果为:
sun15401010:21pts/100:00:06/java/jdk/bin/java-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager-Djava.endorsed.dirs=/java/tomcat/common/endorsed-classpath:/java/tomcat/bin/bootstrap.jar:/java/tomcat/bin/commons-logging-api.jar-Dcatalina.base=/java/tomcat-Dcatalina.home=/java/tomcat-Djava.io.tmpdir=/java/tomcat/temporg.apache.catalina.startup.Bootstrapstart
则1540就为进程号pid=1540,之后就可以kill这个进程:kill-91540
对比Windows下tasklist命令:tasklist|findstrtomcat,taskkill-f-pid5144
telnet-->测试远程端口是否连通
telnet 10.4.200.114 1433
①端口通畅的情况
Trying10.4.200.114…
Connectedto10.4.200.114(10.4.200.114).
Escapecharacteris'^]'.
②端口不通的情况
Trying10.4.200.114…
假如能ping通,但端口不通,说明有可能被防火墙禁用了该端口,解决办法:
serviceiptablesstatus可以查看到iptables服务的当前状态。
然而虽然服务运行了,防火墙也不一定起作用,你还得看防火墙规则的设置iptables-L(linux下:查看防火墙)
在此说一下关于启动和关掉防火墙的命令:
1)重启后生效【开启:chkconfigiptableson,关掉:chkconfigiptablesoff】
2)即时生效,重启后失效【开启:serviceiptablesstart,关掉:serviceiptablesstop】
设置防火墙:setup(乱码)解决Putty工具乱码:查看Linux系统当中使用的字符集echo$LANG$LANGUAGE,选择菜更改设置(changesettings)—>转换(translation)-->选utf-8-->应用(apply)
win7下防火墙开放端口方式:控制面板--系统和安全—windows防火墙—中级设置--入站规则--新建规则-->添加1433端口。
df-->查看c盘空间(diskfree)
df -lh /usr/local
df查看c盘空间
du-->查看已使用空间(diskused)
du -h /usr
du -h --max-depth=1 查看文件夹大小
top-->Linux下常用的性能剖析工具
才能实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器
top -s 查看内存使用情况
top -s | grep java 查看java进程的信息
Linux压缩与解压缩
23.1tar.gz这些格式是Linux下使用得最多的压缩格式。它在压缩时不会占用太多CPU的,并且可以得到一个特别理想的压缩率。
tar -zcvf archive_name.tar.gz directory_to_compress -->压缩一个目录
tar -zxvf archive_name.tar.gz -->解压缩到当前目录下
tar -zxvf archive_name.tar.gz -C /usr/temp/ -->解压缩到指定目录下
参数解释:
-z-gzip调用gzip对tar归档文件进一步压缩成tar.gz格式,或则对tar.gz格式完成解压缩
-x-extract解压缩已归档的指定(或所有)文件
-c-create创建新的归档文件
-v-verbose生成详尽输出
-f-file指定归档文件名
-r向归档文件末尾追加文件
-C改变目录
23.2压缩/解压zip格式zipfile.zip./directory/*-->压缩指定目录下的所有文件及目录unzipfile.zip-d./test-->解压缩到指定目录unzipfile.zip-->解压缩到当前目录unzip-vlargefile.zip-->只查看压缩包的内容,并不解压缩
Linux下如何搜索文件
使用linux系统难免会忘掉文件所在的位置,可以使用以下命令对系统中的文件进行搜索。搜索文件的命令为”find“;”locate“;”whereis“;”which“;”type“。
Linux下怎样一条命令删掉上万个文件
find / -name *.log | xargs -n 1000 rm -f
由于rm接收参数的数目是有限的,所以每次传1000个参数给他,这样可以满足你的需求。
补充一点,这些写法虽然不是非常严谨,由于假如日志文件的命名有特殊字符的话,前面命令将会对特殊字符文件辨识不了。严谨的写法:
find / -name '*.log' -print0 |xargs -0 -n 1000 rm -f
这儿上面的print0和后的-0都是对特殊字符进行处理,也就是说他会认识如”aabbcc”这些文件名中国linux操作系统,多的不说了,不知你能够看明白。
一个反例,测试脚本:
#!/bin/bash
for (( i=1;i<=30000;i=i+1))
do
touch $i.log
done
删掉文件:
find ./ -name "*.log" -print|xargs -n 1000 rm -rf
更改主机名和查看主机名
虽然主机名的更改也有专用工具,就是hostname
hostname-showorsetthesystem’shostname
显示主机名:
# hostname
lianjia
此主机的主机名是lianjia,不加参数是拿来显示当前主机的主机名;
临时设置主机名:
# hostname lianjia100
# hostname 注:显示主机名
lianjia100
通过hostname工具来设置主机名只是临时的,上次重启系统时,此主机名将不会存在;
显示主机IP:
# hostname -i
192.168.1.100
hostname查看主机名
怎样查看tomcat运行了多长时间?
ps-eopid,lstart,etime|grep(pid)
查看tomcat运行了多长时间
进程运行了23:43:29。
总的来说linux命令速查手册 pdf,菜鸟学习Linux,非常是习惯了图形化界面操作的用户,忽然切换到字符界面难免会有一些障碍感。并且,持续不断的练习,总归会有所进步的,无论是语言还是技术。