我爱编程

《笨办法学Linux》学习笔记

2018-04-15  本文已影响24人  盗花

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程序。

上一篇下一篇

猜你喜欢

热点阅读