Linux基本命令大全

linux的基本命令
mKdir test			# 创建一个名为test的文件夹

	mkdir -p test1/test2/test3			# 递归创建directory
    mkdir -p {aaa,bbb,ccc}				# 创建同级directory

touch test.txt		# 创建名为test.txt的文件
rmdir test1 		# 直接删除目录(只能directory,不能删除file)

rm -r				# 删除目录(directory or file)并询问是否删除

rm -f				# 强制无条件删除文件(file) 不询问

rm -rf				# 强制删除(directory or file),并且不询问

rm -rf /*			# 删除根目录下的所有
ls			# 查看该目录下的文件

ls -l		# 查看该目录下的文件及文件详情(主 组 大小 等等)

cat test.txt			# 查看文件的内容(一次性查看全部)
				# cat 详细用法看后面

tail -f test.txt		# 实时监控文件内容

more test.txt			# 分页查看文件内容

echo $PATH				# 查看环境变量
echo '要改写的内容' >> test.txt
  • 目录相关操作
cd .				# 当前目录

cd ..				# 上一级目录

cd - 				# 上一个工作目录

cd ~ 				# 当前用户所在的家目录

pwd					# 当前目录的绝对路径
  • 执行
# 执行文件
./
  • 网卡配置相关
# 查看网卡信息的两种方式
# 方式一:
if add show
# 方式二:
ifconfig


# 启动网卡
ifup 网卡名(在查看网卡信息的时候可以看到网卡名)

# 禁止网卡
ifdown	网卡名


# 但是这里有一个问题,每一次系统启动之后都需要去启用网卡,不然就没办法连接网络并获取IP地址
  • 编辑网卡配置
# 1 打开网卡配置文件

vim /etc/sysconfig/network-scripts/ifcfg-ens33

# 2 按i进入编辑模式

# 3 将最后一行ONBOOT=no改为ONBOOT=yes, 按ESC退出编辑模式,再输入:wq保存退出

# 4 init 6重启服务器即可
  • 开机和重启命令
init 0	关机
poweroff 关机
init 6 重启
reboot 重启
  • linux的目录结构

linux的目录结构,   根目录	/
				  root 和 home是同级的
  • 创建用户
# 1 创建用户名
useradd aaa			# aaa 为用户名

# 2 为哪个用户设置密码
passwd aaa	

# 3 输入密码
  • 底线命令
# 1 按引号:

:w 		# 保存不退出
    
:wq		# 保存并退出
    
:wq!	# 无理由保存退出
        
:q		# 退出
            
:q!  	# 无理由强制退出
  • vim
# vi/vim 操作流程:

	# 1. vi打开文件	此时进入命令模式,输入i,进入编辑模式
    # 2. 在编辑模式下,开始输入字符串
    # 3. 编辑完之后,esc退出编辑模式,回到命令模式,按:进入底线命令模式
    # 4. 输入底线命令
  • cat
### cat 只能查看纯文本类型(只能看file,不能看directory)

# 显示行号
cat -n test.txt	

# 在每行结尾加上$符号
cat -e test.txt	

# 将“你好”添加到test.txt文件中
cat >>test.txt<<EOF		
你好
EOF			
  • more
# 用于查看内容较多的文本,会以百分比的形式显示看到多少

more /etc/passwd
"""
    按下空格space是翻页
    按下b键是上一页
    回车键向下读取内容
"""
  • echo
# 追加
echo '要追加的内容'>>目标文件

# 覆盖
echo '要覆盖的内容'>目标文件
  • linux快捷键
# 自动补全命令/文件名/目录名
	tab	
    
# 清理终端显示
	ctrl + l
    clear
   
# 终止当前操作
	ctrl+c
    
# 复制
"""
 # 移动test.py 到/tmp目录下
 cp test.py /temp/
 
 # 移动test.py 到/tmp目录下并重命名为aaa
 cp test.py /temp/aaa.py

cp -r 递归,复制目录以及目录的子孙后代(copy目录 ) 
cp -p 复制文件,同时保持文件属性不变
cp -a 相当于-pdr ,类似于wimdows系统的复制快捷方式

"""
  • alias
alias 新的命令='原命令 -选项/参数'

eg:
    alias aaa='cp -r'
    alias bbb='echo'"大哥,你想干啥"
  • 查找命令
find 	(目录)	(类型)	(文件名)

# 找出/temp所有以.txt结尾的文件
find /temp/ -type f -name '*.txt'

# 找出/etc下所有名字以host开头的文件
find /temp/ -name 'host*'

# 找出/opt上一个名字为setting.py的文件
find /opt/ -name 'setting.py'

"""
    b - 块设备文件。
    d - 目录。
    c - 字符设备文件。
    p - 管道文件。
    l - 符号链接文件。
    f - 普通文件。
    s - socket文件
"""
  • 管道符命令
将第一个命令的输出 作为下一个命令的输入

ps -ef|grep 'python'

所有进程中  含有'python'字样的进程

"""
grep(global search regular expression(RE) and print out the line)
全面搜素正则表达式并把行打印出来,使用正则表达式搜索文本,并把行打印出来。
"""
  • grep
grep '找的东西'	目录

"""
    -i : 忽略大小写
    -n : 输出行号
    -v : 反向选择
    --color = auto : 给关键词部分添加颜色
"""

# 找出/etc/passwd下root用户所在的行,以及行号,显示颜色
cat /etc/passwd |grep '^root' --clolr=auto -n

# 找出/etc/passwd所有不允许登录的用户
grep /sbin/nologin /etc/passwd			# /sbin/nologin为查找的目标

# 找出/etc/passwd所有与mysql有关行,行号
cat /etc/passwd |grep 'mysql' -n
  • head tail
head		# 显示文件前几行,默认是10行
	head -2 /tmp/test.py
    
tail		# 显示文件后几行,默认是10行
	tail -2 /tmp/test.py

# 显示文件10-30行 (利用管道)
head -30 /tmp/test.py|tail -21

# 持续刷新显示
tail -f xx.log
  • which
which  
"""
用于查找并显示给定命令的绝对路径,环境变量PATH中保存了查找命令时需要遍历目录,会再环境变量$PATH设置的目录里查找符合条件的文件
"""
which pwd
which python
	/usr/bin/python  
  • mv
# 移动文件或者重命名files

# 移动
mv test/test1 /new_test/

# 重命名
mv test1.py new_test.py
  • scp
# secure copy:远程copy命令,用于linux之间的文件或目录的远程传输
    
    """
scp 【可选参数】 本地源文件 远程文件标记
scp 本地文件  远程用户名@远程ip:远程文件夹/
scp 本地文件  远程用户名@远程ip:远程文件夹/远程文件名
scp -r  本地文件夹  远程用户名@远程ip:远程文件夹/
    
    """
    
# 传输文件到远程并且重命名
scp /tmp/test.py root@192.168.1.68:/home/
    
# 传输文件到远程并且重命名
scp /tmp/test.py root@192.168.1.68:/home/new_test.py
    
# 传输directory到远程并且重命名
scp -r /tmp/test.py root@192.168.1.68:/home/new_test.py
    
    
# 复制远程文件到本地
scp root@192.168.1.68:/home/test.py /tmp/test/new_test.py
    
    
    # 参数
    """
        -r :递归复制整个目录
        -v:详细方式输出
        -q:不显示传输进度条
        -C:允许压缩
    """
  • du
# 用法
du 参数 文件或目录

# 参数
"""
-s 显示总计
-h 以k,M,G为单位显示,可读性强
"""

# 实例
du -sh /home

df		# 查看磁盘大小
  • top
# 很重要,用于动态监视进程活动信息与系统负载等信息

# 第一行(uptime)
"""
系统时间	主机运行时间		用户连接数	系统1,5,15分钟平均负载
"""
  • 加锁
chattr +a test

chattr -a test

# 参数
"""
aAcCdDeijsStTu
"""
  • linux时间
# 将linux客户端时间和阿里云服务器时间同步(修改客户端时间)
ntpupdate -u ntp.aliyun.com

# 将linux硬件时间和客户端时间同步
"""
	1 . 以系统时间为基准,修改硬件时间
		hwclock -w
		
	2 . 以硬件时间为基准,修改系统时间
		hwclock -s
"""
  • yum
能够从指定的服务器自动吓到RPM包并且安装,可以自动处理依赖关系,并且一次性安装所有的依赖


# 使用
"""
 1.先备份yum源
 mkdir repo_bak
 mv *.repo repo_bak			#  *.repo:所有以repo结尾的隐藏文件
 
 2.下载阿里repo文件
 wget http://mirrors.aliyun.com/repo/Centos-7.repo
 
 3.清空yum缓存并且生成新的yum缓存
 yum clean all
 yum makecache
 
 4.安装软件扩展源
 yum install -y epel-release
"""
  • 软件包
# 各个系统下面软件包的格式

# 1. windows
.exe / .msi

# 2.mac
.dmg

# 3.linux
.rpm
  • 小知识
yum install lrzsz			# 下载lrzsz工具包

rz			# 上传文件
sz			# 下载文件
  • wget
# wget命令用于再终端下载网络文件

# 使用方法
# 参数是 wget [参数]	下载地址

# 实例
wget -r -p http://www.58.com	# 递归下载

用户管理和文件权限
  • 用户管理
# user 拥有root的权限

"""
1. 在sudoers中配置授权用户,用visudo进入此文件的vim模式
2.用/root找到授权配置
3.将授权用户添加进去
4.授权用户在使用root权限时,应该先在前面使用sudo ,如sudo useradd -bbb

"""

# 添加用户
useradd username

# 切换用户
su username

# 退出登录
logout
  • 文件权限
chmod u+r test.py	# 给主添加读的权限

chmod g+w test.py	# 给组添加写的权限

chmod o+x test.py	# 给other添加执行的权限

chmod 777 test.py	# 给主,组,other添加读写执行的权限
  • 软链接
# 用法
ln -s 源目录地址	/user/bin/rename

# 举例
ln -s /opt/python3.6 /user/bin/pyhton
  • 配置环境变量
# 先cd到用户的家目录下面

# vim ~/.bash_profile 进入配置文件的vim模式

# 配置需要添加的环境变量
  • tar
# 参数
"""
-v:详情
-c:压缩
-x:解压
-z:使用gzip工具进行压缩
"""

# 实例

# 压缩文件
tar -cf filename

# 解压文件
tar -xvf filename

# 进一步压缩,通过gzip
tar -zxvf filename			# 获取到.tar.gz后最的文件

# 解压.tar.gz后最的文件
方式1:gzip -d filename     # 去掉.gz后缀,得到.tar后缀的文件按
	  tar -xvf filename		
    
方式二:tar -zxvf filename.tar.gz
  • history
history			# 显示历史命令

!+历史命令的序号可以调用此命令
  • netstat
# 查看服务器端口信息

  • ps
ps -ef 查看服务器上进程信息,可以配合管道符或者grep进行过滤信息

# 参数
"""
-a   显示所有进程
-u	 用户及其他详细信息
-x 	 显示没用控制终端的进程
"""
  • kill
# 结束进程命令

kill -9	进程id
pkill 进程名		# 支持正则匹配
killall 进程名
  • SELinux
# 查看selinux状态
getenforce

# 临时关闭
setenforce 1/0

# 永久关闭,(修改配置文件)
vim /etc/selinux/config
SELINUX=disable
  • iptables
# 防火墙

iptables -L   # 查看防火墙规则
iptables -F   # 清空防火墙规则

# centos7默认使用firewall作为防火墙了

# 关闭防火墙
systemctl status firewalld			# 查看防火墙状态

systemctl stop firewalld				# 关闭防火墙

systemctl disable firewalld			# 关闭防火墙,开机启动

  • 中文乱码
# 1 .修改配置文件
vim /etc/locale.conf

# 2 .将LANG="en_US.UTF-8"改为LANG="zh_CN.UTF-8"

# 3 .重新加载配置文件
source /etc/locale.conf
  • dns
# 域名解析系统

# 工作原理:
"""
1  我们要想访问www.baidu.com, 首先会去本地DNS缓存中查找

2  如果本地DNS缓存中没有,那就要去本地文件hosts文件中查找

3  如果本地hosts文件中也没有,那就会去公网的DNS服务器中找

4  如果公网DNS服务器中也没有,就说明此域名没有注册,没有办法访问

"""
  • crontab
# 计划任务

# 格式

*  *  *  *  *
分 时 日 月 周


# 实例
#每晚的21:30重启nginx
30 21 * * * systemctl restart nginx

#每月的1,10,22日的4:45重启nginx
45 4 1,10,22 * * systemctl restart nginx
原文地址:https://www.cnblogs.com/oden/p/10639269.html