Linux常用操作命令

Linux目录结构

分为相对路径和绝对路径,目录分隔符"/"
绝对路径:所有以"/"开始的路径都是绝对路径
相对路径:目录名或文件名开始的
./ 表示当前目录
.. 表示当前目录的上一级
~ 表示用户的主目录

/   -----处于Linux系统树形结构的最顶端,是Linux文件系统入口
/bin-----常用的二进制命令目录,如ls,cp,mkdir等
/boot----存放系统启动相关文件
/dev-----设备文件目录
/etc-----畅通系统及二进制安装包配置文件,默认路径和服务器命令目录
/home----普通用户的家目录,默认存放目录
/opt-----没什么用可以自己用
/proc----存在于内存中,是内存的映射,可以查看CPU信息,/pro/cpuinfo
/sys-----系统目录,存放硬件信息的相关文件
/run-----运行目录,存放系统运行时的数据,如进程PID文件
/srv-----服务目录,存放本地服务的相关文件
/sbin----超级用户可执行命令存放目录
/tmp-----存放临时文件目录,只能被owner(拥有者)和超级权限删除
/var-----系统运行和软件运行时产生的日志信息
/usr-----存放应用程序和文件,自己安装存放位置
/mnt/media--一般用来临时挂载存储设备的挂载目录
/lib/lib64---都在/usr目录,存放系统最基本的动态,链接共享库,能够让程序正常编译运行,lib***.a是静态库,lib***.so是动态库

ls命令

ls命令:查看当前目录下的所有文件

ls [参数] 目录路径
ls       #命令本身查看当前目录下的文件
ls ./    #表示查看当前目录下的文件
ls ../   #表示查看当前目录上级目录下的文件
ls /     #表示查看系统根目录的所有文件
ls -l    #-l表示查看当前目录下的文件的详细信息 这-l参数有时可以和ls命令简写为ll
ls -a    #-a表示查看目录下的所有文件(包含隐藏文件)
ls -h    #-h表示将文件的大小以合适的单位显示,一般情况和-l连用
ls -hl   #表示查看当前目录下的文件,并以合适的单位显示文件大小

pwd命令

pwd命令 查看当前目录的路径

cd命令

cd命令是进入Linux系统文件夹的命令

cd  目录路径
cd /       #表示进入系统根目录
cd usr     #表示进入档期那目录下的usr目录
cd ./games #表示进入当前目录下的games目录
cd ..      #表示返回当前目录的上一级目录
cd         #表示cd后面加任何目录,表示进入当前用户的根目录 如果root目录会进入/root目录,如果是test用户会进入/home/test目录
cd ~       #表示进入当前用户的根目录
cd ../../  #表示返回当前目录的上级目录的上级目录
cd ../home #表示进入与当前目录同级的home目录(进入上级目录下的home那目录)

mkdir命令:创建文件夹命令

mkdir [参数] 目录路径
mkdir data        #在当前目录下创建一个叫data的文件夹
默认情况下mkdir只能创建一级文件夹
mkdir /root/file  #表示在/root目录下创建一个叫file的文件夹

-p参数 : 一次性创建多级目录
mkdir -p /root/opt/data/file  #表示在root目录下创建三个级联的目录

rmdir命令:删除文件夹命令

注意:使用rmdir命令删除目录时,目录必须是一个空目录(目录下面没有任何的文件活目录),否则不能删除

rmdir data  #删除当前目录下的data目录
rmdir -p    #删除当前目录下的所有目录
rmdir -p opt/data/file  #删除当前目录下的opt以及它的子目录,相当于rmdir opt/data/file-->rmdir opt/data-->rmdir opt

rm删除命令

rm删除命令:可以删除文件和文件夹一般都使用 -rf参数

rm anaconda-ks.cfg  #删除当前目录下的anaconda_ks.cfg文件
rm -rf opt/data   #删除当前目录下opt目录下的data文件夹以及它下面的所有文件和文件夹

-r : 表示递归删除
-f : 表示强制删除,不提示

rm -f file   #表示删除当前目录下file目录以及它下面的所有文件,会弹出提示
rm _rf file  #表示强制删除当前目录下file目录下的所有内容,不会提示

touch命令:创建文件命令

touch 文件路径

touch 1.txt   #表示在当前目录下创建一个1.txt文件
touch /root/2.txt #表示在/root目录下创建一个2.txt文件

echo命令:输出命令

echo输出命令:相当于plsql中的dbms_output.put_line

PATH系统环境变量
$ : 表示取值
echo $PATH   #表示输出环境变量的PATH的值

echo -n  #表示输出但不换行

>和>>命令

命令>|>>文件 : 表示将前面命令的结果放入到文件中

echo 1234 > 3.txt   #表示将1234输出到3.txt中,如果文件不存在会在创建文件,如果文件存在,会先将文件清空后媳妇1234
echo 1234 >> 4.txt  #表示将1234输出到4.txt中,如果文件不存在会创建文件,如果文件存在,会在原有的文件内容后追加1234

查看文件内容命令

cat命令

cat 文件路径
cat 4.txt  #表示查看当前目录下的4.txt文件的内容

cat 4.txt >> 3.txt  #表示将4.txt文件的内容追加到3.txt中

more命令

more 文件路径  #表示查看文件内容,先显示文件的部分内容,按空格(或回车)翻页

less命令

less 文件路径  #表示查看文件的内容,先显示文件部分内容,按空格(或回车)翻页,输出q退出查看

head命令

head [-n] 文件路径  #表示从文件开始查看文件若干行内容,n是一个正整数表示行数
head -20 4.txt  #表示查看4.txt的前20行内容

tail命令

tail [-n][-f] 文件路径  #表示从文件结尾开始查看文件若干行内容,n表示行数是一个正整数,-f参数表示动态查看文件的后几行内容(用来查看日志文件)

tail -15 4.txt   #表示查看4.txt的后15行内容
tail -f  4.txt   #表示动态查看4.txt的内容,按Ctrl+C退出查看Ctrl+Z

Ctrl+C : 表示暂停程序的运行
Ctrl+Z : 表示停止程序的运行

vi和vim命令:文件编辑

vi是Linux系统自带的命令,vim一般需要安装 : yum -y install vim

vim 文件路径
vim 5.txt  #表示编辑当前目录下5.txt文件,没有该文件会自动创建一个5.txt

非编辑模式:用来使用一些命令的
i  #进入编辑模式,光标就在当前行
o  #进入编辑模式,光标出现在当前行的下一行
yy  #将光标当前行的内容,复制到粘贴板上
p  #将粘贴板上的内容复制到当前行的下一行
dd  #删除光标当前行的内容
:set nu  #显示行号
:set nonu   #取消显示行号
/查找字符   #从前向后查找字符串(当前光标)
?查找字符   #从后往前查找字符串(当前光标)
:%s/查找的字符串/新的字符串/g  #表示将文中的所有内容进行替换  g表示:global 全文替换  i:表示忽略大小写
    :%s/fa/34/g  #表示将文本中的所有fa替换成34
    :%s/$/;/g    #表示将文本中的每一行的末尾添加一个";"   $:表示行末
    :$s/^/#/g    #表示在文本中的每一行的行头添加一个"#",将所有内容注释掉   ^:表示行首,#是Linux中的注释符号
:n1,n2s/查找的字符串/新的字符串/g  #表示将第n1行到第n2行之间的所有内容进行替换
    :15,15s/12/34  #表示将15行中的12替换成34
:s/查找的字符串/新的字符串   #表示替换光标当前行第1个目录字符串
    :s/34/56  #将光标当前行的34替换成56
    :%s/n/x/gi  #将文本中的所有n(包括大写)都替换成x

    Ctrl+F : 表示向下翻页
    Ctrl+B : 表示向上翻页
    Ctrl+U : 表示向上翻半页
    Ctrl+D : 表示向下翻半页

:set ff  #表示查看当前文件的格式
        Windows中的 doc
        Linux中的 unix
u:   #表示撤销
:w   #表示保存
:q   #表示退出不保存
:wq  #表示退出并保存
:q!  #表示强制退出不保存
:wq! #表示强制保存并退出

ESC键  #表示退出编辑模式

cp命令:复制命令

cp 源文件 目标文件

cp 5.txt 6.txt  #将当前目录下的5.txt文件复制一份保存为6.txt
cp 5.txt opt/   #将当前目录下的5.txt文件复制到opt目录下

cp -r opt data/ #将opt目录及目录下的所有内容拷贝到data目录下
cp -r data/* opt #将data目录下的所有文件拷贝到opt目录下

mv命令:移动命令(剪切命令)

mv 源文件 目标文件

mv 6.txt 7.txt   #将当前目录下的6.txt文件移动到7.txt(相当于给6.txt改名)
mv 7.txt data/   #将当前目录下的7.txt文件移动到data目录下
mv 4.txt data/5.txt  #将当前目录下的文件移动到data目录下的5.txt(相当于移动并改名)

mv op data/     #将当前目录下的op目录移动到data目录下
mv opt op       #将opt目录改名成op

压缩命令

zip命令

zip的安装命令:yum -y install zip

zip 压缩文件名 源文件

zip 5.zip 5.txt  #将当前目录下的5.txt压缩到5.zip文件中

zip data.zip data/*  #将data目录下的所有文件压缩到data.zip文件中(压缩时没有将data的下级目录内的文件压缩)
zip -r data.zip data/*  #将data目录下的所有文件包含子目录下的文件压缩到data.zip文件中

unzip解压命令

unzip的安装命令:yum -y install unzip
 
unzip [参数] 压缩文件
unzip -l 5.zip  #查看5.zip压缩包中的内容
unzip 5.zip     #将5.zip解压到当前目录中
unzip 5.zip -d data/  #将5.zip解压到指定的目录data目录下

tar命令

tar -cvf 压缩文件名 要压缩的文件  #将目标文件压缩成.tar压缩包
tar -cvf data.tar data/   #将当前目录下的data目录压缩到data.tar压缩包中

tar -xvf 压缩文件名   #解压.tar压缩包
tar -xvf data.tar    #将data.tar解压到当前目录
tar -xvf data.tar -C unzip/  #将data.tar解压到unzip目录下

tar -zcvf 压缩文件名 要压缩的文件 #将文件压缩为.tar.gz压缩包
tar -zcvf data.tar.gz data/ #将当前目录下的data目录压缩到data.tar.gz中

tar -zxvf 压缩文件名  #将.tar.gz文件解压到当前目录
tar -zxvf data.tar.gz  #解压到当前目录
tar -zxvf data.tar.gz -C unzip/  #解压到unzip目录

用户和权限

groupadd命令:添加用户组

groupadd 用户组名

groupadd arq   #创建一个叫aiq的用户组

groupdel命令:删除用户组

groupdel 用户组名称
 
groupdel aiq  #删除用户组(注意:删除用户组时,必须保证用户组下没有任何用户)

useradd命令:添加用户

useradd 用户名 [参数]

useradd test  #添加一个test用户

useradd 用户名 -g 用户组名 -G用户组名
  -g :后面跟用户组,是该用户的主用户组
  -G :后面跟用户组,是该用户的其他用户组
groupadd ai
useradd  aiqs -g aiq -G ai  #创建一个用户aiqs,它的主用户组是aiq,还属于ai用户组

id命令:查看用户id

id 用户名
id aiqs  #查看aiqs的用户id

passwd命令:修改用户密码

passwd 用户名
passwd aiqs  #修改aiqs用户的密码

su命令:切换用户命令

su [参数] 用户名

su aiqs   #切换到aiqs用户(但是不会加载aiqs用户的环境变量)
su - aiqs   #切换到aiqs用户,并加载用户的环境变量
su - root   #切换到root用户

exit:退出命令

Linux上的文件权限

分为三组 : 用户权限(u),用户组权限(g),其他用户权限(o)
r : 表示只读权限,数字表示4
w : 表示写权限,数字表示2
x : 表示执行权限,数字表示1
- : 表示没有相应的权限
每一组的权限顺序: 读 , 写 , 执行

文件的显示类型:
d文件夹          用户权限u          用户组权限g         其他用户权限o
-                   rw-              r--                r--       
                    6                 4                  4
              *详图看下
权限根据rwx所代表的数字可以使用三个数字来表示三组权限,每一组权限用一个数字表示

chmod命令赋值权限命令

chmod [参数] 权限(可以使用数字,可以使用用户组和rwx的组合) 文件或目录

chmod u+x 1.txt   #给1.txt的用户增加执行权限
chnod g+x 1.txt   #给1.txt的用户组添加执行权限
chmod o+x 1.txt   #给1.txt的其他用户组添加执行权限
chmod g-x 1.txt   #给1.txt的用户组撤销执行权限
数字法:
chmod 766 2.txt   #修改2.txt权限,u=rwx,g=rw-,o=rw-
chmod 777 3.txt   #修改3.txt权限,让所有人都可以读写执行

-R : 表示递归目录以及目录下的所有文件或文件夹都赋值相同的权限
chmod -R 777 data  #将data目录及它下面的所有文件都赋值权限为777

chown命令:修改目录或文件的拥有者

chown -R 用户名[:用户组] 目录或文件

chown aiqs 1.txt   #将1.txt用户拥有者改为aiqs用户
chown aiqs:aiq 2.txt   #将2.txt的拥有者改为aiqs和所在用户组改为aiq
chown -R aiqs:aiq data   #将目录data以及它下面的所有文件的拥有改为aiqs,所属用户组改为aiq

who命令:查看当前系统的用户进程

whoami命令:查看当前用户的用户名

find命令:查找命令

find [目录] 查找内容

find *.txt   #查看当前目录下的所有txt文件
find 1.*     #查看当前目录下的以1.开头的文件

whereis查找命令

whereis 要查找的内容 : 一般用来查找是否安装了某个软件

|和grep

| : 通道符号,作用是将前一个命令的执行结果,传给后面的命令

grep [参数] 要查找的内容
cat 5.txt | grep 12  #查找出5.txt中所有带12的行

-v : 参数表示取反,查找的内容不包含某个内容的行
cat 5.txt | grep -v 12  #查找出5.txt中不包含12的行

ping命令

ping ip地址|域名|主机名  #查看网络是否连通

ifconfig命令

ifconfig命令:用来获取网络接口配置信息

ifconfig的安装:yum -y install net-tools

netstat命令:查看网络状态

netstat命令 : 查看网络状态,相当于Windows下的telnet命令

netstat -tnulp | grep 1521  #查看系统中Oracle的监听器是否启动

ps命令:查看系统进程

ps命令 : 查看系统进程命令

ps -ef | grep oracle   #查看系统中的Oracle进程
ps -ef | grep java     #查看系统中java程序进程

ps -aux | grep python  #查看系统中python的进行

kill命令:结束进程

kill 进程id  #结束某个进程
ps -ef | grep ssh
kill 6611  #结束进程是6611的进程

kill -9 进程id  #强制结束某个进程
kill -9 6724    #强制结束id是6724的进程

killall  进程名称  #按名称结束进程
killall java  #结束掉系统中的所有java进程

df命令:查看内存

df命令 : 查看系统硬盘使用的情况
df -h : 查看系统内存使用情况,并以合适的单位显示

防火墙命令

centos7:
    systemctl stop firewalld     #关闭防火墙
    systemctl start firewalld    #打开防火墙
    systemctl disable firewalld  #永久关闭防火墙 
    systemctl status firewalld   #查看防火墙状态
centos6:
    service iptables start       #打开防火请
    service iptables stop        #关闭防火墙
    chkcnofig iptables off|on    #永久关闭防火墙

修改主机名称

centos7:
    hostnamectl set-hostname 计算机名称
centls6:
    vim /etc/sysconfig/network 修改文件中的hostname值

hostname命令 : 查看当前主机名

man命令

man命令 : 查看Linux命令的详细信息(使用文档,最详细的)
man ls : 查看ls命令的格式和参数

--help,--h,-h : 命令的帮助参数,和man命令的结果类似,但没有man命令查看到的详细

ssh命令:远程登录

ssh 命令 : 它是Linux上的远程登录命令
ssh 用户名@ip|主机名|域名

ssh root@127.0.0.3   #使用ssh登录120.0.0.3
ssh root@oracle      #使用ssh登录Oracle的电脑

scp命令:远程拷贝

scp -r 用户名@ip|域名|主机名:目录路径 本地路径   #将远程文件拷贝到本地
scp -r root@127.0.0.3:/root/ln1/6.txt /root/  #将远程服务器上的/root/ln1/6.txt文件拷贝到本地的/root目录

scp -r 本地路径 用户名@ip|域名|主机名:目录路径   #将本地的文件拷贝到远程服务器
scp -r 1.txt root@127.0.0.3:/root/ln1         #将本地的1.txt文件拷贝到远程服务器的/root/ln1目录下
scp -r data root@127.0.0.3:/root/ln1/         #将本地的data目录拷贝到远程服务器/root/ln1目录下

scp -r 用户名@ip|域名|主机名:目录路径 用户名@ip|域名|主机名:目录路径   #将文件从一台服务器拷贝到另一台服务器
scp -r root@127.0.0.3:/root/ln1/*.txt  root@127.0.0.3:/root/ln2/  #将远程目录/root/ln1下的所有txt文件拷贝到另一台服务器的/root/ln2目录下

多行处理命令

<<EOF
...
EOF
将<<EOF和EOF之间的多行内容传前面的命令,EOF可以是任意字符串

例子:
[root@oracle ~]# cat <<EOF
> A
> 2
> 4
> AB
> C
> E
> T
> EOF
A
2
4
AB
C
E
T

[root@oracle ~]# cat <<A
> e
> w
> 1
> f
> c
> f
> A
e
w
1
f
c
f
   #在Linux上执行一个SELRCT * FROM EMP;的sql语句
    sqlplus -S scott/scott<<EOF
    select * from emp
    exit
    EOF

sed命令

sed '5p' 7.txt   #打印7.txt的第五行后,打印7.txt的全部内容
sed -n 5p' 7.txt   #只打印7.txt的第五行内容

sed -i 's/local/home/g' 7.txt #将文件中的local替换成home

如果要替换的内容中有特殊字符例如/,需要使用转义字符"\"
sed -i 's/\/usr\/home/\/opt\/config/g' 7.txt   #将7.txt中的/usr/home替换为/opt/config

-n  #一般sed命令会把所有数据都输出到屏幕上.如果加入此参数,则只会把经过sed命令处理的行输出到屏幕
-e  #允许对输入数据应用多条sed命令编辑
-i  #用sed修改结果会直接修改读取的数据文件,而不是修改屏幕输出

sed可以修改文件,替换文件内容

a\   #追加,在当前行后追加一行或多行.添加多行时除最后一行外,,每行末尾要用"\"代表该行的数据完结
c\   #行的替换,在c后面的字符替换原有数据行,替换多行时除最后一行外,每行末尾要用"\"代表该行的数据完结
i\   #插入,当前行插入一行或多行,插入多行时,除最后一行外,每行末尾要用"\"代表该行的数据完结
d    #删除,删除指定的行
p    #打印,输出指定的行
s    #字符串的替换,用一个字符串替换另一个字符串.格式为"行范围 s/旧的字符串/新的字符串/g"

wc命令:数数

wc命令:word count 数文件或内容中的单词个数,行数等

wc -l 文件   #查看文件的行数
wc -w 文件   #查看文件的单词数,按照空格来算单词

wc -l 7.txt  #查看7.txt的行数
wc -w  7.txt #查看7.txt的单词个数

cut命令:截取命令

cut -f n -d 分隔符   #n是一个正整数,表示第n列 -d : 是定列和列之间的分隔符,默认是tab键

cut -f 2 8.txt   #截取文件8.txt的第二列
cp 8.txt 9.txt   #复制8.txt
sed -i 's/\t/,/g' 9.txt  #将9.txt文件中的水平制表符替换为","

cut -f 2 -d ',' 9.txt   #指定','为分隔符截取9.txt的第二列

wc -l 9.txt | cut -f 1 -d ' '  #取9.txt的行数

awk '条件1{动作1}条件2{动作2}...' 文件名

awk '{printf $2 "\t" $6 "\n"}' a.txt  #输出文件a.txt的第二列和第6列

awk '{print $1}' 8.txt #打印8.txt中的第一列(自动换行)
awk '{printf $1}' 8.txt #打印8.txt中的第一列,(不换行)

print和printf 是格式化输出命令
print自动换行
printf不换行

Linux的安装命令

rpm :安装.rpm的安装文件
rpm -ivh  安装包文件.rpm  #安装程序

rpm -qa | grep mariadb   #查询电脑上已安装mariadb的数据库,是mysql的开源版

rpm -e 安装文件  #卸载程序
rpm -e mariadb-libs-5.5.56-2.el7.x86_64 --nodeps  #卸载mariadb,--nodeps表示不管它是否依赖其他内容,或者有其他软件依赖


yum命令:它是ret hat和Centos上的特定安装命令
yum -y install 软件名称

yum -y remove 软件名称 卸载软件


ubunto:它安装命令apt-get -y install 软件名称```
posted @ 2020-03-21 17:56  ZHAIQ  阅读(752)  评论(0编辑  收藏  举报