一、Ubuntu的相关配置
#在默认情况下,ubuntu只能以普通用户登录;使某用户可以使用sudo的相应的配置/etc/sudoers
#我们要建立一个用户账户testuser1并设置UID为544,主目录为/home/testuser1,属于users组
#useradd -u 544 -d /home/testuser1 -g users -m testuser1 #添加用户
$ sudo passwd testuser1 #设置密码
赋予sudo的能力
$ sudo vi /etc.sudoers 或者 sudo visudo 编辑
# User privilege specification
20 root ALL=(ALL:ALL) ALL
21 lisi ALL=(ALL:ALL) ALL #将lisi加入sudoer中
Ctrl+O保存 Ctrl+X退出,但是没啥用;我使用的是:q!退出的
第二种获得sudo的方法:
root执行 usermod lisi -a -G sudo
1、网络配置
$ sudo vi /etc/network/interfaces #配置网络文件
# interfaces(5) file used by ifup(8) and ifdown(8)
2 auto lo
3 iface lo inet loopback
这两行的作用是定义并开启本地回环接口lo,一个虚拟的网络设备
lo用于接收和发送那些只在本机流转的数据包,而不是真正的网络接口。只是在本客户端跑,为拍到服务器上。
追加上以下内容
auto eth0 #自动识别并启动第0个以太网卡
iface eth0 inet static #静态获取IP 可将static变成dhcp 若dhcp的话可以不要下面的IP和路由IP子网掩码
address x.x.x.x #填写Ubuntu真实的IP地址
gateway y.y.y.y #路由器的IP地址 即网关的IP地址
netmask z.z.z.z #用户的网络的真实子网掩码 255.255.255.0是C类子网 255.255.0.0是B类子类网
Windows的cmd可使用ipconfig /all来查看
配置DNS服务器 编辑/etc/resolv.conf 编辑
4 nameserver 202.96.134.133 #网上找里自己最近的DNS的服务器的地址
5 nameserver 202.96.128.143 #该服务器是广东珠三角地区的两个服务器的地址
$ sudo vi /etc/resolvconf/resolv.conf.d/head #16.04版的编辑
$ sudo route add default gw 192.168.0.1 #添加网关地址
$ sudo /etc/init.d/networking force-reload #重启网络的命令
$ sudo /etc/init.d/networking restart
2、APT的配置
软件集散地:APT 就是多个服务器放在一个地方的一个系统APT软件在管理这个系统
Software & Update --> Download from 选择软件源服务器
#sudo apt-get update #软件源服务器
#sudo apt-get install xxx #加载和安装软件
#sudo apt-get remove xxx #卸载软件
#报错锁的解决方法
$ sudo rm /var/lib/dpkg/lock-frontend #删除锁文件
$ sudo rm /var/lib/apt/lists/lock #删除锁文件
$ sudo rm /var/cache/apt/archives/lock #删除锁的缓存文件
$ sudo dpkg --configure -a #更新锁
3、vi的使用
插件的加载ctag和Taglist的插件
$ sudo apt-get install ctags #加载ctags的插件
$ sudo apt-get install exuberant-ctags #或加载ctags插件
$ ctags -R #检索目录的所有文件而生成ctags文件
# 光标在结构体上组合键Ctrl+]的跳到定义的地方或:ts的命令
$ sudo vim /etc/vim/vimrc + #追加内容 查看库函数的函数定义方法
au BufEnter 当前目录 setlocal tags+=内核的路径
Taglist的vim插件 可显示函数列表 相关命令是:Tlist
4、开发圣典 man
开发圣典:man的类型
# 1、Shell命令
# 2、系统调用
# 3、库函数
# 4、特殊文件(通常出现在/dev目录下)
# 5、文件的特殊格式或协议(如/etc/passwd的格式)
# 6、游戏
# 7、杂项(如一些宏定义)
# 8、非标准内核例程
# 系统管理员命令(通常只能由管理员执行) 加载man手册
$ sudo apt-get install manpages
$ sudo apt-get install manpages-dev
$ sudo apt-get install manpages-posix
$ sudo apt-get install manpages-posix-dev
# 使用man
$ man -f read #read的接口使用
$ man -k username #username的函数使用
5、配置共享文件夹(smbd的服务)
# 1、共享文件的启用(VM的虚拟机设置->选项->共享文件夹启用)
$ sudo apt-get install samba下载并安装samba服务
# 2、配置samba:在
$ vim /etc/samba/smb.conf + #追加以下内容
path=/opt #路径
writable=yes #写权限开启
public=yes #公开(所有用户都可操作)
available=yes
browseable=yes
# 3、重新加载samba,并重启samba服务
$ sudo service smbd reload
$ sudo service smbd restart
二、基本shell命令的使用
1、最基本的shell命令
命令的扩展:
$ echo "alias ls='ls -t'" >> ~/.bashrc#将ls 改ls -t的命令追加在用户配置文件中(永久有效)
$ cat Pai.c -A #查看文件不可见字符 -A
$ cat Pai.c >> Pai1.c#Windows文件转变成Linux编辑文件(有暗含的转变不可输入字符的变化)
$ cd - #回到刚才目录
$ chmod u+r Pai.c #给Pai.c加上所有者的读权限
$ chmod u-w Pai.c #给Pai.c减去所有者的读权限
$ chmod u=x Pai.c #给Pai.c只赋予所有者的执行权限
$ chmod u=rw Pai.c #给Pai.c只赋予所有者的读写权限
$ chmod u=rwx,go=rw ./ -R #当前目录下及子目录的所有文件的权限为rwxrw-rw-(所有者u、所有组g、其它o)
$ chmod 664 Pai.c #664也是创建文件的默认权限,数值表示的修改方式420420400 等价于chmod u=rw,g=rw,o=r
$ chown foo file #修改文件的所属者为foo
$ chown :bar file #修改文件的所属组为bar
$ chown foo:bar file #修改文件的所属者和所属组为foo和bar
$ cp A/ B/ -r #将A目录下的所有文件递归复制到B目录下(B目录没有,直接创建)
$ cp dfs jj -i #文件内有内容则询问一下
$ df -h #查看文件系统(包括U盘或光盘的挂载信息)
$ diff A/ B/ -urNB > B.patch #将A目录和B目录的不同存放在B.patch中;u:使用“合并的格式”来输出文件差异信息。r:递归的对比每个子目录的文件。N:将不存在的文件视为空文件。B忽略由空行引起的差异。”-”表修改前的文件,“+”表修改后的文件。@@包括的是修改行号的说明,-3,6表修改前文件的3到6行,+3,7表修改后文件的3到7行。
$ patch -p1 < ../B.patch #忽略B补丁文件的一级分量;-p2需要忽略两级分量,-p0不需要忽略分量
$ sudo dpkg -i example.deb #手动安装软件example;以后缀.deb的是手动安装包
$ echo "hello\nworld!" #全是字符串不转义 但有一个换行(echo自带的最后换行)
$ echo -n "hello\nworld!" #字符串不转义不换行,最后一个echo的换行也不换行
$ echo -e "hello\nworld!" #字符串带转义,有两次换行,\n一次。echo自带的一次换行
$ sudo updatedb #更新数据库信息,使用locate方式查找不find -name快很多但使用以前要更新数据库,必要要最新的,不软新建的文件找不到
$ locate /mnt/hgfs/ubuntu_dir/ C* #查找含C*的文件或目录 #locate 路径 匹配值
$ find /opt/nfs -name "*.c" #find通过名字查找所有c文件
$ find /opt/nfs -empty #查找该目录下所有空的文件和文件夹
$ find /opt/nfs -size 4k #find根据文件大小4k查询 find /opt/ -size n[cwbkMG]
$ find /opt/nfs -executable #find查找该目录下所有可执行文件
$ find /opt/nfs -mmin 3 #查找n分钟之前修改过的文件
$ find /opt/nfs -type b #find根据类型查文件 find /opt/nfs -type [bcdpfls]
$ find /opt/nfs -uid 400 #根据用户ID查找的文件 id命令可查看
$ find . -type d -atime 7 #找在当前路径7天前的被访问的所有目录文件
$ find . -type d -atime +7 #找在当前路径7天前的被访问的所有目录文件
$ find . -type f -atime -7 #找在当前路径7天内的被访问的所有普通文件
$ find / -user gec -exec cp -a {
} /root/gec/ \; #管理员root权限的find
#解释在整个文件系统中找出所有者为gec的文件并复制到/root/gec中;“-exec {} \;”参数,
#其中的{}表示find查找的每个文件,并且命令的结尾必须是“\”。
2、find、chmod、chown、lsattr、chattr命令的介绍
# chattr +a chattr.txt #管理员执行该命令,不仅允许覆盖/删除内容,只要追加内容
# lsattr chattr.txt #管理员查看隐藏权限
$ sudo chattr -a chattr.txt #减去文件chattr.txt的a的权限(+是赋予,-是取消)
$ touch {
1,2,3}.txt #同时创建1.txt,2.txt,3.txt
$ chown root test #将所有者修改成root
$ chown ZZM.MA test #将test文件的所有组和所有者修改成MA和MJH(.)
$ chown ZZM:MA test #将test文件的所有组和所有者修改成MA和MJH(:)
$ chown -R wangwu:wa test #将test文件及其test下的所有目录及文件修改成属组和属主 为 wa和wangwu
$ chgrp root test #修改文件test所属组为root
chown [选项] 用户 [:组 或 .组] 文件或目录 #chown的用法