Linux1

一、远程连接linux服务器方法:
windows
macos
linu
使用ssh命令即可,ssh就是提供一个远程安全加密
远程连接步骤
1、确保ip地址正确
通过ip addr show 查看linux 网络的ip信息
2、安装好xshell 软件,进行远程连接
3、直接使用ssh命令进行远程连接
ssh [email protected] 回车后也可以远程登录linux

在macos中登录linux系统命令
ssh [email protected]

二、linux命令语法
命令 空格 参数 空格 文件,文件夹(可写 可不写)
ls /opt

ls -a /opt

ls -a 如果不写则输出,当前文件夹内容

ls
基本命令语法如上:
一般情况
ls -a -l 不仅可以看隐藏的文件还能看到更加详细的情况

whoami 显示当前登录的用户
hostname 显示当前主机名
pwd 显示当前的工作目录绝对路径

三、Linux目录结构
linux 目录分隔符特点
第一个/为根目录
后面的/就是为目录之间的分隔符

四、Linux常见文件夹的含义
/
/dev 存放硬件文件 U盘
/lib 存放系统库文件 类似windows dll .so
/sbin 存放二进制文件如 ls cd mv 等等
/var 存放经常变化的文件 /var/log 用于记录机器运转中产生的各中心信息
/home 普通用户的家目录
/root 特权用户目录
/etc 存放配置文件目录 /etc/nginx.conf my.cnf
/boot 存放内核与启动文件
/bin 存放二进制文件(可执行文件)只要发现目录中有bin相关的字说明这个文件夹里面存放可执行文件 /usr/bin/cp /usr/bin/ls
/opt 存放大型文件目录(非强制)
/usr 存放安装程序(软件默认目录)
/mnt 挂载目录(U盘、光驱)

五、重要配置文件
etc中有很多重要配置文件
network-scripts
vim /etc/sysconfig/network-scripts/ifcfg-ens33
BOOTPROTO =static
DEVICE=“ens33”
ONBOOT=yes
IPADDR=192.168.26.3
NETMASK=255.255.255.0
GATEWAY=192.168.26.254
DNS=119.25.25.25
按esc 退出
:wq!

systemctl stop NetworkManager
systemctl restart network
注意大小写

DNS
vim /etc/resolv.conf
如果在nameserver 前面加#,那么dns就不起作用了

hostname
cat /etc/hostname
/etc/hosts 这里打开后可以定义自己使用的
vim /etc/hosts
参照127.0.0.1 www.niuge.com

登陆linux提示
cat /etc/motd
vim /etc/motd
welcome niuge back

cat /etc/os-release
查看centos 软件版本

ls /proc/
查看cpu cpuinfo 内存 meninfo

Linux 核心命令与文件管理
cd change directory
cd 语法
cd 可选的参数 文件夹
几个特殊的目录
。当前的工作目录
。。上一级的工作目录

  • 上一次的工作目录
    ~ 当前系统登录的用户家目录

ls 命令
list 列出文件夹中的内容
ls 语法
ls 可选参数 可选的文件夹对象
-a all 的信息,显示出所有文件内容以及隐藏的
ls . 显示当前目录中的内容
ls … 显示上一级目录中的内容
ls -a . 显示当前目中的内容包括隐藏的
ls -a … 显示上一级目录中的内容包括隐藏的
ls -l 详细列出文件文件夹详细内容,不但列出名称而且还列出权限,文件大小
ls -h 列出文件大小,即已MB GB显示而不是字节
–full-time 以完整时间格式输出 2020-04-24 13:48:15
ls -t 按照时间最后修改时间进行排序
ls -f 以/结尾的是文件夹 以*结尾的就是可执行文件 以@结尾的就是软链接,快捷方式,以斜杠/结尾的就是文件夹。普通文件类型,结尾什么都没有
ls -d 显示文件夹本身属性而不显示文件夹内的内容
ls -r 逆转排序reverse 文件从小到大排列 ls -Slhr
ls -S 大写的S 针对文件大小进行排序,默认是从大到小 ls -Slh
ls -i 显示文件的inode信息(文件的身份证号,没列出一行后面都包括该文件的元信息,包括文件大小,位置,权限)
普通文件什么都没有
mkdir make directory
mkdir 文件夹名称

logout 退出
su - root 切换到root 用户,需要输入root密码
su - 其他用户名 当在root下使用该命令则表示切换到其他用户,无需输入密码

mkdir命令
mkdir 创建文件夹
mkdir test1
mkdir {test2,test3.test4} 在一个目录下同时创建多个文件夹
mkdir -p test2/test2/test3 递归创建文件夹
mkdir bash
mkdir test{1…100}
转换成
mkdir test1
mkdir test2
mkdir test3
.
.
.
mkdir test100
Linux1
从根目录开始寻找,就是绝对路径写法 /
只要不是从根目录开始寻找,就是相对路径写法 ***.***/test2/test3

touch 命令
1、创建普通文件,在linux下文件后缀格式仅仅是一个名字,通过touch创建的都是普通文件

touch 123.txt 22.jpg 33.gy 44.exe
Linux1
如果想同时创建多个文件
touch alex{1…100}
Linux1
Linux1
Linux1
Linux1

2、修改文件时间
touch 文件
touch -t 修改文件的时间为指定时间
touch -t 04231441 test140
月 日 时 分
3、复制粘贴
命令cp
cp [选项]
1、复制普通文件
cp 被复制的文件 复制之后的文件名
cp 22.jpg 232.jpg 两个文件并存

cp 被复制的文件 复制之后文件名 保留文件名放入其他文件夹
cp 22.jpg ./test139/

cp 被复制的文件 文件夹/被修改名字后的文件
cp 22.jpg ./test138/232.jpg

复制文件夹a 并修改名称为b
cp a b 不行,必须cp -r a b
cp -r 递归复制目录
Linux1
cp -p 被复制的文件 复制之后的文件名 复制且保持文件属性不变

cp -d 复制软链接,保持链接属性不变

-i 参数的用法,覆盖文件前提示
cp 文件1 文件2 如果文件2已经存在,则覆盖。 -i 会让用户进行确认。
linux 系统中有alias别名的设置,也就是输入cp 相当于是输入了cp -i ,系统会提醒你。

rm 命令
1、移动文件到另一个文件夹
2、mv 移动多个文件、文件夹到另外一个文件夹
mv test* 2233
3、重命名
mv 源文件名 新文件名
4、-i 参数的用法,覆盖前询问
mv 在直接输入的时候,系统做了别名alias,其实敲的是mv -i
语法是,如果修改后的文件名,已经存在,则会询问,是否要覆盖改文件

5、-f 强制
mv -f 不再询问

rm命令
1、删除普通文件
rm chaoge.txt
删除前会询问是否要删除
默认添加了-i
2、一次性删除多个文件
rm chaoge.txt chaoge1.txt
删除多个文件,中间以空格分隔即可
3、删除目录,必须给rm添加-r才行,默认rm只能删除文件类型
rm -r test2 删除test2文件夹,以及test2文件夹内的内容
4、-d 只能删除空目录
rm -d test2
5、-f 强制删除文件且不提示
rm -f mjj.*
6、强制删除所有的文件和文件夹
rm -rf mjj.*
rm -f-r ./*
. 当前目录
/根目录
./ 当前目录下的某内容
rm -rf / 强制删除跟目录下所有内容,非常危险,严禁敲打,删除机器所有内容
rm -rf ./ 强制删除,相对路径,当前目录下的所有内容
7、-v 参数,显示删除的过程
rm -rfv ./* 强制删除当前目录所有内容,且显示过程

rm --help
help rm
man rm
vim使用
linux平台的文本编辑器
vi 命令,如同widows的记事本,功能较少
vim 命令,功能强大,如同note++
vim 默认机器是不安装的,需要手动安装这个工具命令
yum install vim -y #通过yum软件管理工具,安装命令vim,且默认是yes,这个命令得保证机器可以上网。当vim打开不存在的文件的时候,默认会创建文件。
语法:
1、vim 文件名 #打开文件
2、输入字母i 进入编辑模式,代表instert插入
3、写完代码之后,按下esc,退出编辑模式
4、此时输入冒号,进入底线命令模式,然后输入
:wq! ,强制写入文件切退出vim,write quit !强制性的
5、注意输入的冒号得是英文输入法的状态

vim 快捷键
vim提供的上下左右
h 向左
j 向下
k 向上
l 向右
移动光标的快捷键
w 移动到下一个单词
b移动到上一个单词
数字0 移动到行首
字符$ 移动到行尾
按下g移动到文章的开头
按下G移动到文章的结尾
按下H 移动到屏幕的开头
按下L 移动到屏幕的结尾
按下M 移动到屏幕的中间
命令模式的查找
向下查找 /你要找的内容 按下n寻找下一个单词
向上查找 ?你要找的内容 按下n寻找下一个单词

命令模式下的复制粘贴删除
输入yy 复制光标所在行
输入p 打印粘贴的内容
输入4yy复制4行内容
输入dd删除光标当前行
输入D删除光标当前位置到行尾的内容
输入x 删除光标当前字符,向后删除
输入X 删除光标当前字符,向前删除
输入u撤销之前的动作。

快捷操作
删除光标所在位置到行尾的内容,且进入编辑模式,输入大写C
输入o 在当前光标的下一行开始编辑
输入O在光标的上一行开始编辑
输入A快速进入行尾,且进入编辑模式
输入zz快速保存退出

批量快捷操作
1、输入ctrl+v 进入可视块模式
2、用上下左右命令,选择你选操作的块
3、选中块后,输入d,删除块内容

快捷插入多行
4、选中块后,输入大写的I,进行写代码
5、按下esc两次,会自动生成多行代码

shutdown -h
poweroff 立刻关闭系统,且关闭电源
shotdown -r 1 一分钟之后重启
shutdown -r now 立刻重启,企业 用法
reboot
init 0 切换运行级别为0 ,0表示关机
init 6 切换级别为6,此级别是重启
logout 注销退出当前用户
exit 注销退出当前用户,快捷键ctrl+d

echo $PATH

yum install vim -y 通过yum软件管理工具,安装命令vim , 切默认是yes ,这个命令得保证机器可以上网
当vim打开不存在的文件的时候默认会创建文件
语法
vim 文件名 打开文件

意外关闭一个文件 chaochao.txt
使用vim -r .chaochao.txt.swp 来直接恢复意外关闭但是未来得及保存的信息。
然后使用rm -rf .chaochao.txt.swp
再使用cat chaochao.txt 此时该文件下就有意外关闭前输入的所有的信息了

重定向
重定向的意思是:将数据传到其他地方


< 或《
案例
1、读取文件内容,且写入到另一个文件中
cat douyin2.txt
跟我一起走

cat douyin.txt > ./douyin2.txt
cat douyin.txt > ./douyin2.txt
cat douyin.txt > ./douyin2.txt
cat douyin2.txt
跟我一起走
表示 > 覆盖
2、》 重定向写入符 表示追加
cat douyin.txt >> ./douyin2.txt
cat douyin.txt >> ./douyin2.txt
cat douyin.txt >> ./douyin2.txt
cat douyin.txt >> ./douyin2.txt
cat douyin.txt >> ./douyin2.txt
1 跟我一起走
2 跟我一起走
3 跟我一起走
4 跟我一起走
5 跟我一起走

cat < daoyin.txt 把文件中的数据,发送给cat 命令去读取
将文本内容拆分成多行
xargs命令
xargs -n 4< shuzi.txt 把文本内容拆成多行

4、重定向追加写入符 <<
可以结合cat使用
cat >>gushi.txt <<EOF
1111
222
333

EOF
cat gushi.txt
1111
222
333

cat命令
语法
读取文件内容的命令
-n 参数 显示每一行的行号

cut 切割文件每一行字符
cut -c 4 alex.txt
对文件alex.txt 按行进行切割 =,取出第4个字符
cut -c 4-7 alex.txt
对文件alex.txt 按行取出从第4到7个字符
cut -c 4,6 alex.txt
对文件 alex.txt 按行取出第4和第6哥字符
cut -c -7 alex.txt
取出每行从开始到第7个字符
cut -c 8- alex.txt
取出每行从第8个字符到最后所有字符
cut -d “:" -f 7 password
取出每行以:为分隔符的区域第7段所有信息

cut -d “:” -f 1-3 password
取出每行以:为分隔符的区域从第1到第3个区域所有信息

cut -d “:” -f -4 password | head 5
取出每行以:为分隔符的区域,从开始到第4块,并且是前5行

排序
sort
sort -n sort.txt
按照第一个字符进行排序 -n 针对数字进行从小到大排序
sort -nr sort.txt
按照第一个字符进行排序,-nr 针对数字进行从大到小排序
sort -u 对排序结果进行去重
sort -u sort.txt

指定分隔符号,进行排序 -t
sort -n ip.txt
sort -t “.” -k 4 ip.txt -n #-k 指定区域
对ip.txt 按照以 。进行分割区域,第4段,并且对取出的第四段的信息按照数字从小到大进行排序

uniq 经常于sort配合使用

uniq lucy.txt 对连续的行出现重复的情况进行去重
uniq 结合sort 使用去重,去重更精准
sort -n lucy.txt 先进行排序为连续的
sort -n lucy.txt |uniq
把sort -n lucy.txt 结果丢给了uniq进行处理,可以将lucy.txt先进行排序,将相同行写到连续行中,然后再通过uniq进行去重

uniq -c 在每行前加上表示相应行目出现次数的前缀编号
uniq -d 只输出重复的行
uniq -u 只显示出现过一次的行,注意了,uniq的只出现过一次,是针对-c统计之后的结果

sort -n lucy.txt |uniq -c
统计出现重复的次数并写在每行最前面

-d 只输出重复的行
sort -n lucy.txt |uniq -d -c
将只出现1次的行去除掉,只显示重复的行,且统计出现次数

sort -n lucy.txt | uniq -c -u
找出只出现过一次的行

wc 用于统计文件的行数、单词、字节数
-c 打印字节数
-m 打印字符数
-l 打印行数
-L 打印最长行的长度
-w 打印单词数

统计文件的行数
cat lu.txt
cat lu.txt -n
wc -l lu.txt

统计单词的数量
echo “alex wupeiqi mjj cunzhang chaoge”
alex wupeiqi mjj cunzhang chaoge
echo “alex wupeiqi mjj cunzhang chaoge” | wc -w
5

echo “chaoge” |wc -m
7
为何chaoge不是6个字符而是7个字符

echo “chaoge” | cat -E
chaoge$
因为 字符串结尾有一个$字符

输出最长行的字符数
cat alex.txt
my name is alex
i like learing python and linux .

cat alex.txt | wc -L
35

w
who
who | wc -l
2

tr命令
tr命令从标准输入中替换,缩减或删除字符,将结果写入到标准输出
用法:
tr 【选项】 …SET1 [SET2]
从标准输入中替换、缩减和/或删除字符,并将结果写入到标准输出。
字符集1:指定要转换或删除的原字符集。
当执行转换操作时,必须使用参数“字符集2”指定转换的目标字符集。
但执行删除操作时,不需要参数“字符集2”
字符集2:指定要转换成的目标字符集。
-c --complerment 取代所有不属于第一字符集的字符。
-d --delete 删除所有属于第一字符集的字符
-s --sequeeze-repeats 把连续重复的字符以单独一个字符表示
-t --truncate-set1 先删除第一字符集较第二字符集多出的字符。

案例
1、替换标准输入中的大小写
echo “my name is alex”
my name is alex
echo “my name is alex” | tr ‘[a-z]’ ‘[A-Z]’
MY NAME IS ALEX

2、clear
使用-d 删除参数
echo “my name is alex any i am 9999 years old”
my name is alex any i am 9999 years old
echo “my name is alex any i am 9999 years old” | tr -d ‘a-z’
9999
echo “my name is alex any i am 9999 years old” | tr -d ‘a’
my nme is lex any i m 9999 years old

echo “my name is alex any i am 9999 years old” | tr -d ‘0-9’
my nme is lex any i am years old

3、
把文件当作标准输入,进行字符替换
cat alex.txt
my name is alex .
i like learning python and linux .
tr ‘a’ ‘A’ < alex.txt
my nAme is Alex .
i like leArning python And linux .

4、删除重复字符
echo “iiiii am aaaaaaaallllllexxxxxx” |tr -s ‘iaxl’
i am alex

stat 命令
stat 命令用于显示文件的状态信息。stat命令的输出信息比lis 的输出信息更详细。
stat (选项) (参数)‘
选项
-L 跟随链接
-f 显示文件系统状态而非文件状态
-c 使用指定输出格式代替默认值,每用一次指定格式换一新行
类似format ,但是会解释反斜杠转义符,不适用换行作输出结尾。如果您仍希望使用换行,可以在格式中加入"\n"
-t --terse使用简洁格式输出
–help 显示此帮助信息并退出
–version 显示版本信息并退出
有效的文件格式序列(不使用 --file-system)
%a 八进制权限

stat alex.txt
Linux1
find 命令
用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。
如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。
find 查找目录和文件
find 路径 --命令参数 【输出形式】
参数说明
路径:告诉find在哪儿去找你想要的东西
Linux1
根据名字进行全盘搜索
find / -name “*.txt”
查找这台机器.txt结尾的文件
ctrl+c中断搜索

find /opt -name “*.txt”
在根目录opt目录下查找.txt文件

find /opt -maxdepth 1 -name “*.txt”
查找根目录下opt下第一层中有。txt后缀的所有文件

touch {1…10}alex.txt
find . -name “[0-9]”*
mkdir {1…10}mjj
find . -name “[0-9]"
find . -type f -name "[0-9]
” f表示文件类型
find . -type d -name “[0-9]**” d 表示文件夹类型

find . type f -name “[0-9]*” -delete
找到关于文件类型的以数字0-9开头的文件,并且删除

根据文件时间来查找
Linux1
find . -atime -2 两天内被访问的文件
find . -atime +2 超过两天被访问的文件
find . -atime 2 两天前被访问的文件
find 反向查找
find . -maxdepth 1 -type d 查找文件夹
find . -maxdepth 1 ! -type d 查找非文件夹

find . -type f -size +200M查找当前目录下文件大小超过200M
find . -path “./test_find” -prune -o -name “*.txt” -print
忽略文件夹搜索

find 执行 -ok 动作
find . -type f -name “.txt"
find . type f -name "
.txt” -ok rm {} ;
Linux1
Linux1
xarg 将多行变成一行
vim chaoge.txt
1 2 3 4
5 6 7 8
cat chaoge.txt
1 2 3 4
5 6 7 8
xargs < chaoge.txt
1 2 3 4 5 6 7 8
-n 限制每行输出的个数
xargs -n 2 < chaoge.txt
1 2
3 4
5 6
7 8
-d 指定分割符号
echo “alex,mjj,cunzhang.chaoge”
alex,mjj,cunzhang,chaoge
echo “alex,mjj,cunzhang.chaoge” | xargs -d “,”
alex mjj cunzhang chaoge
echo “alex,mjj,cunzhang.chaoge” | xargs -d “,” -n 2
alex mjj
cunzhang chaoge
-i 用{}替代传输的数据
Linux1
-I 参数用法,用字符串替换数据
Linux1