cd
change directory的缩写
更改目录的意思
cd语法
cd            可选参数          文件夹
几个特殊的目录
. 当前的工作目录
.. 上一级的工作目录
-  上一次的工作目录
~  当前系统登陆的用户家目录
ls
list  列出文件中的内容
ls    语法
ls    可选参数     可选的文件夹对象
-a    all的意思,显示出所有文件内容,以及隐藏的
-l    详细的输出文件夹中内容
-h    以人类可阅读的形式,输出文件大小
--full-time   以完整的时间格式输出
-t    根据最后修改的时间排序文件
-F    在不同的文件结尾输出不同的文件符号
      /结尾的就是文件夹
      *结尾的就是可执行的文件
      @结尾的就是软连接,快捷方式
      普通文件什么都没有
      
-d    显示文件夹本身信息,不输出其中的内容
-r    reverse  逆序排序
-S    大写的S, 针对文件大小进行排序,默认是从小到大
-i    显示出文件的inode信息(文件的身份证号,储存了文件的大小,位置,权限等等)
pwd
print   work directory 打印工作目录的意思
会输出当前所处的一个绝对路径
su
su 命令用户切换
语法
su -  用户名   #   完全的环境变量用户切换
logout
退出当前系统用户
mkdir
make directory  创建文件夹
语法
mkdir  文件夹名
参数用法
-p  递归创建文件夹
mkdir -p  /opt/oldboy_linux/yuchao/chaoge   #递归创建文件夹,且绝对路径
mkdir wangqi{1..100}
wagnqi1 wagnqi2 wangqi3... wangqi100
touch
用法:touch [选项]... 文件...
讲每个文件的访问时间和修改时间改为当前时间
touch有两个作用
1.创建普通文件,在Linux下文件的后缀格式仅仅是一个名字而已,通过touch创建的都是普通文件
2.修改文件的时间
不存在的文件将会被创建为空文件,除非使用-c 或 -h 选项。
touch {连续的数字或字母} 创建多个文件序列
touch {1..10}
touch {a..z}
  -c, --no-create     不创建任何文件
  -t STAMP            使用[[CC]YY]MMDDhhmm[.ss] 格式的时间替代当前时间
  -r,--reference=文件  使用指定文件的时间属性替代当前文件时间
touch -t  修改文件的时间
10240606  十月二十四号六点六分
cp
用法:cp [选项]... [-T] 源文件 目标文件
  或:cp [选项]... 源文件... 目录
  或:cp [选项]... -t 目录  源文件...
将源文件复制到目标文件,或将多个源文件复制至目标目录。
-r 递归式复制目录,即复制目录下的所有层级的子目录及文件 -p 复制的时候  保持属性不变
-d 复制的时候保软连接(快捷方式)
-a 等于-pdr
-p 等于--preserver=模式,所有权,时间戳,复制文件时保持源文件的权限、时间属性
-i --interactive  覆盖前询问提示
案例
1.复制普通文件
cp 命令  你想复制哪个文件    复制之后的文件名
2.复制普通文件,且改名,放入到另一个文件夹中
cp  wangqi.txt    ./Anneliese/  #复制放入其他文件夹,保留源文件名
cp  wangqi.txt    ./Anneliese/wagnzhuo.txt  #复制放入其他文件夹,且改名
3.一次性复制多个文件,放入另一个文件夹中
cp  wangqi.exe wanghzuo.gif    ./Anneliese/
4.复制整个文件夹,必须加上-r参数
cp -r wangqi wangqi2
5.复制且保持文件属性不变,-p参数用法
cp  -p   wangqi.txt   wangqi.txt.2
6.拷贝软连接时候,保持连接属性不变-d参数
cp -d link_luffy  link_luffy3
7.-i参数的用法,覆盖文件前提示
cp -i 文件1  文件2  #如果文件2已经存在,则会覆盖,-i会让用户进行输入y进行确认
mv
rm命令就是remove的含义,删除一个或者多个文件,这是Linux系统重要命令
-f, --force    强制删除。忽略不存在的文件,不提示确认
-i             在删除前需要确认
-I             早删除超过三个文件或者递归删除前要求确认
-d, --dir      删除空目录
-r,-R,--recursive  递归删除目录及其内容
-v, --verbose  详细显示进行的步骤
    --help     显示此帮助信息并退出
    --version  显示版本信息并退出
案例
1.删除普通文件,就是默认添加了-i参数,询问是否删除
rm chaoge .txt  到除前会提问,是否要删除
2.一次性删除多个文件
rm  chaoge.txt.2  chaoge.txt.3    #删除多个文件,写入多个名字,空格分割就好
3.删除文件夹,必须给rm添加–r参数才行,默认rm只能删除文件类型
rm  -r  mjj      #删除mjj文件夹,以及里面的内容
4.-d参数,只能用于删除空文件夹
rm -d ilovelinux/
5.强制删除文件,且不提示
rm  -f  mjj*   #强制删除以mjj开头的文件,文件夹无法删除
6.强制删除所有的文件和文件夹
rm  -f  -r  ./*    #─定要看清楚了这个命令,写的是否正确
这里重要的事要说三遍
这里重要的事要说三遍
这里重要的事要说三遍
.  当前目录
/  根目录
./  当然目录下的某内容
rm -rf /    #强制性删除根目录下所有内容,非常危险,严谨敲打,删除机器所有内容
rm -rf ./    #强制性删除,相对路径,当前目录下的所有内容,看清楚了,同学们
7.-v参数,显示删除的过程
rm  -rfv  ./*    #强制性删除当前目录所有内容,且显示过程
Linux开关机
shutdown重启或者关机
shutdown --help
shutdown [OPTIONS. . .] [TINE] [wALL.. .]
Shut down the system
重启
reboot    重启
语法:
shutdown  -r参数  -r  --reboot  Reboot the machine
shutdown  -r 10   #十分钟后重启
shutdown  -r 0    #立刻重启
shutdown  -r now  #立刻重启
关机
语法:
shutdawn  -h     --halt停上的含义
shutdawn  -h 10  #十分钟后关机
shutdawn  -h 0   
shutdown -h now  #立即关机
Linux命令行常用快捷键
ctrl + c   cancel取消当前操作
ctrl + l   清空屏慕内容
ctrl + d   退出当前用户
ctrl + a   光标移到行首
ctrl + e   光标移到行尾
ctrl + u   删除光标到行首的内容
Linux的环境变量
同学们应该都会配置windows下的环境变量(PATH),都知道系统会按照PATH的设定,去每个PATH定义的目录下搜索可执行文件。
那么如何查看Linux下的PATH环境变量呢?
执行命令:
 echo $PATH
 echo命令是有打印的意思
 $符号后面跟上PATH,表示输出PATH的变量
PATH(一定是大写的)这个变量是由一堆目录组成,分隔符是"∵"号,而不同于windows的";"号。
[root@luffycity ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@luffycity ~]#
vim
1.vim  文件名   #打开文件
2.输入  字母i, 进入编辑模式,代表insert
3.写完代码之后,按下esc,退出编辑模式
4.此时输入冒号,进入底线命令  然后输入
  :wq!   强制保存退出vim, write quit !强制性的
  
5.注意输入的冒号得是英文输入法得状态
vim快捷键
vim提供的上下左右
h  向左
j  向下
k  向上
i  向右
移动光标的快捷键
w 移动到下一个单词
b 移动到上一个单词
数字0 移动到行首
字符$ 移动到行尾
g     移动到文章的开头
G     移动到文章的结尾
H     移动到屏幕的开头
L     移动到屏幕的结尾
M     移动到屏幕的中间
命令模式的查找
向下查找    /你要找的内容
          /love  我要查找love相关的信息,按下n跳转到下一个单词
       
向上查找    ?你要找的内容    按下n寻找下一个单词
命令模式下的复制,粘贴,删除
输入 yy  复制光标所在行
输入 p   打印粘贴的内容
输入 dd  删除光标当前行
输入 D   删除光标当前位置到行尾的内容 向后删除
输入 x   删除光标当前字符 向后删除
输入 X   删除光标当前字符 向前删除
输入 u   撤销上一步的动作
快捷操作
输入 大写C 删除光标所在的位置,到行尾的内容,且进入编辑模式
输入 o   在当前光标的下一行开始编辑
输入 O   在光标的上一行开始编辑
输入 A   快速进入行尾,且进入编辑模式
输入 ZZ  快速保存退出
批量快捷操作
步骤
1.输入 ctrl + v 进入可视块模式
2.用上下左右命令,选择你选操作的块
3.选中块后,输入d 删除块内容
快捷插入多行
4.选中块后,输入大写的I,进行写代码
5.按下esc两次,会自动生成多行代码
cat
| 功能 | 说明 | 
|---|---|
| 查看文件内容 | cat file.txt | 
| 多个文件合并 | cat file.txt file2.txt > file3.tx | 
| 非交互式编辑或追加内容 | cat >> file.txt <<EOF 欢迎来到我的世界 EOF | 
| 清空文件内容 | cat/dev/null > file.txt [null是空文件] | 
语法
用法: cat[选项][文件]...
将[文件]或标准输入组合输出到标准输出。
清空文件内容,慎用
>文件名
-A, --show-all          等价于-vET
-b, --number-nonblank   对非空输出行编号
-e                      等价于-vE
-E,--show-ends         在每行结束处显示$
-n, --number            对输出的所有行编号
-s, --squeeze-blank     不输出多行空行
-t                      与-vT 等价
-T,--show-tabs          将跳格字符显示为^工
-u                      (被忽略)
-v,--show-nonprinting   使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外
--help                  显示此帮助信息并退出
--version               输出版本信息并退出
如果[文件]缺省,或者[文件]为 -,则读取标准输入。
案例
cat的功能参数用法
案例
1.查看文本内容,以及功能参数
cat gushi.txt
2.对非空行显示行号
cat -b gushi.txt
3.对所有行显示行号
cat -n gushi.txt
4.在每行结尾加上$符
cat -n -E gushi.txt
5.减少空行数量,多个空行,减为1个
cat -s gushi.txt
cat命令合并多个文件
合并多个文件内容,写入到新的文件中
cat douyin.txtgushi.txt >./抖音和古诗的文本内容.txt
cat非交互式的写入文件内容信息
cat  >>  路飞.txt  <<  EOF  
>哈咯你好alex
>我是你的好学生
>EOF
cat清空文件的用法
1.直接清空文件,留下一个空行
echo > gushi.txt
2.直接清空文件,不留空行
>  gushi.txt
3.利用cat读取一个黑洞文件,然后清空其他文件
cat /dev/null  > douyin.txt   #/dev/null  #空设备,黑洞文件
重定向符号
| 符号 | 解释 | 
|---|---|
| 重定向的意思是,“将数据传到其他地方” | |
| > | 输出覆盖重定向 | 
| >> | 输出追加重定向 | 
| <或<< | 标准输入重定向 | 
案例
cat的功能参数用法
1.读取文件内容,且写入到另一个文件中,覆盖写入文件内容
cat  douyin.txt  >  kuaishou.tex
2.追加写入文件内容
cat  douyin.txt  >>  kuaishou.txt
3.重定向写入符
cat  <  douyin.txt
将文本内容拆分成多行
xargs命令
xargs -n 4 < 数字.txt  #把文本内容拆多行
4.重定向追加写入符    <<
可以结合cat命令使用
cat >> gushi.txt  <<EOF
>床前明月光
>地上鞋两双
>举头望明月
>低头思故乡
>EOF
5.减少空行数量,多个空行,减为一个
cat -s  gushi.txt
cat命令合并多个文件
合并多个文件内容,写入到新的文件中
cat douyin.txt  gushi.txt  >  ./抖音和古诗的文本内容.txt
cat 非交互式的写入问价内容信息
cat >> 路飞.txt  <<EOF
>halo你好alex
>我是你的好学生
>EOF
cat清空文件的用法
1.直接清空文件,留下了一个空行
echo > gushi.txt
2.直接清空文件内容,不留空行
>gushi.txt
3.利用cat读取一个黑洞文件,然后清空其他文本
tac
与cat命令查看问价结果相反
逆序输出
管道符
用法
1.对字符串进行二次过滤
查看文本内容,且对内容进行二次过滤 找到含有字符串know me的文本
cat gushi.txt | grep "know me"
grep
过滤字符串信息的命令
more and less
分屏查看文本内容命令
语法
more  文件名   #分屏显示文件内容
按下enter回车是下一行
空格是向下滚动一个屏大小
=显示当前行号
按下q 是退出more
head and tail
head命令用于查看文件开头的n行
语法
head  -5   文件名 
head  文件名    #head默认显示10行
-c 参数, 指定字符数量,显示字符数
head -c  5  文件名    #输出这个文件中的5个字符
tail默认从后向前看10行,也可以指定行数
tail  文件名     #显示默认后10行
tail  -2   文件名    #显示后2行
-f    实时刷新文件内容变化
 
-F  不断的打开文件
cut
cut -在文件的每一行中提取片断
在每个文件FILE的各行中,把提取的片断显示在标准输出。
语法
cut【参数】【数值区间】交件
-b    以字节为单位分刚割
-n    取清分割多字节字符,与-b—起用
-a    以字符为单位
-d    自定义分隔符,默认以tab为分羁符
-f    -d—起使用,指定显示哪个区域
N     第N个字节,字符或字段,从1计数起
N-    从第N个字节,字符或字段直至行尾
N-M   从第N到第N《并包括第M)个字节,宁符或字段
-M    从第1到第N《并包活第H)个中节,字符或字段
案例
1.战取每一行的第4个字符
cut   -c   4   alex.txt
2.截取4到6个宇符
cut   -c    4-6    alex.txt
3 .截聘和7的字符
cut -c  5,7  alex.txt
4.截取一个范围的字符,如第四个到结尾
cut  -c  4-   alex.txt
5.截取一个范围的字符,如开头到第六个字符
cut  -c   -6   alex.txt
6.指定分隔符号,进行截取
cut  -d   ":"  -f    区域范围    alex.txt
找出第三个区域的内容
cut  -d   ":"  -f    3    alex.txt
找出开头到第三个区域的内容
cut  -d  ":"    -f   -3   alex.txt
sort
sort命令将输入的文件内容按照规则排序,然后输出结果
用法: sort  [选项]...  [文件]...
  或: sort  [选项]...  --filea7-from=F
  串联排序所有指定文件并将结果写到标准输出。
  
-b,  --ignore-1eading-blanks    忽略前导的空白区域
-n,  --numeric-sort            根据字符串数值比较
-r,  --reverse                逆序输出排序结果
-u,  --unigjue    去重排序  配合-c,严格校验排序;不配合-c,则只输出—次排序结果
-t,   --fie1d-separator=分隔微  使用指定的分隔符代替非空格到空格的转换
-k,  --key=位置1[,位置2 ]  在位置1开始—个key,在位置2终止日(默认为行尾)
案例
1.对文件第一个宇符进行排序,认从小到大
sort -n  file .txt
2.对排序结果反转,从大到小排序
sort -n  -r  file.txt
3.对排序结果去重
sort  -u   file.txt
4.指定分割符号,指定区域进行排序,从小到大排序
sort  -n  -t  "."   -k  4  ip.txt
uniq
uniq命令可以输出或者忍略文件中的重复行,常与sort排序结合使用
用法: uniq  「选项]...  「文件]
从输入文件或者标准输入中筛选相邻的匹配行并写入到输出文件或标准输出。
不附加任何选项时匹配行将在百次出现处被合并。
-c,  --count
在每行前加上表示相应行目出现次数的前缀编号
-d,  --repeatcd
只输出重复的行
-u,  --unique  只显示出现过一次的行,注意了,uniq的只出现过一次,是针对-c统计之后的结果
案例
1.去除连续的重复行
uniq  luffy.txt
2.结合sort使用,去重更精准
sort -n luffy.txt |uniq
3.统计每一行重复次数
sort -n luffy.txt |uniq  -c
4.只找出文件中重复行,且统计出现次数
sort -n luffy.txt |uniq -d -c
5.找出只出现过一次的行
sort -n luffy.txt | uniq -c -u
wc
wc命令用于统计文件的行数、单词、字节数
-c   --bytes 打印字节数
-m   --chars 打印字符数
-l   --lines 打印行数
-L   --max-line-length 打印最长行的长度
-w   --words 打印单词数
案例
1.统计文件的行数
wc -l luffy.txt
16 luffy.txt
screen
通过SSH远程登录到 Linux 服务器,运行耗时较长的程序,推荐使用screen命令:
- screen -S name :启动一个名字为name的screen
- screen -S name -X quit :删除某个session
- screen -ls :列出所有的screen
- screen -r name或者id:重新连接回到某个screen
- ctrl + a + d :暂时断开当前screen会话
- ctrl + a + c :screen 在该会话内生成一个新的窗口并切换到该窗口
 screen -wipe :清理已经关闭的窗口
使用Ctrl a +k 杀死当前窗口和窗口中运行的程序
tar
压缩文件非打包
-c 打包
-z 压缩
# touch a.c       
# tar -czvf test.tar.gz a.c   //压缩 a.c文件为test.tar.gz
a.c
解压文件
# tar -xzvf test.tar.gz 
a.c
安装软件有问题
ubuntu换源
sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get upgrade
- Ubuntu 20.04 Linux更换源教程
- Ubuntu换源后,更新提示GPG error缺少公钥
W: GPG error: http://mirrors.aliyun.com trusty-security InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 40976EAF437D05B5 NO_PUBKEY 3B4FE6ACC0B21F32
W: GPG error: http://mirrors.aliyun.com trusty-updates InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 40976EAF437D05B5 NO_PUBKEY 3B4FE6ACC0B21F32
W: GPG error: http://mirrors.aliyun.com trusty-proposed InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 40976EAF437D05B5 NO_PUBKEY 3B4FE6ACC0B21F32
W: GPG error: http://mirrors.aliyun.com trusty-backports InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 40976EAF437D05B5 NO_PUBKEY 3B4FE6ACC0B21F32
W: GPG error: http://mirrors.aliyun.com trusty Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 40976EAF437D05B5 NO_PUBKEY 3B4FE6ACC0B21F32
** Solution**
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 40976EAF437D05B5
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32 
安装netstat
apt install net-tools
查看端口占用
netstat -tunlp
java环境配置
echo $JAVA_HOME
export JAVA_HOME=
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
1、查看Linux环境自带JDK
 使用命令:# rpm -qa|grep gcj
显示内容其中包含相应信息
java-x.x.x-gcj-compat-x.x.x.x-xxjpp
java-x.x.x-gcj-compat-devel-x.x.x.x-xxjpp
2、卸载
rpm -e --nodeps java-x.x.x-gcj-compat-x.x.x.x-xxjpp
rpm -e --nodeps java-x.x.x-gcj-compat-devel-x.x.x.x-xxjpp
3、卸载rpm版的jdk:
使用命令:#r pm -qa|grep jdk
显示:jdk-x.x.x_xx-fcs
卸载:#rpm -e --nodeps jdk-x.x.x_xx-fcs
4、下载jdk
打开网站http://www.oracle.com/technetwork/java/javase/downloads,选择对应版本JDK,点击下载
5、在usr目录下创建java安装目录
cd /usr
mkdir java
6、将下载好的JDK文件copy到/usr/java目录
cp /mnt/hgfs/linux/jdk-8u60-linux-x64.tar.gz /usr/java/
7、解压到当前目录
tar -zxvf jdk-8u60-linux-x64.tar.gz
得到文件夹 jdk1.8.0_60
8、编辑配置文件,配置环境变更
vim /etc/profile
添加如下内容:
JAVA_HOME=/usr/java/jdk1.8.0_60
CLASSPATH=$JAVA_HOME/lib/
PATH= P A T H : PATH: PATH:JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH
9、重启机器或者执行命令:source /etc/profile
重启命令:sudo shutdown -r now
10、查看安装情况
java -version
javac -version
java version “1.8.0_60”
Java™ SE Runtime Environment (build 1.8.0_60-b27)
Java HotSpot™ Client VM (build 25.60-b23, mixed mode)
pip换源
 -i https://pypi.tuna.tsinghua.edu.cn/simple
vim  /etc/profile
 ~/.bash_profile  # 这个是用户环境变量配置文件
  /etc/profile  # 系统环境变量配置文件
source /etc/profile
配置环境python
vim  /etc/profile
#配置python
export PYTHON_HOME=/root/training/Python-3.6.5  #后面是python的安装路径
export PATH=$PYTHON_HOME/bin:$PATH
https://github.com/liuqianpan2008/WhoUndercover
机器人
/perm permit u* :
/perm permit u* console:*
硬盘fat32转ntfs
convert E:/fs:ntfs
修复硬盘部分文件删除不了
在想要修复的磁盘中cmd
CHKDSK /F










