Linux命令太多,根据每个人使用用途的不同所用到的命令一般也不同,
并且不经常使用的话也会忘记,现在把经常用到的总结记录下来,以便以后使用。
假设连接上Linux服务器上后,默认进入目录/home/admin
一. 【ls】命令
当不记得当前目录下有哪些目录或文件时,输入ls命令显示当前目录下包含的文件名称和子目录。
【ll】命令
当不记得当前目录下有哪些目录或文件时,输入ll命令显示当前目录下包含的文件名称和子目录的详细信息,包括是否可读写,创建时间、人物等等。
二. 【cd】命令
1. 进入admin的下级目录【logs--假如存在该目录】---/home/admin/logs
cd logs
或是直接进入多层目录----/home/admin/logs/salesmng
cd logs/salesmng
2. 返回上一层目录 -----/home
cd .. 或 cd ../
或是直接返回多层
cd ../../
三. 【tail 和 cat 】命令--------假如目录/home/admin/logs/salesmng下,有个错误日志文件[common-error.log]
1. tail -500 common-error.log 和【tail -n 500 common-error.log】一样的结果
从[common-error.log]该文件最后一行向前读取500行显示,[500]表示行数,可按照需要变化。
【head】命令则相反,从头显示500行。
2. cat common-error.log 【当文件大的时候不建议使用,打开过大的文件可能会占用过多的系统资源】
显示整个文件的内容(从头到尾显示)。【tac】命令则相反,文件内容从尾到头显示。
cat -n common-error.log 显示内容和【行号】。
3. tail -f common-error.log
此命令用于实时监控,显示程序当前正在运行的即时日志。对监控程序有很大的作用。
四. 【Tab Ctrl+C Ctrl+D】快捷键命令
Tab: 自动补全命令
Ctrl+C: 让当前的程序[停掉]
Ctrl+D: 相当于exit命令---logout 连接结束
五. 【vim/vi】命令[vim为vi命令的升级版,包含vi的所有命令功能]------当前目录/home/admin,假设存在文件antx.properties
1. vim antx.properties 进入可编辑模式
【:q】退出
【:q!】强制退出
【:wq】保存并退出
【/partern】在打开的文件中查找partern 按n跳到下一个,shift+n上一个。
Vi 有三种基本的工作模式:指令行模式、文本输入模式、行末模式。
指令模式(Command Mode)[vim antx.properties ]下输入 a、i、o(三个大写也可以)进入文本输入模式(Input Mode),按esc退出输入模式!
详情参考下图!注意有大小写区分!!!!
六. 【grep】查询命令
1. grep common-error.log -e S20041-150920-5274
在整个文件[common-error.log]中查找[S20041-150920-5274],把包含该关键词的行显示出来。
2. tail -550 common-error.log | grep S20041-150920-5274
跟其他命令一起使用,即在该命令查询出来的结果中查询关键词[S20041-150920-5274],把包含该关键词的行显示出来。
3. tail -500 common-error.log | grep S20042-151023-9861 --color
跟2.一样,只是把关键字[S20042-151023-9861]高亮显示出来了。
七. 清空频幕命令
1、clear:这个命令将会刷新屏幕,本质上只是让终端显示页向后翻了一页,如果向上滚动屏幕还可以看到之前的操作信息。一般都会用这个命 令。
Ctrl+L 作用一样
2、reset:这个命令将完全刷新终端屏幕,之前的终端输入操作信息将都会被清空,这样虽然比较清爽,但整个命令过程速度有点慢,使用较少。
八. 多命令执行逻辑
command1 & command2 & command3 三个命令同时执行
command1; command2; command3 不管前面命令执行成功没有,后面的命令继续执行
command1 && command2 只有前面命令执行成功,后面命令才继续执行
command1 ||command2 如果command1执行失败,则执行command2
比如CBD: update build deploy ------>>>> ./ccupdate.sh && ./build.sh && ./deploy.sh
九. 自动获取ip:dhclient
查ip:ifconfig
shutdown
-r 关机重启
-h 10 关机不重启(10分钟后关机,shutdown -c 取消关机命令)
now 立刻关机
poweroff 立刻关机
halt 立刻关机(较少用)
reboot 重启
十. 查看某个端口被占用
1. 比如被占用的端口是61616
[root@localhost bin]# netstat -anp | grep 61616
tcp 0 0 :::61616 :::* LISTEN 21599/java
2. 再根据1查询出来的信息确认是被谁占用了【根据PID】
ps aux | grep 21599
3.然后再根据实际情况看是否需要把占用程序给终止掉
kill 21599
十一. 防火墙命令
1.重启后生效
开启: chkconfig iptables on
关闭: chkconfig iptables off
2.即时生效,重启后失效
开启: service iptables start
关闭: service iptables stop
3.查看防火墙状态[开启还是关闭]
service iptables status
十二. 查找文件或文件夹
find -name tomcat[文件夹或文件名称]
十三. touch 命令
touch filename 创建一个新文件 touch bash.sh
如果filename的文件存在,则更改该文件的创建时间为当前时间[修改时间戳],不存在则新建!
十四. 删除命令 [rm]
1. rm filename 会提示是否要删除该文件【Y/N】
2.默认不能删除文件夹,比如 rm dirName ,
rm dirname -r 递归删除该目录以及目录下的所有文件
十五. 统计命令 wc
wc -l common-error.log 统计该文件有多少行
wc -c common-error.log 统计该文件有多少字节
十六. 查看重复出现的行命令 uniq
cat error.log 显示文件所有内容
sort error.log | uniq -c 先通过sort排序,再通过uniq去重统计 -c 参数用来在每一行前面显示该行出现的次数!
4 aaa
3 bb
1 cc
2 ffffff
sort error.log | uniq -c -u 展现仅出现一次的行
sort error.log | uniq -c -d 只展示重复出现的行
十七.表达式求值 expr
expr 10 \* 3 ; 输出30,乘号*要通过反斜杠进行转义[加减乘除取模均可]
expr index "www.qq.com" qq 输出5,即取得索引
expr length "jskfjaljglgjggggg" 输出该字符串的长度
十八.赋权限命令 chmod
十九.切换用户命令 su \ sudo
两者的区别:su root 是直接切换到了root用户。 sudo root 是当前用户以root的权限执行。
sudo命令用来以其他身份来执行命令,预设的身份为root。在/etc/sudoers中设置了可执行sudo指令的用户。
若其未经授权的用户企图使用sudo,则会发出警告的邮件给管理员。用户使用sudo时,必须先输入密码,之后有5分钟的有效期限,超过期限则必须重新输入密码。
一般使用sudo命令,su切换用户更改敏感信息没有提示,不安全!
[user@localhost practiseFolder-user]$ sudo vi test1
[sudo] password for user:
user 不在 sudoers 文件中。此事将被报告。
二十. sed编辑器
sed 's/xxx/yahoo' error.log 将文件中的xxx替换成yahoo
sed -n '2,6p' error.log 输出该文件的2至6行
sed '/qq/d' error.log 删除该文件中含qq的行
二十一.awk程序命令
awk '{print $1}' error.log | head -10
print 命令用来格式化输出,支持转义字符,$1表示第一列,awk默认用空格将一行分割成多个列.
可以使用 -F 来指定列的分割符。例如分割符为横杠-:awk -F - '{print $1}' error.log | head -10
awk '/google/{print $5,$6}' error.log | head -10 筛选出含有google的行,并且打印出第五六列
二十二.rpm文件安装命令
// 下载的文件为[hadoop-1.0.4-1.i386.rpm]
rpm -ivh ./hadoop-1.0.4-1.i386.rpm
二十三.复制命令cp
cp filename newName 只复制文件
cp -r foldername newName 复制文件夹以及下面的文件和子文件夹
跨服务器复制:
跨服务器复制
scp /root/.erlang.cookie root@node-003:/root
二十四. 压缩和解压命令
tar -cvf a.tar a 创建文件a的tar包
tar -tvf a.tar 查看tar包包含的文件
tar -xvf a.tar 解压tar包文件
tar -rvf a.tar b 追加文件b到tar包a.tar
tar -Avf a.tar c.tar 追加c.tar包到a.tar包
tar -zcvf a.tar.gz a 创建文件a的gzip压缩的tar包
tar -ztvf a.tar.gz 查看文件a的tar压缩包内容
tar -zxvf aa.tar.gz 解压aa.tar.gz包的内容
tar -jcvf aa.tar.bz2 aa 创建文件a的bzip压缩的tar包
tar -jtvf aa.tar.bz2 查看文件a的tar压缩包内容
tar -jxvf aa.tar.bz2 解压aa.tar.bz2压缩包内容
二十五. rz sz 命令
rz为导入命令。可以直接用拖拽替代。
sz aa.txt 即导出到外面系统,可选导出地址。
二十六. 开放防火墙端口
[root@node-002 /]# firewall-cmd --zone=public --add-port=9300/tcp --permanent
success
[root@node-002 /]# firewall-cmd --reload
二十七. 把文件置为空文件
$ echo "" > filename
$ : > filename
$ > filename
$ echo > filename
$ cat /dev/null > filename
二十八. 设置环境变量及时生效
source /etc/profile
二十九. 固定新建虚拟机IP地址,防止重启ip变更
1. cd /etc/sysconfig/network-scripts
2. vi ifcfg-ens33
3. 修改为如下图
4. service network restart
---------仅供参考,之后会慢慢完善!