Linux的学习配置和命令(Ubuntu)

一、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的用法

猜你喜欢

转载自blog.csdn.net/weixin_44763594/article/details/125749283