linux萌新

1.虚拟机和linux安装

vmware14注册码:YA18K-0WY8P-H85DY-L4NZG-X7RAD

ctrl+alt 切换windows和虚拟机的鼠标

vi命令:

打开文件:vi ifcfg-ens33

按i进入编辑模式

编辑完按esc,:wq退出

dhcp 动态获取网址

切换网络配置目录 cd /etc/sysconfig/network-scripts

删除HDADDR和UUID(方便克隆)

设置 网络

​ IPADDR:192.168.192.130

netmask:255.255.255.0

GATEWAY:192.168.192.2

DNS1:114.114.114.114

DNS2:192.168.192.1

service network start 重启网卡

2.克隆

克隆完

修改IPADDR

修改hostname:vi /etc/hostname

删除文件: /etc/udev/rules.d/70-persistent-net.rules

3.判断内部命令、外部命令

type cd

cd is a shell buildin–内部命令

type yum

yum is /bin/yum–外部命令

PATH环境变量提高外部命令的执行效率

4.man查看外部命令说明、help查看内部命令说明

man yum

help cd

5.bash shell定义变量

a=1 等号前后不能有空格

echo $a

arr=(1 2 3 4) 数组元素之间用空格

echo ${arr[0]} 获取数组元素用大括号

6.简单的进程管理

echo $$ 获取当前bash进程号

ps -ef 获取当前系统的所有进程

kill -9 pid 杀死pid进程

7.hash优化查询的原理

第一次执行命令的时候先从path环境变量的目录中查找

如果找到就执行命令同时将命令放到hash中,下次再执行相同命令直接从hash中查找

echo $PATH

yum install man

hash

8.linux文件系统

/bin 用户命令

/sbin 管理命令

/boot 引导文件(系统启动相关文件)

/home 普通用户的家目录

/root 管理员的家目录

/etc 配置文件

/dev 设备文件(鼠标键盘等等)

/lib 库文件

/proc 内核映射文件(包括进程的内核映射文件,进程死亡进程的映射文件就被删除了)

/media 挂载点目录,移动设备

/mnt 挂载点目录,额外的临时文件系统

/opt 可选目录,第三方程的安装目录

/sys 跟硬件设备相关的属性映射文件

/tmp 临时文件,/var/tmp

/var 可变化的文件

9.查看磁盘和文件的使用情况

df 查看分区的使用情况

df -u 查看分区的使用情况附带单位

du home 查看文件的使用情况

du -h home 查看文件的使用情况附带单位

file 文件名 查看文件类型

10.ls命令

ls 显示当前文件夹下的目录和文件

ls -l 显示当前文件下的目录和文件的详细信息

ls /home 显示home文件夹下的文件和目录

ls -a 显示当前文件夹下的目录和文件包括隐藏文件

lrwxrwxrwx. 1 root root 7 Aug 3 05:42 bin -> usr/bin

l rwx rwx rwx. 1 root root 7 Aug 3 05:42 bin -> usr/bin

文件类型 属主权限 属主所在组权限 其他用户权限 硬链接次数 属主 属主所在组 大小 最后修改时间 目录

r 可读

w 可写

x 可执行

文件类型:

​ ‘-’ 普通文件

​ d 目录文件

​ b 块设备文件

​ c 字符设备文件

​ l 符号链接文件

​ p 管道命令文件

​ s 套接字文件

11.mkdir、cp、mv

mkdir abc 当前目录创建abc文件夹

mkdir -p abc/a/b 创建级联目录

mkdir abc/a abc/b abc/c 创建多个目录

mkdir abc/{a,b,c} 创建多个目录

cp /bin/yum . 拷贝文件到当前目录

cp /bin/yum /root/abc 拷贝文件到abc目录下

cp a b 拷贝目录,a到b

mv yum 123 修改文件名

mv yum /root/abc/123.txt 移动文件并改名

12.rm、ln

rm -f 123.txt 强制删除文件

rm -r -f abc 强制删除文件夹

ll -i 查看文件ID号

ln yum xx 给yum创建硬链接xx,yum和xx指向同一个文件,删除yum,xx不受影响

ln -s yum yy 给yum创建软链接yy,xx指向yum,删除yum,yy就不存在了

13.stat、touch

[root@node01 abc]# stat a
File: ‘a’
Size: 4096 Blocks: 8 IO Block: 4096 directory – 文件夹
Device: fd00h/64768d Inode: 262155 Links: 6
Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2020-08-03 20:47:53.421613527 +0800 访问文件的时间
Modify: 2020-08-03 20:47:52.046613561 +0800 修改文件内容的时间
Change: 2020-08-03 20:47:52.046613561 +0800 修改文件元数据(权限、大小、路径等等等)的时间
Birth: -

touch aaa aaa不存在则创建文件aaa,存在则刷新Access、Modify、Change时间

14.cat、more、less、head、tail

cat profile 显示文件的所有内容

cat -n profile | grep “profile” 显示有profile字符串的行并展示行号

more profile 分页显示文件内容,enter逐行显示,空格键逐页显示

more +10 profile 从第十行开始显示

less profile 显示部分文件内容,空格键往下翻,B键往上翻

head profile 默认显示前十行内容

head -6 profile 显示前6行内容

tail profile 默认显示后十行内容

tail -2 profile 显示后2行内容

tail -f profile 追加显示文件后面的内容

15.管道

head -75 profile | tail -1 显示第75行内容

cat profile | grep “profile” 显示包含profile字符串的行

echo “/” | xargs ls -l 打印根目录

xargs 当管道前面的输出不能作为后面命令的输入则使用xargs

16.vi文本编辑器

  • 编辑模式

    移动光标 :

    ​ h左 l右 j下 k上

    ​ 0 跳到当前行绝对行首

    ​ ^ 跳到当前行第一个不为空的字符

    ​ $ 跳到当前行的绝对行尾

    ​ w 移到下一个单词的首字母

    ​ b 跳到当前或前一个单词的首字母

    ​ e 跳到当前或下一个单词的最后一个字母

    ​ G 跳到文件的最后一行

    ​ 3G 跳到第三行

    ​ gg 跳到文章的开头

    ​ ctrl+f 往后翻屏

    ​ ctrl+b 往前翻屏

    删除和替换字符:

    ​ x 删除光标位置的字符

    ​ 3x 删除光标位置开始往后的三个字符

    ​ dd 删除当前行

    ​ dw 删除光标所在往后的单词

    ​ r 替换光标位子的字符

    复制、粘贴、撤销

    ​ yw 复制光标位置的字符

    ​ yy 复制光标所在行

    ​ p 光标所在位置后粘贴

    ​ P 光标所在位置前粘贴

    ​ u 撤销

    ​ ctrl+r 恢复,恢复一次操作

    ​ . 重复上一次的操作

  • 输入模式

    i 光标字符前进入输入模式

    a 光标字符后面进入输入模式

    o 光标所在行下方新建一行进入输入模式

    O 光标所在行上方新建一行进入输入模式

    A 跳到行尾进入输入模式

    esc 回到编辑模式

  • 末行模式
    编辑模式下进入末行模式

    :q 未修改内容退出

    :q! 修改内容撤销修改退出

    :w 保存

    :w! 强制保存

    :wq 强制保存并退出

    shift +zz 保存并退出

    :set nu 显示行号

    :set nonu 隐藏行号

    :set readonly 设置只读模式

    :/after 搜索after字符串

    ​ n 向下搜索

    ​ N 向上搜索

    :?after 搜索after字符串

    ​ n 向上搜索

    ​ N 向下搜索

    😒/after/before 光标所在行第一个after替换为before

    😒/after/before/g 光标所在行所有after替换为before

    😒/after/before/gi 光标所在行所有after忽略大小写替换为before

    :0,+2s/after/befor/gi 光标所在行以及往下2行所有after忽略大小写替换为before

    :%s/after/before/gi 所有after忽略大小写替换为before

    :!ls -l 感叹号表示执行命令

    :1d 删除第一行

    :1,3d 删除前三行

    :$d 删除最后一行 $表示最后一行

    :1y 复制第一行

    :0,$y 复制全文

17.文本处理命令cut、sort、wc

​ cut -d ‘:’ -f1 password 按照:切割并显示第一行

​ cut -d ‘:’ f1-3 -s password 按照:切割并显示第一到三行,不显示没有分隔符的行

​ sort -t ‘:’ -k1 password 按照:切割并按照字典对第一列排序

​ sort -t ‘:’ -k1 -n password 按照:切割并按照数值对第一列排序

​ sort -t ‘:’ -k1 -n -r password 按照:切割并按照数值对第一列排序倒序

​ sort -t ‘:’ -k1 -n -f password 按照:切割并按照数值对第一列排序忽略大小写

​ sort -t ‘:’ -k1 -n -f -u password 按照:切割并按照数值对第一列排序忽略大小写并合并相同的行

​ wc -c profile 查看文件的字节数

​ wc -l profile 查看文件的行数

​ wc -w profile 查看文件的单词数

18.行编辑器sed

​ sed “3d” txt 删除第三行并显示其他行,不会修改源文件

​ sed “3p” txt 显示所有行并重复复显示第三行

​ sed -n “3p” txt 显示第三行

​ sed “aword” txt 在每一行下方创建一行填充内容word并显示,不会修改源文件

​ sed “iword” txt 在每一行上方创建一行填充内容word并显示,不会修改源文件

​ sed “chello world” txt 每一行替换为hello world并显示,不会修改源文件

​ sed -i “3d” txt 删除第三行,修改源文件

19.awk文本分析工具

awk -F ‘:’ ‘{print $1}’ passwd 按照:分割并打印第一列

awk -F ‘:’ ‘BEGIN{print “name,bashell”}{print $1 “,” $7}END{print “end”}’ passwd 按照:分割,打印name,bashell然后打印第一列和第七列用逗号拼接,最后打印end

awk ‘/root/ {print $0}’ passwd 打印包含root的行

awk -F ‘:’ ‘{print NR “\t” NF “\t” $0}’ passwd 按照:分割,并打印行号、行的分割数和行的内容

aaa文件内容如下:

Tom 0 2012-12-11 car 3000
John 1 2013-01-13 bike 1000
vivi 1 2013-01-18 car 2800
Tom 0 2013-01-20 car 2500
John 1 2013-01-28 bike 3500

awk ‘{split($3,date,"-");if(date[2]“01”){names[$1]+=$5};if($2"0"){types[$1]=“Manager”}else{types[$1]=“woker”}} END{for (i in names) print i “\t” types[i] “\t” names[i]}’ aaa 统计每个人一月份发的工资

结果:

vivi woker 2800
Tom Manager 2500
John woker 4500

abc.in文件内容如下

{
split($3,date,"-");
if(date[2]“01”){
names[$1]+=$5
};
if($2
"0"){
types[$1]=“Manager”
}else{
types[$1]=“woker”
}
} END{
for (i in names)
print i “\t” types[i] “\t” names[i]
}

awk -f abc.in aaa

结果如下:

vivi woker 2800
Tom Manager 2500
John woker 4500

20.用户与权限

useradd ss 添加用户

userdel ss 删除用户

rm -rf /home/ss 删除家目录

rm -rf /var/spool/mail/ss 删除邮件

groupadd share 添加组

useradd aaa 添加用户

useradd bbb 添加用户

useradd ccc 添加用户

passwd aaa 修改密码

usermod -G share aaa 添加到组中

usermod -G share bbb 添加到组中

id aaa 显示用户的信息,uid,gid,groups

mkdir /share 创建共享文件夹

chown root:share share/ 修改共享文件夹的所属组为share

chown :share share/ 修改共享文件夹的所属组为share

chmod g+w share/ 所属组添加写权限

chmod o-r share/ 删除其他用户的读权限

chmod o-x share/ 删除其他用户的运行权限

su aaa 切换用户,需要密码

root切换到普通用户不需要密码,普通用户之间切换需要密码

©️2020 CSDN 皮肤主题: 1024 设计师:上身试试 返回首页