Linux常用命令
一、常用目录/文件操作命令
1.展示目录列表命令ls(list)
ls # 展示当前目录下的可见文件
ls -a # 展示当前目录下所有的文件(包括隐藏的文件)
ls -l (ll) # 展示当前目录下文件的详细信息
ll -a # 展示当前目录下所有文件的详细信息
ll -h # 友好的显示当前目录下文件的详细信息(其实就是文件的大小可读性更强了)
2.切换目录命令cd(change directory)
cd test # 切换到test目录下
cd .. # 切换到上一级目录
cd / # 切换到系统根目录下
cd ~ # 切换到当前用户的根目录下
cd - # 切换到上一级所在的目录
3.目录的创建(mkdir)和删除(rmdir)命令
mkdir test # 在当前目录下创建一个test目录
mkdir -p test/a/b # 在test目录下的a目录下创建一个b目录,如果上一级目录不存在,则连它的父目录一起创建
rmdir test # 删除当前目录下的test目录(注意:该命令只能够删除空目录)
4.文件的创建(touch)和删除(rm)命令
touch test.txt # 在当前目录下创建一个test.txt的文件
rm test.txt # 删除test.txt的文件(带询问的删除,需输入y才能删除)
rm -f test.txt # 直接删除text.txt文件
rm -r test # 递归删除,即删除test目录以及其目录下的子目录(带询问的删除)
rm -rf test # 直接删除test目录以及其目录下的子目录
5.文件打包或解压命令tar
tar命令的常用参数:
-c 创建一个新tar文件
-v 显示运行过程的信息
-f 指定文件名
-z 调用gzip命令进行压缩
-t 查看压缩文件的内容
-x 解开tar文件
tar -cvf test.tar test # 将当前目录下的test目录打包成test.tar文件
tar -zcvf test.tar.gz test # 将当前目录下的test目录打包并压缩成test.tar.gz文件
tar -xvf test.tar # 将test.tar文件解压到当前目录
tar -xvf test.tar -C b # 将test.tar文件解压到当前目录的b目录下(解压到指定目录)
6.文件移动(mv)和复制(cp)命令
mv test1.txt test2.txt # 将test1.txt重命名test.2txt
mv test1.txt test/test2.txt # 将test1.txt移动到当前目录下的test目录下并重命名为test2.txt
cp test1.txt test2.txt # 复制test1.txt并粘贴到当前目录下,然后重命名为test2.txt
cp test1.txt test # 复制test1.txt并粘贴到当前目录下的test目录下
7.文件查看命令(cat,more,less,tail)
cat index.xml # 查看index.xml的文件内容,当文件内容过长时后面的内容无法查看
more index.xml # 分页查看index.xml的文件内容,空格键翻页,回车键下一行,但翻页后无法查看上一页的内容
less index.xml # 分页查看index.xml的文件内容,PGUP键查看上一页,PGDN键查看下一页
tail index.xml # 查看index.xml文件的尾部内容
tail -10 index.xml # 查看index.xml文件的后10行内容
tail -f catalina.log # 动态查看日志,一般用来服务器日志
ctrl+c # 结束查看
8.查找命令grep,find
grep abc test.txt # 在test.txt文件中查找abc
grep abc test.txt --color # 在test.txt文件中查找abc,并高亮显示
9.查看当前所在文件夹的位置
pwd # 显示当前所在目录
10.重定向输出>和>>
cat test.txt > test1.txt # 将text.txt查出的内容输出到test1.txt中,如果之前test1.txt中有数据将覆盖,没有该文件 将会创建。此时将不再命令行输出
cat test.txt >> test1.txt # 将text.txt查出的内容输出到test1.txt中,如果之前test1.txt中有数据将会在原有数据后面 追加查出的数据
11.管道 |
该命令的作用是将一个命令的输出作为另一个命令的输入
cat index.xml | more # 分页查询index.xml的内容
ps –ef | grep aio # 查询名称中包含aio的进程
12.&&命令执行控制
当我们需要同时执行多个命令时可以使用&&符号
mkdir test && cd test # 创建test目录并且打开该目录(注意:只有在&&符号前的命令执行成功后面的命令才会执行)
13.vi/vim编辑器
vi/vim test.txt # 打开test.txt文件
进入命令模式后按i、o或a键进入编辑模式,此时文件为编辑状态,编辑完成之后按esc键退出编辑模式,然后按:进入底行模式,输入wq是保存退出,输入q是不保存退出,输入q!是强制退出
vim是vi的高级版编辑器
二、网络通讯命令
1.ifconfig 显示或设置网络设备
ifconfig eth0 up # 启用eth0网卡
ifconfig eth0 down # 禁用eth0网卡
2.ping 探测网络是否通畅
ping 192.163.124.21 # 检测与ip为192.163.124.21的连接是否通畅
3.netstat 查看网络端口
netstat -an | grep 3306 # 查询3306端口的占用情况
三、系统管理命令
1.date 显示或设置系统时间
date # 显示系统时间
date -s "2014-01-01 10:10:10" # 设置系统时间
2.df 显示磁盘信息
df # 显示磁盘信息
df -h # 友好显示大小
3.free 显示内存状态
free # 显示内存状态
free -m # 以mb单位显示内存组昂头
4.clear(ctrl+l)清屏幕
clear # 清屏
5.ps 正在运行的某个进程的状态
ps -ef # 查看所有的进程
ps -ef | grep 2868 # 查看pid(进程标识符)为2868的进程
6.kill 结束某一进程
kill 2868 # 结束pid为2868的进程
kill -9 2868 # 强制结束pid为2868的进程
7.du 显示目录或文件的大小
du -h # 显示当前目录的大小
du -sh * # 显示当前目录所有文件的大小
8.who 显示当前用户的信息
who #显示当前用户的信息
9.hostname 查看当前主机名
hostname #查看当前主机名
10.uname 显示系统信息
uname #显示系统信息
uname -a #显示本机详细信息
四、用户和组管理
1.useradd 添加用户
useradd tom #添加一个tom用户
useradd tom -d /home/hello #添加一个tom用户,并指定tom用户的家目录为hello
2.userdel 删除用户
userdel tom #删除tom用户(不会删除home目录)
userdel -r tom #删除tom用户及其home目录
3.groupadd 创建组
groupadd public # 创建一个名为public的组
useradd tom -g public # 创建一个tom用户并为其指定组public
4.groupdel 删除组
groupdel public # 删除public组,如果该组有用户成员,则必须先删除其用户才能删除组
5.id 查看UID和GID
id tom # 查看tom用户的UID和GID
6.su 切换到其他用户,但是不切换环境变量
su - 是完整的切换到一个用户环境,一般使用这个
su - root # 切换到root用户
五、文件权限管理
1.文件类型标志
普通文件(-) 目录(d) 符号链接(l)
2.chmod 变更文件或目录的权限
chmod [who] [opt] [mode] 文件/目录名
who:表示对象,是以下字母中的一个或组合:
u:表示文件所有者
g:表示同组用户
o:表示其它用户
a:表示所有用户
opt:代表操作
+:添加某个权限
- :取消某个权限
=:赋予给定的权限,并取消原有的权限
mode:代表权限:
r :可读
w:可写
x :可执行
chmod g+rw a.txt # 对同组用户增加对文件a.txt的读写权限
chmod u=rwx,g=rx,o=rx test.txt # 对test.txt的所属用户赋予rwx权限,所属组赋予rx权限,其它用户赋予rx权限
用数字设定法 :chmod [mode] 文件名
将rwx看成二进制数,如果有则有1表示,没有则有0表示
rwx 111 转换为十进制 7
r- x 101 转换为十进制 5
r -- 100 转换为十进制 4
chmod 777 test.txt # 对test.txt赋予所有用户所有权限,慎用
3.chown 变更文件或目录改文件所属用户和组
chown tom:public test.txt # 变更test.txt的所属用户为tom和所属组为public
chown -R tom:public dir # 变更dir中的所有子目录及文件的所属用户为tom和所属组为public
六、安装、卸载、启用、停止、重启软件
yum list
yum install 软件名
yum remove 软件名
yum list # 列出当前系统的所有安装包
yum install vim # 安装vim编辑器
yum remove vim # 安装vim编辑器
systemctl start 软件服务名 启用软件
systemctl stop 软件服务名 软件停止
systemctl restart 软件服务名 重启软件
systemctl status 软件服务名 查看服务状态
systemctl start firewalld # 启动防火墙
systemctl stop firewalld # 停止防火墙
systemctl restart firewalld # 重启防火墙
systemctl status firewalld # 查看防火墙状态
七、常用的快捷键
Tab:命令或路径补全键
移动光标快捷键:
Ctrl+a:光标回到命令行首
Ctrl+e:光标回到命令行尾
Ctrl+f:光标向右移动一个字符(相当于方向键右键)
Ctrl+b:光标向左移动一个字符(相当于方向键左键)
剪切、粘贴、清除快捷键:
Ctrl+Insert:复制选中命令行内容
Shift+Insert:粘贴复制的命令行内容
Ctrl+k:剪切(删除)光标处到行尾的字符
Ctrl+u:剪切(删除)光标处到行首的字符
Ctrl+w:剪切(删除)光标前的一个单词(用空格隔开的字符)
Ctrl+y:粘贴Ctrl+u/Ctrl+k/Ctrl+w删除的文本
Ctrl+c:中断终端正在执行的任务或者删除整行
Ctrl+h:删除光标所在处的前一个字符(相当于退格键)
重复执行命令行快捷键:
Ctrl+d:退出当前shell命令行
Ctrl+r:搜索命令行使用过的历史命令记录
Ctrl+g:从执行Ctrl+r的搜索历史命令模式中退出
控制快捷键:
Ctrl+l:清除屏幕的所有内容,并在屏幕的最上面开始一个新的命令行,等同于clear命令
Ctrl+s:锁定终端,使之无法输入内容
Ctrl+q:解锁执行Ctrl+s的锁定状态
Ctrl+z:暂停执行在终端运行的任务
!号开头的快捷键命令
!!:执行上一条命令
!cat:执行最近以cat开头的命令
!cat:p:仅打印最近以pw开头的命令,但不执行
!num:执行历史命令列表的第num(数字)条命令
!$:上一条命令的最后一个参数,相当于Esc+.
Esc相关:
Esc+.:获取上一条命令最后的部分(空格分隔)
Esc+b:移动到当前单词的开头
Esc+f:移动到当前单词的结尾