你一定会用的一些Linux命令

#LInux复习

##查看配置命令

cpu情况 :cat /proc/cpuinfo

cpu内核:cat /proc/cpuinfo | grep processor

内存情况:cat /proc/meminfo

磁盘情况:fdisk -l

开关机命令

  • shutdown -h now 立刻进行关机
  • shutdown -r now 立刻重新启动计算机
  • reboot 现在重新启动计算机
  • su - 切换用户;password: 修改用户密码
  • logout 用户注销

操作文件命令

**命令【参数】【作用对象】**tldr工具,查看命令帮助
tldr 一个命令帮助插件

yum install -y nodejs
npm --version
npm install -g tldr
  • pwd - 查看当前路径(print working directory)
  • cd - Change dicrectory
  • ls -List directory contents

​ - l --long / -a --all / -R --Recursive

  • touch - 如果文件不存在创建新文件/如果存在更新文件最新访问时间

  • mkdir

  • rmdir - 删除空文件夹

  • rm - remove

  • cp -copy / scp(跨主机拷贝)eg:scp fruits.txt root@主机地址:/root/hello.txt

  • mv - move

  • cat
    -n 显示行数
  • head/tail -开头/结尾

  • less/more - 分页分屏

  • nl - 显示行号 nl /etc/issue

  • wc / file / iconv - 统计 行数/单词/字符/文件名 | 操作文件 |转码

  • wget - 联网下载

  • /> 输出重定向

  • / >> 追加输出重定向

  • 2> 错误输出重定向

  • < 输入重定向

  • uniq /sort - 去重 / 排序

  • gzip / gunzip /xz -z /xz -d 压缩/解压缩 gunzip redis-6…0.1.tar.gz

  • tar -c /tar -xf - 归档 / 解归档 tar -xf redis-6.0.1.tar

  • awk – 取列的工具 awk ‘{print $1}’

  • xargs — 行变成列
    例如删除redis相关东西:yum list installed | grep redis | awk ‘{print $1}’ |xargs yum erase -y

  • grep / find - 查找文件

  • chmod 更改权限

文件打包或解压命令tar

Linux中的打包文件一般是以.tar结尾的,压缩的命令一般是以.gz结尾的。

一般情况下打包和压缩是一起进行的,打包并压缩后的后缀名是.tar.gz

命令 : tar -zcvf 打包压缩后的文件名 要打包压缩的文件

其中 -z 调用gzip压缩命令进行压缩
-c 打包文件

​ -v 显示运行过程

​ -f 指定文件名

命令 :tar[-xvf] 压缩文件

其中:x : 代表解压

*tar -xvf xxx.tar.gz -C /usr------C**代表指定解压的位置*

  1. 进程相关的命令

  • ps -ef – 查看所有运行进程

  • ps -aux —显示更完全

  • top ----类似资源管理器

  • jobs – 当前放到shell后台的进程

  • fg %[编号] ---- 把进程从后台拿到前台

  • Ctrl + c —> 终止前台进程

  • Ctrl + z -->暂停后台进程

  • nohup --免疫中断信号,让任务在后台运行

  • kill / pkill 根据编号杀进程 / 根据名字杀进程

  1. ###网络相关命令
  • ping

  • ifconfig

  • ip

  • netstat - 查看网络端口情况

​ -a 表示列举所有的连接、服务器的监听
​ -t 列出所有tcp协议的服务
​ -n 使用端口号来显示
​ -I 列出所有的监听
​ -p 列出所有的服务的进程ID

netstat -ntlp

Nginx /Apache / Tenginx / —>

web服务器
web主页默认在/usr/share/nginx/index中

systemctl start nginx 启动

systemctl stop nginx 终止

systemctl status nginx

systemctl enable nginx  开机自启

systemctl disable nginx 禁止开机自启
  • wgt - 在线下载

  • scp 跨主机拷贝

  • sftp —本地和云服务器互传,get 下载 put 上传 -r 传文件夹

  • service s_name start | stop |status|restart

  • service iptables stop - 关闭防火墙服务

  • service network restart - 重启网络服务

4.用户权限管理

  • useradd / userdel 创建用户
    (1.用户创建成功后系统会自动在/home目录下创建一个和用户名同名的文件 夹;2.会自动创建和用户名同名的分组,并且将当前用户添加到这个分组中)

  • useradd -G 分组1,分组2,… 用户名 - 创建指定用户,并且将用户添加到指定分组中

  • usermod -G 分组1,分组2 用户名 - 修改用户分组

  • passwd - 设置密码

  • chage 更改用户密码过期时间

  • su - 切换用户

  • sudo – super user do

  • visudo – 编辑超级管理员权限文件

  • chmod --改权限

    字符 u+x,o-w
    ~二进制 744
    (a-所有用户,u-文件所有者,g-同组用户,o-其他用户;

     			  +表示添加权限, -表示删除权限;
    
     			  r-表示读权限, w表示写权限,x表示执行权限)
    
  • chmod [a,u,g,o]/[±]/[r,w,x] 文件地址 - 给指定文件对应指定用户添加或者删除指定权限

  • chagrp 改用户权限组

  • chown 改用户所有权限组

  • 文件的类型:
    d:代表目录

    -:代表文件
    I:代表连接

  • sudo -在命令前sudo是以管理员身份执行指令
    注意: 不是所有的用户都可以通过sudo来以管理员身份执行指令,如果想要能够使用sudo必须添加配置

      a.ubuntu:  将需要有管理员身份的账号添加到sudo分组中
    
      b.redhat和contos: 在/etc/sudoers配置文件中添加代码:
    
## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL     #(默认有的)
xiaoming ALL=(ALL)      ALL		#(自己添加的,xiaoming是用户名)

后面的9位可按照如下所示

其他 其他 其他
r w x r w x r w x
4 2 1 4 2 1 4 2 1

读r 写w 执行x 没有权限 -

默认情况下文件和文件夹的权限: 文件所有者有读写权限, 同组用户和其他用户都是只读权限。

 权限:     rwx r-- rw-
权限二进制:111 100 110  
权限值:    7   4   6
chmod 746 文件路径

权限:     rwx rwx rwx
权限值:    7    7  7
chmod 777 文件路径

结果的处理

凡是有的打印结果的指令,我们都可以通过相关指令对应结果进行处理
管道 - |
如果需要对某一个指令的结果使用另外的指令进行二次处理的时候,就需要用到管道(|)
sort
sort - 从小到大排序(将一行内容作为一个字符串,按字符串大小对应内容进行排序,默认不区分大小写)

cat a.txt |sort      # 对a.txt的文件内容从小到大排序显示

sort的参数:
-r   - 逆序
-nk 1  - 数值大小排序
-nk 2  - 字符大小排序(默认)

cat a.txt|sort -nk 1    # 对a.txt的文件内容按数字大小从小到大排序
cat a.txt|sort -rnk 1    # 对a.txt的文件内容按数字大小从大到小排序
cat a.txt|sort -nk 2    # 对a.txt的文件内容按字符大小从小到大排序(默认)
cat a.txt|sort -rnk 2    # 对a.txt的文件内容按字符大小从大到小排序

uniq - 去重
uniq - 只能将紧挨着的相同行去掉重复的(如果需要去掉所有重复的行,先排序将相同的行放到一起)

cat a.txt|uniq     # 去掉a.txt文件内容中相邻重复的行
cat a.txt|sort|uniq   # 去掉a.txt文件内容中所有重复的行

uniq的参数
-c     - 重复次数

awk
awk ‘{print $N}’ - 获取内容中第N列的数据

history|awk '{print $2}'    # 获取历史记录第2列的内容
history|awk '{print $2,$3}'  # 获取历史记录第2列和第3列的内容
history |awk '{print $4}' |sort |uniq ‐c | sort ‐rnk 1 | head ‐n 3    # 统计最常用的3个指令及其使用次数

输出重定向
执行有打印结果的指令 > 文件地址 - 将指定指令执行的结果保存到指定文件中(先清除原文件内容再添加)

执行有打印结果的指令 >> 文件地址 - 将指定指令执行的结果保存到指定文件中(直接将结果追加到原文件中)

history > a.txt     #将当前历史记录直接保存到a.txt文件中

# 将最常用的3个指令及其使用次数保存到a.txt文件中
history |awk '{print $4}' |sort |uniq ‐c | sort ‐rnk 1 | head ‐n 3 > a.txt  

统计
wc -c/-w/-l 文件地址 - 统计指定文件中字符/单词/行的数量
查找
a. grep - 找内容
grep 内容 文件地址 - 在指定文件中查找指定内容(返回文件中所有包含指定内容的行)

grep you a.txt    # 获取a.txt中包含you的所有的行

grep的参数:
-n      - 显示结果的时候显示行号
-i      - 查找内容的时候忽略大小写
-E      - 按正则表达式进行匹配   
		  使用方法: grep -E '正则表达式' 文件
		  注意: Linux操作系统中正则表达式不支持:\d,\D,\w,\W,\s,\S,\b,\B; 其他语法都支持
-v      - 忽略字段
		  grep you a.txt  -v  # 获取a.txt中不包含you的所有的行
		  

b. 执行有打印结果的指令 |grep 内容 - 在指令执行结果中查找指定内容
c. grep -r 内容 文件夹地址 -在指定文件夹中所有的文件中查找指定内容

find - 找文件
find 文件夹路径 -name 文件名 - 在指定文件夹下按文件名找指定文件

# 找指定文件名
find dir1 -name 'test1.py'      # 在文件夹dir1找名字是test1.py的文件
find dir1 -name '*.txt'         # 在文件夹dir1找后缀是txt的所有文件
find dir1 -name 'test*.txt'
find dir1 -name 'test*'
find dir1 -name '*c.txt'

find 文件夹路径 -size +/-文件大小 - 在指定文件夹下找文件大小满足条件的所有的文件

find dir1 -size +4k       # 查找在文件夹dir1中所有大于4k的文件
find dir1 -size -4k       # 查找在文件夹dir1中所有小于4k的文件
find dir1 -size +5k -size -10k  # 查找在文件夹dir1中所有大于5k并且小于10k的文件(文件大小如果是小数,算的时候向上取整)
find dir1 -size +4k -name '*.txt'   # 查找在文件夹dir1中所有大于4k的txt文件

查指令
which 指令名 -精确查找当前指令对应的文件的路径

whereis 指令名 -查找和指定指令相关的所有的文件的路径

man 指令名 -获取指定指令的使用手册

指令名 — help -获取指定指令的帮助文档
trld 命令名 ----获取指定指令的帮助文档

命令的别名

ls -l <===> llfind dir1 -size +4k # 查找在文件夹dir1中所有大于4k的文件
find dir1 -size -4k # 查找在文件夹dir1中所有小于4k的文件
find dir1 -size +5k -size -10k # 查找在文件夹dir1中所有大于5k并且小于10k的文件(文件大小如果是小数,算的时候向上取整)
find dir1 -size +4k -name ‘*.txt’ # 查找在文件夹dir1中所有大于4k的txt文件

alias ‘ll=ls -l’

unalias ll

安装MYSQL

  1. 下载安装MySQL所需要的RPM文件

    wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.30-1.el7.x86_64.rpm-bundle.tar

源代码安装Git

  1. 下载Git源代码压缩归档文件 https://git-scm.com/

  2. 解压缩和解归档

xz -d git-2.26.2.tar.xz

tar -xf git-2.26.2.tar

  1. 进入文件进行准备工作

补包(网络):yum install -y libcurl curl-devel

进入文件安装:./configure --prefix=/usr/local

–prefix指定前缀

安装编译:make &&make install

若报错补一下依赖项:yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel libdb4-devel libpcap-devel xz-devel libffi-devel

检查安装是否成功
git --version

redis命令
redis更改配置启动 : redis-server --requirepass rediscode --port 1122 > redis.log &

–requirepass rediscode :设置口令

–port 1122 指定端口

连接:redis-cli -p 1122

Linux环境下创建和激活Python虚拟环境

方法一:
python3 -m venv venv
source venv/bin/activate
pip install …

方法二:
pip3 install virtualenv
virtualenv --python=/usr/bin/python3 venv
source venv/bin/activate

macOS安装mysqlclient

你可能感兴趣的:(Linux,linux)