linux指令
【一】修改文件
如果是使用普通用户登录的,需要先切换到管理员用户,打开终端,输入:su,接着按提示输入密码即可;然后使用命令进入需要修改文件的所在目录,常用的几个命令如下:
① cd + 目录名
② cd + 空格(退回上级目录)
③ cd + 空格 + /(退回最高级目录)
接着使用命令:vi + 文件名命令,打开文件,然后输入命令:/ + 要修改的关键词,查找到要修改的内容,然后使用命令进入【文本输入模式】,常用的命令如下:
① a 在光标之后开始输入文本
② A 在行尾开始输入文本
③ i 在光标之前开始输入文本
④ I 在行首第一个非空白字符前输入文本
⑤ o 在光标所在行后插入一空行
⑥ O 在光标所在行前插入一空行
【二】保存退出
修改好文件后,如果在【文本输入模式】下,首先按“ESC” 键进入【命令模式】,然后输入“:”,进入【末行模式】,在末行模式下,可使用如下退出命令:
① q 是直接退出;
② wq 保存后退出;
③ q! 强制退出;
④ wq! 强制保存退出;
增加
touch 创建文本
mkdir 创建文件夹
vi 编辑文本,相当于记事本,不好用
vim 支持编程的文本编辑器,相当于notepad++
删
rm 删除文件,文件夹
改
mv 改名-移动文件,文件夹
cd 更换目录
查询
ls 查看文件夹内容
cat 读取文本文件内容
pwd 打印当前工作目录
ip显示相关
ip addr show
ip a
ipconfig
linux文件目录结构
/var 存放经常变化的文件
/home 普通用户家目录
/etc 存放配置文件的目录
/etc/my.cnf mysql的配置文件,可以修改mysql的中文编码支持
/bin binary二进制 存放可执行文件,存放了一堆命令
/root 超级用户的家目录
/opt 存放第三方软件的目录
/opt/mysql
/opt/nginx
/opt/python3.6
settings.py django的功能性配置文件
linux命令和参数
. 当前工作目录
..代表上一级工作目录
-代表上一次工作目录
~当前用户家目录
linux以点.开头的文件或者文件夹,都是隐藏的
mkdir -p 递归创建文件夹
mkdir ./s15/students/{eric,mandy,tony} 一次性创建多个文件夹
rmdir 删除空的文件夹
rm -r 递归删除文件夹(慎重使用)
rm -rf 强制递归删除文件夹和文件且没有提示
-r 递归删除
-f 强制删除
root超级用户下创建普通用户:
useradd eric
passed eric
按提示依次输入两次密码即创建成功
echo $PATH 查看linux下的PATH环境变量
如果在linux中装python3.6应该装在/opt下面
完整调用路径:/opt/python3.6/bin/python3.6
如果想在linux命令行直接输入python3.6就能运行,就应该将路径添加到linux的环境变量PATH中
同理,nginx也是这样/opt/nginx/bin/nginx
绝对路径和相对路径
以根查询开始的就是绝对路径 /home/1.txt
以点开始的就是相对路径 ./1.txt
echo “美丽人生” > 111.txt 单右尖号 覆盖模式写入111.txt
echo “世界” >> 111.txt 双右尖号 追加模式写入111.txt
cat /home/eric/111.txt -n 查看111.txt的文本内容,并显示行号
vim 支持编程的编辑器 notepad++
vim filename.txt 进入命令模式后,可以输入各种命令
:set nu 显示行号
在光标所在行 yy 复制所在行 dd 删除所在行
光标所在行 输入 3 yy 包括所在行往后共复制三行 同理 3 dd 即删除
more命令用于查看内容比较多的文本
linux的man手册 查看命令的手册
拷贝相关:
#移动xxx.py到/tmp目录下 cp xxx.py /tmp/
#移动xxx.py顺便改名为chaoge.py cp xxx.py /tmp/chaoge.py
cp -r myproject myproject2 递归拷贝,拷贝所有目录及目录内所有文件
移动命令:
mv 111.txt ./tmp/ 将111.txt移动到当前目录下的tmp文件夹
mv 111.txt ./tmp/222.txt 移动并重命名
查找命令
#Linux里如何找到需要的文件 例如 oldboy.py
find 在哪里(目录) 什么类型(文件类型) 叫什么名字(文件名)
参数
-name 按照文件名查找文件
-type 查找某一类型的文件,诸如:
b – 块设备文件。
d – 目录。
c – 字符设备文件。
p – 管道文件。
l – 符号链接文件。
f – 普通文件。
s – socket文件
find /tmp/ -type f -name oldboy.py
#找出/tmp所有以 .txt 结尾的文件
find /tmp/ -type f -name *.txt
#找到/etc下所有名字以host开头的文件
find /etc -name host*
#找到/opt上一个名为settings.py
find /opt -name ‘settings.py’
grep查找
强大的文本搜索工具,支持正则表达式,并把匹配的行打印出来
语法:
grep [参数] [–color=auto] [字符串] filename
参数详解:
-i : 忽略大小写
-n : 输出行号
-v : 反向选择
–color = auto : 给关键词部分添加颜色
grep “我要找什么” /tmp/oldboy.txt
#排除 -v,排除我要找的东西
grep -v “我要找什么 /tmp/oldboy.txt
head,tail命令
head显示文件前几行,默认前10行
tail显示文件后几行,默认后10行
#查看前两行
head -2 /tmp/oldboy.txt
#查看后两行
tail -2 /tmp/oldboy.txt
#持续刷新显示,可以监控文件
tail -f xx.log
#显示文件10-30行
head -30 /tmp/oldboy.txt |tail -21
alias别名命令
alias rm=”rm -i”
一般会用做危险提示
取消别名
unalias rm
which命令
which命令用于查找并显示给定命令的绝对路径,环境变量PATH中保存了查找命令时需要遍历的目录。
which指令会在环境变量$PATH设置的目录里查找符合条件的文件。
也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。
which pwd
which python
scp命令
用于Linux之间复制文件和目录,基于ssh进行安全的远程文件拷贝命令
scp [可选参数] 本地源文件 远程文件标记
参数
-r:递归复制整个目录
-v:详细方式输出
-q:不显示传输进度条
-c:允许压缩
实例:
#传输本地文件到远程地址 scp 本地文件 远程用户名@远程ip:远程文件夹/ scp 本地文件 远程用户名@远程ip:远程文件夹/远程文件名 scp /tmp/chaoge.py root@192.168.1.155:/home/ scp /tmp/chaoge.py root@192.168.1.155:/home/chaoge_python.py scp -r 本地文件夹 远程用户名@远程ip:远程文件夹/ scp -r /tmp/oldboy root@192.168.1.155:/home/oldboy #复制远程文件到本地 scp root@192.168.1.155:/home/oldboy.txt /tmp/oldboy.txt scp -r root@192.168.1.155:/home/oldboy /home/
getenforce命令
– 显示SELinux的状态,SELinux是FBI内置的一个Linux保护程序,多数情况下对我们没用
du命令
显示目录或文件的大小
用法:
du 【参数】【文件或目录】
-s 显示总计
-h 以k,M,G为单位显示,可读性强
实例:
#显示/home的总大小 du -sh /home
top命令
命令用于动态地监视进程活动与系统负载等信息
chattr命令
给文件加锁,减锁,只能写入数据,不能删除
chattr +a test.py
chattr -a test.py
时间同步命令
date
linux的date命令可以显示当前时间或者设置系统时间
格式化输出
-d --date=string 显示指定的时间,而不是当前时间
以年-月-日显示当前时间
date +"%Y-%m-%d"
以年-月-日 时分秒 显示当前时间
date +"%Y-%m-%d %T"
在Linux下系统时间和硬件时间不会自动同步,在Linux运行过程中,系统时间和硬件时间以异步的方式运行,互不干扰。
硬件时间的运行,是靠Bios电池来运行,而系统时间是用CPU tick来维持的。
在系统开机时候,会从Bios中获取硬件时间,设置为系统时间
硬件始终的查看
[root@oldboy_python ~ 10:19:04]#hwclock 2018年08月27日 星期一 10时23分03秒 -0.528004 秒
同步系统时间和硬件时间,可以用hwclock命令
//以系统时间为基准,修改硬件时间 [root@oldboy_python ~ 10:29:07]#hwclock -w //以硬件时间为基准,修改系统时间 [root@oldboy_python ~ 10:29:21]#hwclock -s
ntpdate
远程同步时间 ntpdate -u ntp.aliyun.com
wget命令
在终端下载网络文件
wget [参数] 下载地址
wget -r -p http://www.luffycity.com#递归下载路飞所有资源,保存到www.luffycity.com文件中
linux网络配置命令:
ifconfig 查询,设置网卡和IP参数等
ifup,ifdown 脚本命令,更简单的方式启动关闭网络
#编辑网卡配置文件 vim /etc/sysconfig/network-scripts/ifcfg-eth0 #修改配置参数 ONBOOT=yes
网卡配置文件详解
网络配置文件: /etc/sysconfig/network 网络接口配置文件: /etc/sysconfig/network-scripts/ifcfg-INTERFACE_NAME DEVICE=: 关联的设备名称,要与文件名的后半部“INTERFACE_NAME”保持一致; BOOTPROTO={static|none|dhcp|bootp}: 引导协议;要使用静态地址,使用static或none;dhcp表示使用DHCP服务器获取地址; IPADDR=: IP地址 NETMASK=:子网掩码 GATEWAY=:设定默认网关; ONBOOT=:开机时是否自动激活此网络接口; HWADDR=: 硬件地址,要与硬件中的地址保持一致;可省; USERCTL={yes|no}: 是否允许普通用户控制此接口; PEERDNS={yes|no}: 是否在BOOTPROTO为dhcp时接受由DHCP服务器指定的DNS地址;
切换用户
su – eric
su命令中间的-号很重要,意味着完全切换到新的用户,即环境变量信息也变更为新用户的信息
root用户切换普通用户不需要密码,普通用户切换root用户需要密码
systemctl 系统服务管理命令
systemctl restart/start/stop
id命令
id eric 显示用户权限详细信息
/etc/passwd 存放用户信息
/etc/group 存放用户组信息
Linux命令提示符
命令提示符的变量:PS1变量
echo “$PS1”
修改命令提示符
PS1 = “[\u@\h \W]\$”
groupadd
添加组
userdel
删除用户
-f 强制删除用户 -r 同时删除用户以及家目录 userdel -r pyyu
sudo命令
sudo命令用来以其他身份来执行命令,预设的身份为root
需要在root权限下编辑/etc/sudoers文件,将其他身份加入进去
vi /etc/sudoers 编辑sudoers文件 写入 ## Allow root to run any commands anywhere root ALL=(ALL) ALL chaoge ALL=(ALL) ALL #允许chaoge在任何地方,执行任何命令
软连接
类似于快捷方式,常用于安装软件的快捷方式配置,如python,nginx等
ln -s 目标文件绝对地址 软连接名 1.存在文件/tmp/test.txt [root@master tmp]# ls -l -rw-r--r-- 1 root root 10 10月 15 21:23 test.txt 2.在/home目录中建立软连接,指向/tmp/test.txt文件 ln -s /tmp/test.txt my_test 3.查看软连接信息 ls 或 ll等 lrwxrwxrwx 1 root root 13 10月 15 21:35 my_test -> /tmp/test.txt
4.通过软连接查看文件
cat my_test
my_test只是/tmp/test.txt的一个别名,因此删除my_test不会影响/tmp/test.txt,但是删除了本尊,
快捷方式就无意义不存在了
tar压缩解压命令:
tar 命令:用来压缩和解压文件。tar本身不具有压缩功能。他是调用压缩功能实现的
-c 压缩参数
-x 解压参数
-v 显示过程
-f 指定文件,最后一个位置的参数
tar -cf 压缩文件名 被压缩文件
tar -xf 需要解压的包
ps命令
ps 命令用于查看系统中的进程状态,格式为“ps [参数]”
ps 命令常用参数 -a 显示所有进程 -u 用户以及其他详细信息 -x 显示没有控制终端的进程
kill 杀死进程命令
kill 命令pid
kill -9 mysqld
-9 强制终止进程,以及进程相关依赖
killall
killall nginx
df命令
df命令用于显示磁盘分区上的可使用的磁盘空间。默认显示单位为KB。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。
语法 df(选项)(参数) -h或--human-readable:以可读性较高的方式来显示信息; -k或--kilobytes:指定区块大小为1024字节; -T或--print-type:显示文件系统的类型; --help:显示帮助; --version:显示版本信息。
DNS服务
查看Linux的dns,唯一配置文件
配置文件 cat /etc/resolv.conf
#dns服务器地址 nameserver 119.29.29.29 nameserver 223.5.5.5
本地强制dns解析文件/etc/hosts
指定本地解析: /etc/hosts 主机IP 主机名 主机别名 127.0.0.1 www.pyyuc.cn
nslookup命令
nslookup命令是常用域名查询工具,就是查DNS信息用的命令。
nslookup4有两种工作模式,即“交互模式”和“非交互模式”。在“交互模式”下,用户可以向域名服务器查询各类主机、域名的信息,或者输出域名中的主机列表。而在“非交互模式”下,用户可以针对一个主机或域名仅仅获取特定的名称或所需信息。
进入交互模式,直接输入nslookup命令,不加任何参数,则直接进入交互模式,此时nslookup会连接到默认的域名服务器(即/etc/resolv.conf
的第一个dns地址)。或者输入nslookup -nameserver/ip
。进入非交互模式,就直接输入nslookup 域名
就可以了。
#解析
nslookup www.oldboyedu.com