Linux系统常用命令
1、远程连接Linux
# 查看ip地址: ip addr
# 远程登录Linux系统
ssh root@ip地址
# 断开连接
exit
# 重启系统
reboot
# 立即关机
shutdown -h now
# 十分钟之后关机
shutdown -h 10
2、文件操作
# 切换目录
cd # 全称change directory
# 例如:
cd local # 切换到子目录local
cd /usr/local # 切换到目录/usr/local
cd ..
# 打印当前工作目录
pwd
# 新建文件
touch
# 例如:
touch 1.txt # 创建单个
touch test{01..10}.txt # 批量创建文件
touch /root/4.txt # 在指定的/root目录下,创建文件4.txt
# 查看目录下文件
ls # 全程list
# 例如:
ls test09.txt #查看test09.txt是否存在
ls *.txt # 查看以txt结尾的所有文件
ls -1 # 以一行一个文件的方式显示
ls -a al # 查看所有文件,包括隐藏文件
la -a -1 # 查看所有文件,以一行一个来显示
以"."开头的文件是隐藏文件,默认不显示
# 重命名
mv # 全称move
# 例如:
mv .123.txt 123.txt # 将.123.txt文件重命名为123.txt
mv 123.txt /opt # 将当前目录下的123.txt移动到/opt日录下
# 复制
cp # 全称copy
# 例如:
cp test0l.txt /opt/ # 将当前目录下的test01.txt复制到/opt日录下
cp -a dev04 /opt/ # 将目录dev04复制到/opt下
# 删除
例如:
rm /opt/123.txt # 将/opt目录下的123.txt文件删除,需要回复y确认删除
rm -f /opt/test01.txt # 将/opt目录下的test01.txt文件删除,不需要回复
# 删除一个目录,1inux的参数大部分没有先后顺序
rm -fr dev
rm -rf dev01
rm -f -r dev02
rm -r -f dev03
# 创建文件夹 创建目录directory
mkdir # 全称make directory
# 例如:
mkdir dev #创建一个dev目录
mkdir dev{01..10} #批量创建多个目录
mkdir-p1/2/3/4/5/6 #一次性创建多级子目录
# vi编辑器
# 例如:
vi test03.txt #编辑文件test03.txt
默认是常规模式,按ioa键进入编辑模式
在编辑模式中按esc回到常规模式
常规模式按:进入命令模式
命令模式按esc回到常规模式
# 从上往下顺序查看文本内容
cat
# 例如:
cat test03.txt # 查看test03.txt的全部内容
# 从下往上倒着查看文本内容
tac
# 例如:
tac test03.txt # 倒着查看test03.txt的全部内容
#查看文件倒数几行
tail
# 例如:
tail test03.txt # 查看文件的倒数十行,默认
tail -n -5 test03.txt # 查看文件的倒数5行
tail -5 test03.txt # 查看文件的倒数5行
3、管道
root@stara-virtual-machine:~/桌面# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000link/ether 00:0c:29:6a:66:d1 brd ff:ff:ff:ff:ff:ffaltname enp2s1inet xxx.xxx.xx.xxx/24 brd 192.168.88.255 scope global dynamic noprefixroute ens33valid_lft 1775sec preferred_lft 1775secinet6 fe80::8d8b:3f4f:84e8:490f/64 scope link noprefixroute valid_lft forever preferred_lft forever
root@stara-virtual-machine:~/桌面# ip addr|tail -4inet xxx.xxx.xx.xxx/24 brd xxx.xxx.xx.xxx scope global dynamic noprefixroute ens33valid_lft 1631sec preferred_lft 1631secinet6 fe80::8d8b:3f4f:84e8:490f/64 scope link noprefixroute valid_lft forever preferred_lft forever
root@stara-virtual-machine:~/桌面# ip addr|tail -4|head -1inet xxx.xxx.xx.xxx/24 brd xxx.xxx.xx.xxx scope global dynamic noprefixroute ens33
root@stara-virtual-machine:~/桌面# ip addr|tail -4|head -1|cut -c 10-19
xxx.xxx.xx
4、目录结构
相对路径:从所在目录开始
绝对路径:从根开始
/bin # 存放二进制的可执行文件,命令,特别重要,不能删除!
/boot # 开机启动需要的文件,特别重要,不能删除!
/dev # device设备文件,特别重要,不能删除!
/etc # 存放配置文件,特别重要,不能删除!
/home # 普通用户的家目录
/1ib # library 32位库,一般是so结尾,特别重要,不能删除!
/1ib64 # 1ibrary 64位库,一般是so结尾,特别重要,不能删除!
/media # 多媒体(音乐 视频 文档)
/mnt # mount挂载光盘,U盘
/opt # 部分软件安装存储目录
/proc # process进程,特别重要,不能删除!
/root # root用户的家目录,特别重要,不能删除!
/run # 运行,程序运行的时候产生的文件
/sbin # super bin超级用户才能使用的命令,特别重要,不能删除!
/srv # 源代码
/sys # system系统目录,特别重要,不能删除!
/tmp # 用来存放临时文件的看录
/usr # 用户级的目录,特别重要、不能删除
/var # variable 变化的文件,特别重要,不能删除!
# 统计
wc
wc -l # 按行统计,不会单独使用,需要接在管道后面
# 例如:
cat test03.txt |wc -l
cat -n test03.txt
# 生成数字序列
seq
# 例如:产生一个5-12的序列
seq 5 12
# 例如:产生一个5-12等宽的序列
seq -w 5 12# 演示如下:
root@stara-virtual-machine:~/桌面# seq 5 12
5
6
7
8
9
10
11
12
root@stara-virtual-machine:~/桌面# seq -w 5 12
05
06
07
08
09
10
11
12
# 按行过滤字符串
grep
# 例如:普通过滤
grep '3' test03.txt
# 例如: 显示行号
grep -n '3' test03.txt
grep精准匹配-w
# 按列过滤
awk
# 例如1:取列,$1代表第一列,$2代表第二列,$NF代表最后一列
[root@localhost ~]# cat test01.txt
row 1, cell 1 row 1, cell 2
row 2, cell 1 row 2, cell 2
[root@localhost ~]# awk '{print $1}' test01.txt
row
row
[root@localhost ~]# awk '{print $2}' test01.txt
1,
2,
# 例如2:以逗号,做分隔符
[root@localhost ~]# cat test01.txt
row 1, cell 1 row 1, cell 2
row 2, cell 1 row 2, cell 2
[root@localhost ~]# awk -F ',' '{print $1}' test01.txt
row 1
row 2
[root@localhost ~]# awk -F ',' '{print $NF}' test01.txt
cell 2
cell 2
# 排序
sort
# 例如:
[root@localhost ~]# cat test02.txt
3
2
6
4
8
7
5
3
2
1
2
3
4
5
6
9
1
5
7
[root@localhost ~]# cat test02.txt|sort -n
1
1
2
2
2
3
3
3
4
4
5
5
5
6
6
7
7
8
9
# 统计去重
uniq
# 例如:
[root@localhost ~]# cat test02.txt|sort -n
1
1
2
2
2
3
3
3
4
4
5
5
5
6
6
7
7
8
9
[root@localhost ~]# cat test02.txt|sort -n|uniq -c2 13 23 32 43 52 62 71 81 9
5、用户和用户组管理
# 创建用户
useradd
# 创建一个用户
# 例如1:
useradd test1
# 创建用户,并给用户指定用户组
# 例如2:
[root@localhost tmp]# useradd -g test1 test3
[root@localhost tmp]# id test3
uid=1002(test3) gid=1000(test1) 组=1000(test1)
# 设置密码
passwd
# 例如1:passwd test1
# 用root用户给普通用户修改密码
[root@localhost ~]# passwd test1
更改用户test1的密码
新的密码:123456
无效的密码:密码是一个回文
重新输入新的密码:123456
passwd:所有的身份验证令牌已经成功更新。
# 例如2:普通用户自己修改密码
[test1@localhost ~]$ passwd
更改用户test1 的密码。
为test1更改STRESS密码。
(当前)UNIX 密码:
新的密码:
无效的密码:密码少于8个字符
新的密码:
无效的密码:密码少于8个字符
新的密码:
无效的密码:密码未通过字典检查-过于简单化/系统化
passwd:已经超出服务重试的最多次数
123@qq.com
# 例如3:交互修改密码
echo 123456|passwd --stdin test1
# 检查用户是否存在
id
# 例如:用户存在,系统的返回结果
[root@localhost ~]# id test1
uid=1000(test1) gid=1000(test1) 组=1000(test1)[root@localhost ~]# id test2
id:test2:no such user
# 删除用户
userdel
# 例如: