linux基础(二)—-linux常用命令积累
最后更新于:2022-04-01 11:24:20
才开始玩Linux 一进入看到黑漆漆的画面 感觉无从下手 试试下面的命令吧
## 查找文件
find
绝对强悍
~~~
find . -maxdepth 1 -name "@*"
~~~
这个命令意思是,查找当前目录下以@开头的文件或者目录,搜索深度为一级也就是只在当前目录找(.是 当前目录的意思),不进入子目录。
如果你要从/目录开始找就:
~~~
find / -maxdepth 1 -name "@*"
~~~
如果想搜全盘,就把-maxdepth 1 去掉
## 编辑文件
### vim
在 shell 模式下,键入vi 及需要编辑的文件名,即可进入vi. 例如:
~~~
vi example.txt
~~~
即可编辑 example.txt 文件.
如果该文件存在,则编辑界面中会显示该文件的内容,并将光标定位在文件的第一行;
如果文件不存在,则编辑界面中无任何内容。
如果需要在进入vi 编辑界面后,将光标置于文件的第n 行,则在vi命令后面加上“+n” 参数即可。例如需要从example.txt 文件的第5 行开始显示,则使用如下命令:
~~~
vi +5 example.txt
~~~
退出 vi 时,需要在末行模式中输入退出命令“q”。
如果在文本输入模式下,首先按“ESC” 键进入命令模式,然后输入“:” 进入末行模式在末行模式下,可使用如下退出命令:
:q 直接退出。 如果在文本输入模式下修改了文档内容,则不能退出。
:wq 保存后退出。
:x 同“ wq”。
:q! – 不保存内容, 强制退出。
1.写文件的话,可以用vi或者vim命令。例如:$touch a.txt $vim a.txt然后按i来编辑文档a.txt,编辑完成后,按Esc进入命令行,按shift键,然后键入冒号wq(:wq),表示保存你所作的修改并退出,如果不想保存所作的修改可以键入冒号q!(:q!),表示强制退出。随后可以用 cat命令来查看你所做的修改。
2. 修改文件名用 mv.例如:mv a.txt b.txt便把a.txt文件名修改成了b.txt.
清空文件内容:
用vi 打开 删了抓出来cat /dev/null > filename
### 部分快捷键命令
ctrl-f 在文件中前移一页(相当于page down)
ctrl-b 在文件中后移一页(相当于page up)
H 将光标移到屏幕上的起始行(或最上行);
M 将光标移到屏幕中间;
L 将光标移到屏幕最后一行。
/string 向前搜索给定的字符串string;
?string 向后搜索给定的字符串string;
n 向前或向后搜索,找出字符串下次出现的位置。
rc 用c替换当前光标指示的字符;
x 删除当前光标位置的字符;
dw 删除光标右面的字;
db 附除光标前面的字;
dd 删除光标所在的行,并去掉空隙。
在上面的任何命令前面加上数字,它们的功能扩充如下:
nrc 从光标位置开始用c替换n个字符;
nx 从光标位置开始删除n个字符;
ndw 在光标右面删除n个字;
ndb 在光标前面删除n个字;
ndd 删除n行,并去掉空隙。
其他常用的删除命令(前面不能加数字)是:
d$ 从当前光标起删除字符直到行的结束;
d0 从当前光标起删除字符直到行的开始;
J 删除本行的回车字符(CR),并和下一行合并。
p(小写)将缓冲区的内容粘贴到当前光标的后面;
P(大写)将缓冲区的内容粘贴到当前光标的前面。
yy将当前行复制到剪切缓冲区;
nyy将n行复制到剪切缓冲区。
u 撤销前一条命令的结果;
. 重复最后一条修改正文的命令。
i 在光标左面插人正文;
a 在光标右面插人正文。
o在光标所在行下面增加新行;
O在光标所在行上面增加新行。
I 在光标行的开头插入;
A 在光标行的末尾插入;
:n 将光标移到第n行。
:a,b w file 将a行到b行的内容写到file中。
## 查看文件内容的方法及分页显示的办法
cat /etc/sysconfig/network
-n:查看行号信息
more:空格翻页 回车换行
less:上下键翻页 可以反复看(可以回翻页)
head:显示前几行
head -5 install.log 显示前5行
tail:显示后几行
tail -f 动态更新
grep:查看文件中包含关键字的一行
#grep --color=tty dump intstall.log 彩色显示
正则表达式:^root 以root为开头(^)
root$,以root结尾($)
-v:不包括的几行(取反)
~~~
grep -n -v ^# /etc/vsftpd/vsftpd.conf
~~~
切换用户命令: su - x1
ssh远程登录: ssh 192.168.1.254
telnet服务远程登录: telnet 192.168.1.254(telnet不安全,默认不允许root用户登录)
## 在linux下一ping就ping个没完,怎么让它停下来?
Ctrl+c 停止
Ctrl+z 暂停
## 新建文件夹
mkdir filename
-m 用于对新建目录设置存取权限,也可以用 chmod 命令进行设置。
~~~
mkdir -m 777 test
~~~
-p 需要时创建上层文件夹(或目录),如果文件夹(或目录)已经存在,则不视为错误。
## 删除文件 文件夹
rm
-i 删除前逐一询问确认。
-f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。
-r 将目录及以下之档案亦逐一删除。
很多人还是习惯用rmdir,不过一旦目录非空,就陷入深深的苦恼之中,现在使用rm -rf命令即可。
直接rm就可以了,不过要加两个参数-rf 即:rm -rf 目录名字
-r 就是向下递归,不管有多少级目录,一并删除
-f 就是直接强行删除,不作任何提示的意思
注:在linux没有回收站,在试用rm命令的时候,一定要小心些,删除之后就无法再恢复了。
## 设置文件权限
r(Read,读取):对文件而言,具有读取文件内容的权限;对目录来说,具有浏览目 录的权限。
w(Write,写入):对文件而言,具有新增、修改文件内容的权限;对目录来说,具有删除、移动目录内文件的权限。
x(eXecute,执行):对文件而言,具有执行文件的权限;对目录了来说该用户具有进入目录的权限。
r: 对应数值4
w: 对应数值2
x:对应数值1
-:对应数值0
数字设定的关键是mode的取值,一开始许多初学者会被搞糊涂,其实很简单,我们将rwx看成二进制数,如果有则有1表示,没有则有0表示,那么rwx r-x r- -则可以表示成为:
111 101 100
再将其每三位转换成为一个十进制数,就是754。
例如,我们想让a.txt这个文件的权限为:
可读 可写 可执行
自己 是 是 - 110
同组用户 是 是 - 110
其他用户 是 - - 100
那么,我们先根据上表得到权限串为:rw-rw-r--,那么转换成二进制数就是110 110 100,再每三位转换成为一个十进制数,就得到664,因此我 们执行命令:
~~~
[root@localhost ~]# chmod 664 a.txt
~~~
## 查看系统版本号
登录到服务器执行 lsb_release -a ,即可列出所有版本信息,例如:
~~~
[root@t ~]# lsb_release -a
~~~
LSB Version: :core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
Distributor ID: CentOS
Description: CentOS Linux release 6.0 (Final)
Release: 6.0
Codename: Final
2) 登录到linux执行cat /etc/redhat-release ,例如如下:
~~~
[root@3.5.5Biz-46 ~]# cat /etc/redhat-release
~~~
Red Hat Enterprise Linux AS release 4 (Nahant Update 1)
[root@3.5.5Biz-46 ~]#
这种方式下可以直接看到具体的版本号,比如 AS4 Update 1
3)登录到linux执行rpm -q redhat-release ,例如如下
~~~
[root@3.5.5Biz-46 ~]# rpm -q redhat-release
~~~
redhat-release-4AS-2.4
[root@3.5.5Biz-46 ~]#
## Linux命令行访问网页
curl http://iframe.ip138.com/ic.asp
(此命令可用于查询外网ip)
## 查看端口
~~~
netstat –apn
netstat -ntlp
~~~
**常见参数**
-a (all)显示所有选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服務状态
-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令。
## 复制文件
CP命令
格式: CP [选项] 源文件或目录 目的文件或目录
选项说明:-b 同名,备分原来的文件
-f 强制覆盖同名文件
-r 按递归方式保留原目录结构复制文件
~~~
cp -r /tmp/a /root/a
~~~
## 防火墙设置
Linux还是比较常用的,于是我研究了一下Linux关闭防火墙命令,在这里拿出来和大家分享一下,希望你能学会Linux关闭防火墙命令 。
1) 永久性生效,重启后不会复原
开启: chkconfig iptables on
关闭: chkconfig iptables off
2) 即时生效,重启后复原
开启: service iptables start
关闭: service iptables stop
需要说明的是对于Linux下的其它服务都可以用以上命令执行开启和关闭操作。
在开启了防火墙时,做如下设置,开启相关端口,
修改/etc/sysconfig/iptables 文件,添加以下内容:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
## 查进程
ps命令查找与进程相关的PID号:
ps a 显示现行终端机下的所有程序,包括其他用户的程序。
ps -A 显示所有程序。
ps c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。
ps -e 此参数的效果和指定"A"参数相同。
ps e 列出程序时,显示每个程序所使用的环境变量。
ps f 用ASCII字符显示树状结构,表达程序间的相互关系。
ps -H 显示树状结构,表示程序间的相互关系。
ps -N 显示所有的程序,除了执行ps指令终端机下的程序之外。
ps s 采用程序信号的格式显示程序状况。
ps S 列出程序时,包括已中断的子程序资料。
ps -t<终端机编号> 指定终端机编号,并列出属于该终端机的程序的状况。
ps u 以用户为主的格式来显示程序状况。
ps x 显示所有程序,不以终端机来区分。
最常用的方法是ps aux,然后再通过管道使用grep命令过滤查找特定的进程,然后再对特定的进程进行操作。
ps aux | grep program_filter_word,ps -ef |grep tomcat
ps -ef|grep java|grep -v grep 显示出所有的java进程,去处掉当前的grep进程。
## 杀进程
使用kill命令结束进程:kill xxx
常用:kill -9 324
Linux下还提供了一个killall命令,可以直接使用进程的名字而不是进程标识号,例如:# killall -9 NAME
## tomcat管理
### 查找tomcat的目录
~~~
whereis tomcat
~~~
如果没有whereis 命令则是系统版本问题,可使用find查找文件夹
### 启动停止查看tomcat目录
~~~
service tomcat status
service tomcat restart
service tomcat start
service tomcat stop
~~~
如果没有service命令
则需要进入到tomcat目录进行操作
进入bin目录
### 启动
~~~
./catalina.sh start
~~~
### 停止
~~~
./shutdown.sh
~~~
### 查看日志
进入logs目录
~~~
cat catalina.out
~~~