目录
1. ifconfig, ping
ifconfig 网卡配置
farsight@ubuntu:~/test$ ifconfig # 查看活动网卡信息
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.90.15 netmask 255.255.255.0 broadcast 192.168.90.255 # IPv4 地址,子网掩码,广播地址
inet6 fe80::26f3:dee9:6043:42c2 prefixlen 64 scopeid 0x20<link> # IPv6 地址
ether 00:0c:29:de:6d:74 txqueuelen 1000 (Ethernet) # 网卡硬件地址
RX packets 620149 bytes 194769983 (194.7 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 10461 bytes 1064706 (1.0 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 19 base 0x2000
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 1202 bytes 122035 (122.0 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1202 bytes 122035 (122.0 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ens33 是网卡名
lo 是本地环回网卡,发送到这个网卡上的信息还可以读取回来
farsight@ubuntu:~/test$ ifconfig ens33 # 查看 ens33 网卡信息
farsight@ubuntu:~/test$ ifconfig -a # 查看所有网卡信息,包含不活动的网卡
farsight@ubuntu:~/test$ ifconfig ens33 down # 普通用户不能关闭网卡
SIOCSIFFLAGS: Operation not permitted
farsight@ubuntu:~/test$ sudo ifconfig ens33 down # 管理员身份关闭网卡
[sudo] password for farsight:
farsight@ubuntu:~$ sudo ifconfig ens33 up # 打开网卡
[sudo] password for farsight:
farsight@ubuntu:~$ sudo ifconfig ens33 192.168.90.215 # 修改 IP 地址,这是临时修改,下次重启恢复
window 下有类型的命令:ipconfig
ping 测试与远程主机的网络是否连通
farsight@ubuntu:~$ ping 192.168.90.166 -c 4 # 指定 IP,-c 4 测试 4 个包,不带 -c 则一直测试下去,可以用 CTL+C 停止
PING 192.168.90.166 (192.168.90.166) 56(84) bytes of data.
64 bytes from 192.168.90.166: icmp_seq=1 ttl=128 time=0.155 ms # 发送的是 ICMP 包
64 bytes from 192.168.90.166: icmp_seq=2 ttl=128 time=0.178 ms
^C
--- 192.168.90.166 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1016ms
rtt min/avg/max/mdev = 0.155/0.166/0.178/0.017 ms
farsight@ubuntu:~$ ping baidu.com -c 4 # 指定域名
PING baidu.com (110.242.68.66) 56(84) bytes of data.
64 bytes from 110.242.68.66 (110.242.68.66): icmp_seq=1 ttl=50 time=39.0 ms
64 bytes from 110.242.68.66 (110.242.68.66): icmp_seq=2 ttl=50 time=40.5 ms
64 bytes from 110.242.68.66 (110.242.68.66): icmp_seq=3 ttl=50 time=41.4 ms
64 bytes from 110.242.68.66 (110.242.68.66): icmp_seq=4 ttl=50 time=39.4 ms
--- baidu.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3005ms
rtt min/avg/max/mdev = 39.063/40.134/41.481/0.952 ms
2. man, info, clear
man, info 查看帮助手册 info 比 man 更细致,但一般还是用 man 更多些。
farsight@ubuntu:~$ man 3 printf # 查看第 3 章中的 printf() 函数
farsight@ubuntu:~$ man 1 printf # 查看第 1 章中的 printf 命令
farsight@ubuntu:~$ man -a printf # 查看所有章节中的 printf
--Man-- next: printf(3) [ view (return) | skip (Ctrl-D) | quit (Ctrl-C) ] # 退出第 1 章后,回车选择下一章,Ctrl-D 跳过下一章,Ctrl-C 结束
farsight@ubuntu:~$ man printf # 查看第一个章节中的 printf
farsight@ubuntu:~$ man -k printf # 查看包含 printf 的章节条目
asprintf (3) - print to allocated string
dprintf (3) - formatted output conversion
fprintf (3) - formatted output conversion
fwprintf (3) - formatted wide-character output conversion
printf (1) - format and print data
printf (3) - formatted output conversion
snprintf (3) - formatted output conversion
sprintf (3) - formatted output conversion
swprintf (3) - formatted wide-character output conversion
vasprintf (3) - print to allocated string
vdprintf (3) - formatted output conversion
vfprintf (3) - formatted output conversion
vfwprintf (3) - formatted wide-character output conversion
vprintf (3) - formatted output conversion
vsnprintf (3) - formatted output conversion
vsprintf (3) - formatted output conversion
vswprintf (3) - formatted wide-character output conversion
vwprintf (3) - formatted wide-character output conversion
wprintf (3) - formatted wide-character output conversion
手册包含 9 章:
1 Executable programs or shell commands # 可执行程序或 SHELL 命令
2 System calls (functions provided by the kernel) # 系统调用,Linux 内核的 API
3 Library calls (functions within program libraries) # 库函数
4 Special files (usually found in /dev) # 特殊文件
5 File formats and conventions eg /etc/passwd # 数据库文件
6 Games # 游戏
7 Miscellaneous (including macro packages and conventions), e.g. # 杂项
man(7), groff(7)
8 System administration commands (usually only for root) # 管理员命令
9 Kernel routines [Non standard] # 内核例程
clear 清屏
3. apt, apt-get 下载、安装、更新、卸载包
farsight@ubuntu:~$ apt --help
apt 1.6.14 (amd64)
Usage: apt [options] command
apt is a commandline package manager and provides commands for
searching and managing as well as querying information about packages.
It provides the same functionality as the specialized APT tools,
like apt-get and apt-cache, but enables options more suitable for
interactive use by default.
Most used commands: # 常用子命令
list - list packages based on package names
search - search in package descriptions
show - show package details
install - install packages # 安装,常用
remove - remove packages # 卸载,常用
autoremove - Remove automatically all unused packages # 卸载不用的包,常用
update - update list of available packages # 更新可用包列表,常用
upgrade - upgrade the system by installing/upgrading packages # 系统升级
full-upgrade - upgrade the system by removing/installing/upgrading packages
edit-sources - edit the source information file
farsight@ubuntu:~$ sudo apt install vim # 安装 vim 命令
4.vim 文本编程器
三种模式
命令模式,插入模式,末行模式,它们之间必须通过 命令模式 进行切换:
插入模式 <--> 命令模式 <--> 末行模式
打开一个文件就进入 命令模式。
farsight@ubuntu:~$ vim # 不带文件名,匿名文件,需要在保存时提供名称
farsight@ubuntu:~/test$ vim 2.txt # 带文件名,则会以此名称保存。如果文件不存在就新建,存在就打开
编辑多个文件
farsight@ubuntu:~/test$ vim 1.txt 2.txt -O # -O 从左到右排列文件
2 files to edit
farsight@ubuntu:~/test$ vim 1.txt 2.txt -o # -o 从上到下排列文件
2 files to edit
farsight@ubuntu:~/test$ vim 1.txt 2.txt -p # -p 标签方式排列文件
farsight@ubuntu:~/test$ vim +200 stdio.h # 打开文件并定位到 200 行
在 VIM 的末行模式下:
:split 1.txt 以从上到下方式排列文件
:vsplit 1.txt 以从左到右方式排列文件
:tabe 1.txt 以标签方式排列文件
:set cuc 设置光标所在列标记
:set cul 设置光标所在行下划线
:set cc=80 设置列标
:set co=90 设置屏幕宽度
5. chmod, chown, chgrp
chmod 修改文件权限
两种模式:
. 字符模式,[ugoa][+-=][rwx],u 所有者,g 所属组,o 其他用户,a 所有用户;+ 增加,- 去掉,= 设置
数字模式: 用 "八进制数" 表示权限,如:
rw-rw-r-- --> 二进制:110110100 --> 八进制:664
farsight@ubuntu:~/test$ chmod g+w,o+w stdio.h # 所属组和其他用户都增加写权限,多个模式用逗号分隔
farsight@ubuntu:~/test$ chmod go-w stdio.h # 所属组和其他用户都去掉写权限
farsight@ubuntu:~/test$ chmod g=rw stdio.h # 所属组设置读写权限
farsight@ubuntu:~/test$ chmod 644 stdio.h # 设置权限为 rw-r--r--
farsight@ubuntu:~/test$ chmod 777 stdio.h # 设置权限为 rwxrwxrwx
farsight@ubuntu:~/test$ sudo chmod -R 777 d2 # -R 递归设置目录级其子目录的权限
farsight@ubuntu:~/test$ chmod --reference=stdio.h 1.txt # 参考 stdio.h 的权限来设置 1.txt 的权限
chown, chgrp 更改所有组和所属组
farsight@ubuntu:~/test$ sudo chown root:root 1.txt # 设置为 root 用户 root 组
farsight@ubuntu:~/test$ sudo chown farsight 1.txt # 只改所有者而不改所属组
farsight@ubuntu:~/test$ sudo chown :farsight 1.txt # 只改所属组而不改所有者
farsight@ubuntu:~/test$ sudo chgrp root 1.txt # 改所属组
farsight@ubuntu:~/test$ sudo chown -R :root d2 # -R 递归更改
farsight@ubuntu:~/test$ sudo chown --reference=1.txt 2.txt # 参考 1.txt 来更改 2.txt 的所属组
6. passwd, su
passwd 更改密码
超级用户可以更改所有人的密码。
普通用户只能更改自身密码,并且对密码有限制,太简单不行,太相似也不行。
farsight@ubuntu:~/test$ passwd
Changing password for farsight.
(current) UNIX password: # 输入原密码 123456
Enter new UNIX password: # 输入新密码 654321
Retype new UNIX password: # 确认新密码 654321
Bad: new and old password are too similar # 报告太相似,不通过
Enter new UNIX password: # 输入新密码 abcdef
Retype new UNIX password: # 确认新密码 abcdef
Bad: new password is too simple # 报告太简单,不通过
Enter new UNIX password: # 输入复杂密码 1q2w3e4r
Retype new UNIX password: # 确认复杂密码 1q2w3e4r
passwd: password updated successfully # 通过
farsight@ubuntu:~/test$ sudo passwd farsight # 以管理员身份更改 farsight 的密码
Enter new UNIX password: # 输入新密码 123456,没有限制
Retype new UNIX password:
passwd: password updated successfully # 通过
su 更改用户 ID 或切换为超级用户
farsight@ubuntu:~/test$ sudo passwd root # 更改超级用户密码
Enter new UNIX password: # 新密码为 1
Retype new UNIX password:
passwd: password updated successfully
farsight@ubuntu:~/test$ su # 切换为超级用户,输入超级用户的密码
Password:
root@ubuntu:/home/farsight/test# su farsight # 切换为 farsight 用户,由于是超级用户切换的,因此不用输入密码,否则需要输入密码