东东东 陈煜东的博客

分类存档: Linux ( 2 / 2)

通过SSH创建私有git仓库

开源的代码能找到第三方的git仓库存放代码,但是私有的代码却不能放在那上面。而且对于免费私有的git仓库来说,还是比较不方便的。

有了自己的Linux服务器,那么就可以自己创建一个私有的git仓库了。接下来,就讲讲如何创建自己的私有的git仓库。

在Linux服务器上

第一步,先创建一个专门由于git仓库的一个账号吧,这样也方便进行管理。可以参考这篇文章Linux新建用户的命令

#新建一个git用户组
sudo groupadd git

#新建一个git用户,创建目录,并禁止shell登录,添加到git用户组
sudo useradd git -m -s /sbin/nologin -d /home/git -g git 

第二步,新建一个git仓库,这个仓库叫“git bare repository”,git裸仓库。

$ mkdir repo.git
$ chown -R git:git repo.git #改权限
$ cd repo.git
$ git --bare init
Initialized empty Git repository in /home/ams/repo.git/

这个仓库和本地的那个不一样,可以发现本地的那个仓库有在project下有一个.git的目录,而project下还有自己的代码。但是这个git裸仓库它没有自己的project,他只有和本地.git目录下一样的内容。

在客户端下

使用TortoiseGit图形界面,使用portable git内核。

第一步,右键目录,选择git 克隆,然后如图设置

git clone 仓库

第二步,在确定后,会出来一个密码提示框,让输入密码。

第三步,就等待下载结束,这样本地就能有一个本地仓库了。

总结:这样一个最简单简易的git私有仓库就建好了,本地可以继续向服务器提交代码,但是也需要密码才能。

声明:未经允许禁止转载 东东东 陈煜东的博客 文章,谢谢。如经授权,转载请注明: 转载自东东东 陈煜东的博客

本文链接地址: 通过SSH创建私有git仓库 – https://www.chenyudong.com/archives/git-over-ssh-create-private-repository.html

分类: Linux

Linux添加、创建新用户

给Linux添加新用户,新建用户,新建帐号

添加用户组

sudo groupadd groupname

添加用户

sudo useradd username -m -s /sbin/nologin -d /home/username -g groupname
-s /sbin/nologin 设置不能登陆 -s /bin/false(老方法) 也行
-d 设置用户主目录
-g 用户组
-m 创建用户目录

useradd的具体参数为

[root@317304 ~]# useradd --help
Usage: useradd [options] LOGIN

Options:
  -b, --base-dir BASE_DIR       base directory for the home directory of the
                                new account
  -c, --comment COMMENT         GECOS field of the new account
  -d, --home-dir HOME_DIR       home directory of the new account
  -D, --defaults                print or change default useradd configuration
  -e, --expiredate EXPIRE_DATE  expiration date of the new account
  -f, --inactive INACTIVE       password inactivity period of the new account
  -g, --gid GROUP               name or ID of the primary group of the new
                                account
  -G, --groups GROUPS           list of supplementary groups of the new
                                account
  -h, --help                    display this help message and exit
  -k, --skel SKEL_DIR           use this alternative skeleton directory
  -K, --key KEY=VALUE           override /etc/login.defs defaults
  -l, --no-log-init             do not add the user to the lastlog and
                                faillog databases
  -m, --create-home             create the user's home directory
  -M, --no-create-home          do not create the user's home directory
  -N, --no-user-group           do not create a group with the same name as
                                the user
  -o, --non-unique              allow to create users with duplicate
                                (non-unique) UID
  -p, --password PASSWORD       encrypted password of the new account
  -r, --system                  create a system account
  -s, --shell SHELL             login shell of the new account
  -u, --uid UID                 user ID of the new account
  -U, --user-group              create a group with the same name as the user
  -Z, --selinux-user SEUSER     use a specific SEUSER for the SELinux user mapping

更改用户登录权限

在增加了-s /sbin/nologin 参数后,那么这个帐号就不能登陆了,如果想要恢复登陆使用

sudo usermod -s /bin/bash username

禁用用户登录权限

sudo usermod -s /sbin/nologin username

设置密码

给用户设置密码,这样帐号就能使用了。

sudo passwd username

删除用户

删除用户

sudo userdel username

声明:未经允许禁止转载 东东东 陈煜东的博客 文章,谢谢。如经授权,转载请注明: 转载自东东东 陈煜东的博客

本文链接地址: Linux添加、创建新用户 – https://www.chenyudong.com/archives/linux-add-new-userer.html

分类: Linux

在虚拟机中安装CentOS操作系统

打算在虚拟机中安装一个centos,然后用来学习服务器的配置,也算是为了将来买vps的准备吧,反正内存也比较大,尽管我自己使用的Ubuntu,但是不想乱安装软件,还是用来虚拟机来,免的捣鼓坏了可以快速还原。

下载centos光盘安装镜像

下载Centos的iso源文件, 我是在USTC上下载的,下载地址为http://mirrors.ustc.edu.cn/centos/6.3/isos/x86_64/CentOS-6.3-x86_64-minimal.iso

在虚拟机中安装centos

在虚拟机中新建一个Linux系统,并在虚拟光盘中添加iso文件,运行虚拟机,进入系统。

  1. 运行后,有个选项,选择”Install or upgrade an existing system”,等待一系列检查,
  2. 有一个”Disc found”,检测光盘是否完整,一般没用,我选择跳过了。然后继续等待。
  3. 出现”Welcome to CentOS!”,选择”OK”。
  4. 在”Language Selection”语言选择中,我选择默认的英语”English”。
  5. 在”Keyboard Selection”键盘选择,默认”us”。
  6. “Time Zone Selection”时区选择,我选择”Asia/Shanghai”上海。
  7. 输入root密码。
  8. 选择分区,我将整块硬盘都使用了。然后又是等待,这次等待时间较长。不过它怎么就从网上下载东西呢,果断断网。貌似不结束,重启,唉。 估计得等到连接超时才跳过。
  9. 安装完后,重启计算机,就可以使用root用户登录了。

使用root账户登录成功。

系统默认使用DHCP获得ip,虚拟机中使用的是NAT转换,不支持ipv6,我使用桥接功能,这样我能使用ipv6。

接下来要安装一下ssh服务器功能。

声明:未经允许禁止转载 东东东 陈煜东的博客 文章,谢谢。如经授权,转载请注明: 转载自东东东 陈煜东的博客

本文链接地址: 在虚拟机中安装CentOS操作系统 – https://www.chenyudong.com/archives/install-centos-minimal-linux-on-virtualbox.html

分类: Linux, 网站建设

探索linux的触摸板和fn键输入事件

因为上一篇文章Ubuntu12.04通过xinput禁用及启用联想笔记本的触摸板,想通过模拟Fn+F8按键输入禁用触摸板的功能,被禁用后的触摸板上的灯会亮,看着比较安心。于是通过查找各种方法模拟键盘输入。

本想通过bash模拟按键输入,没有成功,只找到一个小命令xdotool key Ctrl+F8,但是使用Fn也是不能识别。想通过C语言或者C++来模拟Fn输入,上网搜索英文、中文结果,也没发现,只介绍了其他普通键的模拟,没有更详细的说明Fn的模拟。网上有关Fn的按键模拟都没有结果。无奈。

在搜索中发现Fn不受OS控制,是由硬件实现的,有的笔记本可以通过BIOS的设置Fn和ctrl互换。但我还是继续查找,没有结果。那就先暂时认为Fn是由硬件实现的吧,不能通过软件模拟出来效果。以下是我做的小测试,勉强能说服我吧。以后再讨论Fn的事情。

我们可以查看下Linux系统中的 /dev/input/event事件, 我们先通过xinput查看一下笔记本的键盘,通过xinput list 看出结果

ddd@ddd:~$ xinput
⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ MLK rapoo 1800                            id=11   [slave  pointer  (2)]
⎜   ↳ ETPS/2 Elantech Touchpad                  id=14   [slave  pointer  (2)]
⎣ Virtual core keyboard                     id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=6    [slave  keyboard (3)]
    ↳ Video Bus                                 id=7    [slave  keyboard (3)]
    ↳ Video Bus                                 id=8    [slave  keyboard (3)]
    ↳ Sleep Button                              id=9    [slave  keyboard (3)]
    ↳ MLK rapoo 1800                            id=10   [slave  keyboard (3)]
    ↳ Lenovo EasyCamera                         id=12   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=13   [slave  keyboard (3)]
    ↳ Ideapad extra buttons                     id=15   [slave  keyboard (3)]

其中”AT Translated Set 2 keyboard“是我的笔记本键盘,查看对应的/dev/input/event是第几个事件。

ddd@ddd:~$ xinput list-props 13
Device 'AT Translated Set 2 keyboard':
    Device Enabled (132):   1
    Coordinate Transformation Matrix (134): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
    Device Product ID (249):    1, 1
    Device Node (250):  "/dev/input/event3"

可以看出,我的笔记本的键盘对应的是”/dev/input/event3“。接下来我们就可以通过查看”/dev/input/event3“来看看Linux系统中键盘都有那些数据输入。

sudo hexdump /dev/input/event3

然后就出现等待的状态,我们通过笔记本的键盘敲一下按键,会有9行的数据出来。

0000000 1d34 4fd7 0000 0000 68ae 0002 0000 0000
0000010 0004 0004 001e 0000 1d34 4fd7 0000 0000
0000020 68b4 0002 0000 0000 0001 001e 0001 0000
0000030 1d34 4fd7 0000 0000 68b5 0002 0000 0000
0000040 0000 0000 0000 0000 1d34 4fd7 0000 0000
0000050 57c3 0003 0000 0000 0004 0004 001e 0000
0000060 1d34 4fd7 0000 0000 57c9 0003 0000 0000
0000070 0001 001e 0000 0000 1d34 4fd7 0000 0000
0000080 57c9 0003 0000 0000 0000 0000 0000 0000

说明一下是什么意思吧。 这个在 /linux/input.h中的数据结构中有说明,我们看看具体的数据结构是什么

struct input_event {
         struct timeval time;   //事件发生的时间
         __u16 type;        //事件类类型:按键和移动鼠标就是不同类型
         __u16 code;
         __s32 value;       //事件值:按键a和按键b就对应不同值
};

其中有一行会出现自己敲的字符啊”a”,我在结果中省去了。因为我还有一个USB键盘,我在USB键盘中敲字符,在shell中不会出现16进制的数据,只出现我敲的字符。 通过按下Fn键,可以发现我的shell中不显示16进制数据,也不显示任何字符,空空如也。这可以说明,fn键没有触发Linux输入事件,没有收到Linux的监听。 通过 xinput set-prop ‘AT Translated Set 2 keyboard’ ‘Device Enabled’ 0 禁用笔记本的键盘,发现fn+f8照常能工作,即fn键不再Linux设备监控中。但是直接按Fn没有输入效果。和Fn组合就有效果了。奇怪,这个组合不知道在底层是怎么实现的? 不过在查看具体的头文件/linux/input.h,在618行中看见定义KEY_FN及一些其他组合例如

#define KEY_FN            0x1d0
#define KEY_FN_ESC      0x1d1
#define KEY_FN_F1       0x1d2
#define KEY_FN_F2       0x1d3
#define KEY_FN_F3       0x1d4

,难道可以模拟Fn键,这激发了我继续探索的动力,先留这下次查找一些资料看看。

声明:未经允许禁止转载 东东东 陈煜东的博客 文章,谢谢。如经授权,转载请注明: 转载自东东东 陈煜东的博客

本文链接地址: 探索linux的触摸板和fn键输入事件 – https://www.chenyudong.com/archives/explorer-linux-touchpad-and-fn-key-input-event.html

分类: Linux

Ubuntu12.04通过xinput禁用及启用联想笔记本的触摸板

因为我的lenovo联想笔记本的触摸板没有一个专用的硬件开关去控制触摸板的使用,每次都要使用Fn+F8来禁用触摸板,每次使用机器都会自己又启用触摸板了,而且触摸板也确实敏感,还是禁用了好,有需要的时候在打开。

发现通过xinput可以来启用和禁用输入设备,以此来达到我需要的功能。

查看设备列表

通过xinput先查看一些都有哪些设备

xinput     #或者 xinput list

显示结果如下

ddd@ddd:~$ xinput list
  Virtual core pointer                      id=2    [master pointer  (3)]
    ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
    ↳ MLK rapoo 1800                            id=11   [slave  pointer  (2)]
    ↳ ETPS/2 Elantech Touchpad                  id=14   [slave  pointer  (2)]
  Virtual core keyboard                     id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=6    [slave  keyboard (3)]
    ↳ Video Bus                                 id=7    [slave  keyboard (3)]
    ↳ Video Bus                                 id=8    [slave  keyboard (3)]
    ↳ Sleep Button                              id=9    [slave  keyboard (3)]
    ↳ MLK rapoo 1800                            id=10   [slave  keyboard (3)]
    ↳ Lenovo EasyCamera                         id=12   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=13   [slave  keyboard (3)]
    ↳ Ideapad extra buttons                     id=15   [slave  keyboard (3)]

其中ETPS/2 Elantech Touchpad就是我笔记本的触摸板,其中id=14为设备的编号。这两者是等价的。

查看设备属性

xinput list-props 14
xinput list-props 'ETPS/2 Elantech Touchpad'

显示部分结果如下:(不全,只是为了显示一下大概有什么内容)

ddd@ddd:~$ xinput list-props 'ETPS/2 Elantech Touchpad'
Device 'ETPS/2 Elantech Touchpad':
    Device Enabled (132):   1
    Device Accel Profile (259): 1
    Device Accel Velocity Scaling (262):    12.500000
    Synaptics Edges (282):  56, 1352, 34, 606
    Synaptics Finger (283): 1, 1, 256
    Synaptics Tap Time (284):   180
    Synaptics Tap Move (285):   68
    Device Product ID (249):    2, 14
    Device Node (250):  "/dev/input/event7"

其中有个属性Device Enabled表示设备的是禁用还是启用,1表示启用,0表示禁用。另外括号中的132也是表示Device Enabled,这两者是等价的。上面提到的设备名称和设备id也是等价的。

禁用、启用触摸板

用过set-porp来设置设备的属性。

#禁用触摸板
xinput set-prop 14 'Device Enabled' 0  #通过设备编号+属性名禁用触摸板
xinput set-prop 'ETPS/2 Elantech Touchpad' 'Device Enabled' 0 #通过设备名+属性名禁用触摸板
#启用触摸板
xinput set-prop 14 132 1 #通过设备编号+属性编号来设置
xinput set-prop 'ETPS/2 Elantech Touchpad' 132 1 #通过设备名+属性编号启用

刚才说了在我的电脑ETPS/2 Elantech Touchpad14是等价的,Device Enabled132是等价的,所以两者可以替代,于是敲命令的时候可以偷懒下。不过像这样看着比较直观这个命令到底是干什么。

xinput set-prop 'ETPS/2 Elantech Touchpad' 'Device Enabled' 0

通过脚本快速启用和禁用触摸板

每次如果都敲命令也是比较麻烦的,通过脚本就很快的切换了。

#!/bin/bash
if [ $1 == 'on' ]
then
    set-prop 'ETPS/2 Elantech Touchpad' 'Device Enabled' 1
    echo "触摸板开启成功!"
elif [ $1 == 'off' ]
then
    set-prop 'ETPS/2 Elantech Touchpad' 'Device Enabled' 0
    echo "触摸板关闭成功!"
else
    echo "请输入参数:on/off"
    echo "开启触摸板:touchpadEnable on"
    echo "禁用触摸板:touchpadEnable off"
fi

通过禁用触摸板,确实给我解决了不少的麻烦。

开机自动禁用触摸板

但是这样在开机重启后又恢复了,对有些同学喜欢关机而不是休眠的同学确实还要改进,就是让开机的时候自动运行禁用触摸板的命令。 在~/.config/autostart/下创建一个启动器xinput.desktop文件,内容如下

[Desktop Entry]
Type=Application
Exec=xinput set-prop 'ETPS/2 Elantech Touchpad' 'Device Enabled' 0
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name[zh_CN]=touchpad enable
Name=touchpad enable
Comment[zh_CN]=禁用触摸板
Comment=禁用触摸板

这样在开机的时候就能自动禁用触摸板了。

不好的地方就是原来通过Fn+F8禁用触摸板时有灯亮的,现在不亮了,更好的方法应该是通过脚本模拟Fn+F8来禁用触摸板。

声明:未经允许禁止转载 东东东 陈煜东的博客 文章,谢谢。如经授权,转载请注明: 转载自东东东 陈煜东的博客

本文链接地址: Ubuntu12.04通过xinput禁用及启用联想笔记本的触摸板 – https://www.chenyudong.com/archives/lenovo-laptop-disable-or-enable-touchpad-using-xinput-in-ubuntu.html

分类: Linux, ubuntu

Debian 系统修改语言设置成英文

今天安装了一个Debian的虚拟机,安装的时候本来想选英语的,但是时区只能用美国的时区,于是就换上了中文的,没有提示选择时区。

发现在shell中文还是乱码,于是毅然的把语言更改成英语的。打开文件locale

sudo vi /etc/default/locale

显示

LANG="zh_CN.UTF-8"
LANGUAGE="zh_CN:zh"

将其内容更改成

LANG="en_US.UTF-8"
LANGUAGE="en_US:en"

然后重启reboot机器。

在修改的过程中,vi已经忘记了差不多了,导致修改起来非常纠结,勉强给修改完成。后来想给debian安装一个vim的,提示找不到定位源。后来运行了apt-get update后可以安装了。

———–update on 6月22日——–

虽然之前的能够将中文改成英文,但是在使用locale命令时时会出现

locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory

Ubuntu wiki Locale 修改上说是因为 en-US.UTF-8 没有安装。得知通过

dpkg-reconfigure locales

修改,在选项中选择en-US.UTF-8 按空格选中。然后简单的按 ok 键就好了。这下才算正确把中文环境的系统更换成英文的环境的系统。

Reference:Debian Locale 说明

声明:未经允许禁止转载 东东东 陈煜东的博客 文章,谢谢。如经授权,转载请注明: 转载自东东东 陈煜东的博客

本文链接地址: Debian 系统修改语言设置成英文 – https://www.chenyudong.com/archives/debian-change-locale-language.html

分类: Linux

ubuntu fcitx 小企鹅输入法安装 配置 皮肤设置

Ubuntu 12.04 的默认输入法是ibus,觉得输入不便利,很多词组都没有,而且记忆自定义词组困难。而Fcitx小企鹅输入法在Linux下是一个非常好用的输入法,赞一个。

fcitx小企鹅输入法的安装

1.安装fctix小企鹅输入法

sudo apt-get install fcitx

2.设置fctix小企鹅输入法为默认输入法

im-switch -s fcitx -z all_ALL

3.重启系统或者是重新启动X(按下Ctrl+Alt+Backspace)

fcitx小企鹅输入法的配置

繁体、简体切换

一不小心切换到繁体了,也不知道自己按了什么见,想想Google拼音的是Ctrl+Shift+T切换繁体简体的,fcitx小企鹅按了不行,后来试试Ctrl+Shift+F切换简体、繁体的。

全角半角切换Shift+Space

fcitx小企鹅输入法皮肤

下载皮肤解压缩到下面的目录,如果没有新建这个目录

~/.config/fcitx/skin #将皮肤解压缩到这个目录
mkdir ~/.config/fcitx/skin/ #如果没有该目录,新建这个目录

声明:未经允许禁止转载 东东东 陈煜东的博客 文章,谢谢。如经授权,转载请注明: 转载自东东东 陈煜东的博客

本文链接地址: ubuntu fcitx 小企鹅输入法安装 配置 皮肤设置 – https://www.chenyudong.com/archives/ubuntu-fcitx-installation-and-setting.html

分类: ubuntu, 软件

Ubuntu12.04 启用休眠功能

Ubuntu12.04在电源管理上会有些问题,在休眠上有个bug,所以默认禁用了休眠(hibernate)功能。

Unfortunately, hibernate doesn’t work in many cases with Ubuntu, which can cause you to lose data if you expect your documents and applications to re-open when you switch your computer back on. Therefore, hibernate is disabled by default in Ubuntu 12.04.

–via Ubuntu Help

什么是休眠呢?当让计算机休眠的时候,所有的应用程序、文档都被存储在硬盘中,不需要任何的电量去维持。当下次启动计算机恢复系统的时候,上次的应用程序、文件都被恢复到原来的状态。

测试ubuntu休眠功能是否正常工作

我们可以先通过命令行下测试计算机的休眠功能是否正常。

  1. 打开终端Terminal,用Ctrl+Alt+T打开终端。
  2. 输入sudo pm-hibernate,按回车运行命令。输入密码。
  3. 计算机将会开始关闭,重新开机后看看时候还能回到之前的工作界面。 如果swap分区容量小于正在使用的内存RAM的容量,那么休眠将会失败。

启用休眠功能

当我们需要让计算机休眠的时候,我们可以通过使用命令sudo pm-hibernate来让计算机休眠。

通过以上步骤就可以解决计算机的休眠问题了。我的计算机休眠正常。不过之前之给swap分区2G的容量,我的内存是6G的,不够使用,休眠失败,后来重装系统把swap分区调到5G的容量。

声明:未经允许禁止转载 东东东 陈煜东的博客 文章,谢谢。如经授权,转载请注明: 转载自东东东 陈煜东的博客

本文链接地址: Ubuntu12.04 启用休眠功能 – https://www.chenyudong.com/archives/ubuntu-enable-hibernate.html

分类: ubuntu

linux libc.so.6 丢失

刚才想查看/lib/libc.so.6 文件,但是改目录下没有,原来是在/lib/x86_64-linux-gnu/libc.so.6。被Ubuntu给搞的,好多文件都有个x86_64-linux-gnu这个目录,真麻烦啊,要各种的软链接。

后来不小心把/lib/x86_64-linux-gnu/libc.so.6给删除了,整个系统差不多不能使用了。ln、cp、mv等命令直接无法使用,提示

 error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory

只能使用cd、pwd命令,切换到tty终端上也无法登录,也是出现该信息。貌似连关机都不行呢,我是强制关机的。无奈。

libc.so.6是一个动态链接库文件,是GNU C Library的一个共享函数库,软链接到不同的版本上才能起作用。

做最后的搏斗,使用安装盘进入,然后把系统分区加载进来,添加软链接,重启机子,解决问题。

cd /media/**********/lib/x86_64-linux-gnu/
sudo ln -s libc-2.15.so libc.so.6

不过在开机的时候grub有个急救模式,以root身份登录,里面可能也可以解决改问题。我是先使用安装盘先建立软链接后才使用恢复选项的,此时系统已经恢复,不知道改方法能不能使用。网上说:使用Linux Rescue模式,此时系统命令都是静态链接的。未验证。

可以使用静态链接的可执行程序, /sbin/sln 重建软链: /sbin/sln /lib64/libc.so /lib64/libc.so.6

声明:未经允许禁止转载 东东东 陈煜东的博客 文章,谢谢。如经授权,转载请注明: 转载自东东东 陈煜东的博客

本文链接地址: linux libc.so.6 丢失 – https://www.chenyudong.com/archives/linux-libc-so-6-not-found.html

分类: Linux

较新的文章

Copyright © 2019 东东东 陈煜东的博客 粤ICP备13059639号-1

SITEMAP回到顶部 ↑