《笨办法学Linux》学习笔记
1.vim
less中查看包含某些内容的行
在输入less <file>后,输入&enable<ENTER>,则只显示包含enable的行。再次输入&<ENTER>后,退出过滤状态。
2.一次性创建5个文件
touch t{1,2,3,4,5}
说明,{}表示扩展,上面的表达式类似touch t1 t2 t3 t4 t5
。{}除了用于touch命令,还可用于多个其他命令。
3.把连续重复的字符替换为单独一个字符
tr -s <字符>
示例:
⇒ ls -al
drwxr-xr-x 35 DQ staff 1190 4 15 22:44 .
drwxr-xr-x 5 DQ staff 170 4 15 19:33 ..
-rw-r--r--@ 1 DQ staff 6148 3 5 2017 .DS_Store
drwxr-xr-x 8 DQ staff 272 9 18 2017 .idea
⇒ ls -al | tr -s ' '
drwxr-xr-x 35 DQ staff 1190 4 15 22:44 .
drwxr-xr-x 5 DQ staff 170 4 15 19:33 ..
-rw-r--r--@ 1 DQ staff 6148 3 5 2017 .DS_Store
drwxr-xr-x 8 DQ staff 272 9 18 2017 .idea
4.分割字段并输出
cut -d <字符> -f <数字>
-d, --delimiter=DELIM
使用 DELIM 取代 TAB 做 字段(field) 分隔符
-f, --fields=LIST
输出 这些 字段
示例:使用空格分割字段,并输出第8、第9个字段
⇒ ls -al | tr -s ' ' | cut -d ' ' -f 8,9
22:44 .
19:33 ..
2017 .DS_Store
2017 .idea
5.任务放置于后台与唤醒至前台
程序正在运行中,输入ctrl + z
后,程序将被放置于后台运行,但此时程序实际上处于停止状态,输入bg
后,程序在后台处于运行状态;输入fg
后,程序将被唤醒至前台运行;输入jobs
后,查看后台运行的任务数量及状态。
6.忽略错误信息
2> /dev/null
解释如下:
其中:
0 —— stdin(标准输入)
1 —— stdout (标准输出)
2 —— stderr (标准错误)
示例:
没有加入2>/dev/null之前:
virtual-machine:/etc$ find /etc/ -type d -name 'rc*'
/etc/rc5.d
find: `/etc/vmware-tools/GuestProxyData/trusted': 权限不够
/etc/rcS.d
find: `/etc/cups/ssl': 权限不够
/etc/rc6.d
/etc/rc0.d
/etc/rc1.d
find: `/etc/polkit-1/localauthority': 权限不够
find: `/etc/ssl/private': 权限不够
/etc/rc4.d
/etc/rc2.d
/etc/rc3.d
加入2>/dev/null之后:
virtual-machine:/etc$ find /etc/ -type d -name 'rc*' 2>/dev/null
/etc/rc5.d
/etc/rcS.d
/etc/rc6.d
/etc/rc0.d
/etc/rc1.d
/etc/rc4.d
/etc/rc2.d
/etc/rc3.d
7.开机启动信息
1)显示开机启动信息
rcconf --list
dh-virtual-machine:~$ rcconf --list
kerneloops on
procps on
bluetooth on
tor on
lightdm on
console-setup on
irqbalance on
x11-common on
keyboard-setup on
cups on
unattended-upgrades on
rsync on
cron on
avahi-daemon on
speech-dispatcher on
ufw on
whoopsie on
saned on
udev on
thermald on
anacron on
brltty on
apport on
dbus on
checkroot-bootclean.sh on
apparmor on
vmware-tools on
resolvconf on
plymouth on
rsyslog on
kmod on
uuidd on
ondemand on
vmware-tools-thinprint on
acpid on
pppd-dns on
alsa-utils on
grub-common on
plymouth-log on
cups-browsed on
network-manager off
需要先安装rcconf。
2)禁用开机启动项
sudo update-rc.d <启动项> disable
示例:
禁用tor的开机启动
dh-virtual-machine:~$ sudo update-rc.d tor disable
[sudo] dh 的密码:
dh-virtual-machine:~$ rcconf --list
apparmor on
cron on
bluetooth on
kerneloops on
brltty on
speech-dispatcher on
udev on
rsync on
ondemand on
lightdm on
whoopsie on
x11-common on
plymouth-log on
acpid on
vmware-tools-thinprint on
alsa-utils on
resolvconf on
saned on
unattended-upgrades on
kmod on
pppd-dns on
vmware-tools on
plymouth on
rsyslog on
cups on
console-setup on
thermald on
checkroot-bootclean.sh on
anacron on
irqbalance on
procps on
ufw on
apport on
avahi-daemon on
keyboard-setup on
dbus on
grub-common on
cups-browsed on
uuidd on
tor off # 注意此处tor已经被禁用
network-manager off
3)启用开机启动项
sudo update-rc.d <启动项> enable
示例:
启用tor开机启动
dh-virtual-machine:~$ sudo update-rc.d tor enable
dh-virtual-machine:~$ rcconf --list
cups on
acpid on
keyboard-setup on
x11-common on
saned on
unattended-upgrades on
rsyslog on
ondemand on
irqbalance on
whoopsie on
uuidd on
kmod on
tor on # 注意此处tor开机启动了
dbus on
plymouth-log on
vmware-tools on
avahi-daemon on
brltty on
apport on
bluetooth on
udev on
alsa-utils on
cups-browsed on
checkroot-bootclean.sh on
rsync on
procps on
console-setup on
plymouth on
pppd-dns on
anacron on
lightdm on
ufw on
grub-common on
speech-dispatcher on
thermald on
cron on
resolvconf on
vmware-tools-thinprint on
kerneloops on
apparmor on
network-manager off
8.系统日志文件会越来越大,占满磁盘空间吗?
如果日志文件留给自己,它们往往会变得非常大,并且消耗所有可用的磁盘空间,所以有一种称为轮替的机制。默认情况下,这种机制通常只保留最后 7 天的日志文件,包括今天。
9.实时查看文件变化内容
tail -f <文件名称>
10.root用户的切换
切换为root用户
sudo -s
退出root用户
exit
11.创建包含子文件夹的文件夹
增加上-p参数即可:
mkdir -p /<dir>/<children_dir>
12.查看文件的依赖关系
ldd <文件>
示例:
virtual-machine:~$ ldd /bin/bash
linux-vdso.so.1 => (0x00007ffc4ddb6000)
libtinfo.so.5 => /lib/x86_64-linux-gnu/libtinfo.so.5 (0x00007fa33602f000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fa335e2b000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fa335a61000)
/lib64/ld-linux-x86-64.so.2 (0x00007fa336258000)
13.tar
-c: 建立压缩档案
-x:解压
-t:查看内容
-r:向压缩归档文件末尾追加文件
-u:更新原压缩包中的文件
这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。
下面的参数是根据需要在压缩或解压档案时可选的。
-z:有gzip属性的
-j:有bz2属性的
-Z:有compress属性的
-v:显示所有过程
-O:将文件解开到标准输出
下面的参数-f是必须的
-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。
14.更改文件权限
chmod <xxx> <file>
示例:
dh@dh-virtual-machine:~$ touch gua
dh@dh-virtual-machine:~$ ls -l gua
-rw-rw-r-- 1 dh dh 0 4月 21 10:25 gua
dh@dh-virtual-machine:~$ chmod 777 gua
dh@dh-virtual-machine:~$ ls -l gua
-rwxrwxrwx 1 dh dh 0 4月 21 10:25 gua
15.更改文件所有者
chown <所有者名称> <file>
示例:
dh@dh-virtual-machine:~$ touch test.txt
dh@dh-virtual-machine:~$ sudo chown root test.txt # 更改文件所有者
dh@dh-virtual-machine:~$ ls -l test.txt
-rw-rw-r-- 1 root dh 0 4月 21 10:32 test.txt # 所有者变成root用户
dh@dh-virtual-machine:~$ chmod 644 test.txt
chmod: 更改'test.txt' 的权限: 不允许的操作 # 当前的用户组dh不具备操作的权限
dh@dh-virtual-machine:~$ sudo chmod 644 test.txt
dh@dh-virtual-machine:~$ ls -l test.txt
-rw-r--r-- 1 root dh 0 4月 21 10:32 test.txt
dh@dh-virtual-machine:~$ echo 'test111' > test.txt
bash: test.txt: 权限不够 # 当前的用户组不具备更改文件的权限
16.查看网络主机之间的连通性
ping命令用来测试主机之间网络的连通性。执行ping指令会使用ICMP传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运作正常。
ping <目标主机地址> <选项>
目标主机地址可以为IP地址,或者为普通的网络地址,如baidu.com或者www.baidu.com,注意不要加http://。
常用的选项有:
-c <数字>:表示发送了<数字>个包后自动停止ping程序。