01-基础命令
1. 创建一个目录
mkdir /data
创建多级目录
mkdir -p /oldboy/data
2. 查看目录里面的内容
ls /data
3. 查看目录里面的详细信息
ls -l /data
4. 进入到某个目录
cd /data
5. 显示当前位置
pwd
6. 创建文件、更新文件的时间戳
touch /data/hyp.txt
7. 编辑文件
vi /data/hyp.txt
按 i 进行插入模式,按esc键,输入 :wq 保存退出,:q 退出,:q! 强制退出,:wq! 强制保存退出
8. 查看文件hyp.txt内容
cat hyp.txt
9. echo+内容 会把内容显示到屏幕上
echo hello world
echo hello world >>/data/hyp.txt 追加到文件里
>> 追加重定向
cat >>/data/hyp.txt <<EOF 追加多行(EOF表示结束标记)
10. 重定向符号
> 标准输出重定向 (先清空文件里的内容,再写入内容)
>> 追加重定向
11. 复制
cp /data/hyp.txt /tmp
12. 备份hyp.txt文件
cp /data/hyp.txt /data/hyp.txt.bak
13. 复制目录及目录下的内容
cp -r /data/ /tmp/
cp -a /data/ /tmp/
-r 递归复制,复制目录及目录里面的内容
-a 复制所有,相当于-pdr,
-p 复制,保持属性不变
14. 移动
mv /data/ /root/
15. 删除文件
rm hyp.txt
rm -f hyp.txt
删除目录
rm -rf data/
16. 查找
find /root/ -type f -name "hyp.txt"
参数:
-type 找什么类型的
f 文件
d 目录
17. 管道 |
作用:把前面命令的结果,传递给后面的命令
find /root/ -type f -name "hyp.txt" | xargs ls -l
找出所有的.txt的文件
find /root/ -type f -name "*.txt"
18. 过滤出oldboy内容
grep "oldboy" text.txt
排除hello
grep -v "oldboy" text.txt
19. 提取文件内容head
head text.txt (默认取出前10行)
提取文件的前2行
head -2 text.txt
20. 从文件末尾提取
tail text.txt (取出最后10行)
21. awk '/oldboy/' text.txt
awk '!/oldboy/' text.txt 同grep含义一样,awk中!表示取反
22. sed
sed '/oldboy/d' text.txt 删除oldboy
23. 在覆盖文件时,不提示是否覆盖的方法
① 撬棍 :
\cp /tmp/text.txt /mnt/
② 使用命令的绝对路径
which cp # 查找命令cp的位置
/bin/cp /tmp/text.txt /mnt/
24. 如何设置系统中的别名
# 查看系统中的别名
alias
# 设置别名,模仿:在用rm命令的时候提示do not use rm
alias rm='echo do not use rm'
# 永久生效:写入到文件/etc/profile
vim /etc/profile
在最后一行 写入 alias rm='echo do not use rm'
source /etc/profile # 生效
# 填坑
vim /root/.bashrc
将 alias rm='rm -i' 注释
25. 只查看ett.txt文件(共100行)的第20到第30行命令
seq 100 >/oldboy/ett.txt
方法1:sed默认会显示所有内容,-n 取消默认输出
# 显示第20行
sed -n '20p' /oldboy/ett.txt
# 显示20-30
sed -n '20,30p' /oldboy/ett.txt
方法2:
head -30 /oldboy/ett.txt | tail -11
方法3:
awk 'NR==20, NR==30' /oldboy/ett.txt # NR表示行号
方法4:-A10 表示显示出grep过滤的内容以及接下来的10行
grep -A10 "20" /oldboy/ett.txt
26. sed修改文件内容 sed -i 's#oldboy#oldgirl#g' /oldboy/t.sh find /oldboy/ -type f -name "*.sh" |xargs sed -i 's#oldboy#oldgirl#g'27. linux命令大全 网址:http://man.linuxde.net28. 查看Linux系统版本 cat /etc/redhat-release 查看内核版本 uname -r uname -m



02-变量与PS1
PS1 系统的环境变量,控制命令行的样式 echo $PS1 查看变量的内容 # 设置PS1的值 PS1='[\u@\h \W \t]\$'
03-添加用户
# 添加普通用户 useradd hyp # 检查用户是否存在 id hyp # 设置密码 passwd hyp # 切换用户 su - hyp # 查看当前用户 whoami # 退出当前用户,注销 快捷键 Ctrl+d
04-关闭SELinux
# 临时关闭,重启服务器会失效
# 查询selinux的状态
getenforce
结果为:Enforcing 表示selinux正在运行
Permissive 表示selinux临时关闭
Disabled 表示selinux彻底关闭
# 设置selinux的状态
setenforce 0
1表示打开,0表示关闭
# 永久关闭,重启服务器会生效
vim /etc/selinux/config
把 SELINUX=enforcing 改成 SELINUX=disabled
05-防火墙IPtables
# 服务器对外使用,有外网,需要开启防火墙 # 并发高,开启防火墙 # 内网,关闭防火墙 -------------------------------------------- # 临时关闭,重启服务器会失效 # 查看防火墙是否在运行 /etc/init.d/iptables status # 临时关闭防火墙 /etc/init.d/iptables stop (建议关闭两次) --------------------------------------------- # 永久关闭, # 查询iptables是否是开机自动运行 chkconfig |grep iptables # 关闭iptables的开机自启动 chkconfig iptables off
06-显示中文乱码排查过程
# 查看系统的字符集 echo $LANG 结果为:en_US.UTF-8 # 修改字符集 # 临时修改,改为 中文环境 export LANG=zh_CN.UTF-8 # 永久修改 (不要修改) # 查看 cat /etc/sysconfig/i18n # 生效 source /etc/sysconfig/i18n
# 乱码产生的原因? 1. Linux使用的字符集 与 远程连接工具使用的字符集 的不同,就会导致乱码 # 解决: 方法1:修改 远程工具的字符集 方法2:修改 Linux的字符集
07-Linux目录结构
目录结构的特点:
1. 一切从根开始
2. Linux中每个设备可以挂在任何目录上面
3. Linux下面的磁盘/设备没有挂载,则无法使用
# 把光盘挂载到目录
mount /dev/cdrom /mnt/
-----------------------------------------
目录简介:
# 安装tree
yum install tree

08-核心目录文件 - /etc
# 网卡的配置文件 cat /etc/sysconfig/network-scripts/ifcfg-eth0




yum install tree 报错的解决方法: # 修改网卡配置文件: vim /etc/sysconfig/network-scripts/ifcfg-eth0 # 添加 DNS1=223.5.5.5 DNS2=223.6.6.6 # 网卡配置生效=重启网卡 ifdown eth0 && ifup eth0 或者 重启所有网卡 /etc/init.d/network restart
8.2 /etc/resolv.conf


8.3 /etc/hosts 在测试的时候使用

vim /etc/hosts 插入: 10.0.0.200 www.taobao.com www.jd.com
8.4 /etc/sysconfig/netwaork/ - 修改主机名的文件

8.5 /etc/fstab - 开机自动挂载的文件


8.6 /etc/rc.local
/etc/rc.local 作用:开机自动运行的文件

8.7 /etc/inittab


8.8 系统环境变量别名profile

09-Linux安装软件的方法user-local


10-系统日志系列

11-虚拟目录


12-Linux的启动过程

13-PATH环境变量
命令:env 常用的环境变量:LANG、PS1、PATH PATH:存放的是命令的路径 命令:etho $PATH
14-练习题
命令:
tree:以树形显示目录结构
-L:最多显示几层目录
-d:只显示目录
rpm:rpm包管理命令
-qa:查询
-ql:查询软件包里面的内容
1. 如何过滤出已知当前目录下oldboy中的所有第一级目录
命令:
方法1:tree -dL -1 /oldboy/
方法2:find -maxdepth 1 -type d ! -name "."
方法3:ls -l|grep "^d"
方法4:ls -l|awk '$2>1'
方法5:ls -F|grep "/"
2. 快速回到上一次的所在位置/目录
命令:cd - 相当于 cd $OLDPWD
3. 一个目录有很多文件(ls查看时好多屏),想最快速度查看到最近更新的文件。
命令:ls -lrt
参数:-r :逆序
-t :按照文件的修改时间进行排序
4. 已知apache服务的访问日志按天记录在服务器本地目录/app/logs下,由于磁盘空间紧张,现在要求只能保留最近7天的访问日志,请问如何解决?
(提示:可以从apache服务配置上着手,也可以从生成出来的日志着手。)
命令:
方法1:find -type -f -name "*.log" -mtime +7 |xargs ls -l # 筛选出7天之前的日志
方法2:ls -l $(find -type f -name "*.log" -name +7)
方法3:find -type f -name "*log" -mtime +7 -exec ls -l {} \;
5. 调试系统服务时,希望能实时查看系统日志/var/log/messages 的更新,如何做?
命令:tail -f /var/log/messages
参数:-f:显示文件的实时更新
tail -f === tailf
6. 打印配置文件 nginx.conf 内容的行号及内容,该如何做?
命令:
方法1:cat -n nginx.conf
方法2:vi/vim ---》 :set nu # 显示行号
方法3:grep -n "." nginx.conf
方法4:awk '{print NR, $0}' nginx.conf
方法5:sed '=' nginx.conf |xargs -n2
7.
来源:https://www.cnblogs.com/pgxpython/p/10091803.html