如何使用命令行获取更新服务器名称?
我知道我可以从源列表文件中读取它,例如:
cat /etc/apt/sources.list
给出:
deb http://us.archive.ubuntu.com/ubuntu/ precise-updates main restricted multiverse
那我就用美国服务器。
但是我怎样才能更有效地做到这一点?
答案1
这实际上只是对您的方法的微调:
cat /etc/apt/sources.list | grep deb | cut -d' ' -f2
该cut -d' ' -f2
部分从包含单词 的行中剪切出第二列deb
。
答案2
您可以使用以下--print-uris
选项apt-get
$ sudo apt-get --print-uris update||grep Packages.bz2|awk '{print $2}'|sed -e 's/_ubuntu_dists_vivid\(-\|_\)\?/ /' -e 's/_binary-.*_Packages//'|sort -u
这将不会更新软件包列表
答案3
我从 meskobalazs 的回答中得到了这个想法。
您可以尝试在终端中运行此命令
server=$(cat /etc/apt/sources.list | grep -m 1 deb\ h) ; echo ${server:11:2}
grep -m 1
仅返回第一个匹配项。${server:11:2}
返回之后的前两个字母deb http://
。
当我运行该命令时,输出被sg
切断deb http://sg.archive.ubuntu.com/ubuntu/ trusty main restricted