Reconfig Locale
#
Option 1:
mkdir -p /var/lib/locales/supported.d/ && \
echo "en_GB.UTF-8 UTF-8" > /var/lib/locales/supported.d/gb && \
echo "zh_CN.UTF-8 UTF-8" > /var/lib/locales/supported.d/zh && \
echo "sv_SE.UTF-8 UTF-8" > /var/lib/locales/supported.d/se && \
locale-gen
Option 2:
dpkg-reconfigure locales
can use first character of locale-name to nevigate.
ref
Note: Putty officially recommends to use Bitvise SSH Client & Server.
See also Powershell.
Sudo
#
sudo without passwd
vim /etc/sudoers
# or
sudoedit /etc/sudoers
modify ALL=(ALL) ALL
to ALL=(ALL) NOPASSWD:ALL
(i.e. add NOPASSWD:
before the last ALL
), e.g.
%sudo ALL=(ALL:ALL) NOPASSWD:ALL
SSHD Config > Less Time
#
Add two commands to avoid long time before asking passwords:
GSSAPIAuthentication no
UseDNS no
GSS API is alternative to SSH-keys
SSHD Config > More Security
#
Change to get high security by using key auth only:
...
See also:
Install
#
install ubuntu 2204 manually & turn off system updates (except security updates)
#
automaic / unattended installation of ubuntu
#
- http://askubuntu.com/questions/122505/how-do-i-create-a-completely-unattended-install-of-ubuntu
- Completely-Automatic-Unattended-Install-of-Ubuntu-Auto-system-config-kickstart
multi systems selection
#
multi-operating-system-installation
init after installation
#
linux-init
...
see also jlevy/the-art-of-command-line (multi-language)
from: qa.taobao.com
最近接触了下淘宝的性能框架PAP,觉得系统中的监控真的做的很不错,但是非pap运行的程序,则无法监控,同时也查了下淘宝性能百科对监控命令Sar介绍,觉得讲的比较粗,这里把自己以前用过的Sar监控分享下;有问题,大家共勉哈!
see also jlevy/the-art-of-command-line (multi-language)
Organised 2017 March.
Notes from 2012 April.
多年前(2012)写的“鸟哥的Linux 私房菜”学习笔记。- Chapters 18~26 -ing
原网站: 繁体 linux.vbird.org or 简体 cn.linux.vbird.org 。
第十八章、认识系统服务 (daemon, service)
#
什么是 daemon 与服务 (service)
#
分类 & 命名:
#
stand-alone vs. super-daemon
Stand Alone Daemon
响应速度快。
常见的有httpd、FTP的vsftpd等。
Super Daemon
(1)由于 super daemon 负责唤醒各项服务,因此 super daemon 可以具有安全控管的机制.
(2)不会一直占用系统资源。
例如 telnet, xinetd.
signal-control vs. interval-control (工作形态)
signal-control
透过讯号来管理,有客户端的需求进来,就会去处理!
例如打印机的服务 (cupsd)。
interval-control
『每隔一段时间就主动的去运行某项工作』,在指定的时间才会去工作。
例如在第十六章提到的 atd 与 crond (每分钟侦测一次配置文件)
命名守则
{xxx}d
eg: man [3] daemon
服务与端口的对应: /etc/services
#
ssh 22/tcp # SSH Remote Login Protocol
ssh 22/udp # SSH Remote Login Protocol
....(中间省略)....
http 80/tcp www www-http # WorldWideWeb HTTP
http 80/udp www www-http # HyperText Transfer Protocol
....(底下省略)....
daemon的启动与配置, stand alone, service, super daemon
#
/etc/init.d/* :启动脚本
系统上几乎所有的服务启动脚本都放置在这里!事实上这是公认的目录,CentOS在/etc/rc.d/init.d/,连结到/etc/init.d/的!
/etc/sysconfig/* :初始化环境配置 //几乎所有的服务//ubuntu不存在此文件夹
eg: syslog的初始化配置就在/etc/sysconfig/syslog这里呢!网络配置则在/etc/sysconfig/network这个文件中。
/etc/* :各服务的配置文件
第六章就讲过了,大家的配置文件都是放置在 /etc/ 底下的喔!//可能在子文件夹下
/etc/xinetd.conf, /etc/xinetd.d/* :super daemon 配置文件//ubuntu不存在此文件夹
super daemon配置文件(默认值)为/etc/xinetd.conf,不过super daemon只是一个统一管理的机制,所管理的daemons的配置在 /etc/xinetd.d/* 里头喔!
/var/lib/* :服务产生的数据库
MySQL的数据库默认就是写入/var/lib/mysql/这个目录下啦!
/var/run/* :服务的PID记录处
在第十七章谈到可以使用讯号(signal)管理程序,daemon是程序,也可以利用kill或killall来管理啦!
因为担心管理时影响到其他的程序,因此daemon常会将自己的PID记录到/var/run/.
例如syslog的PID就记录在/var/run/syslogd.pid这个文件中。如此一来,/etc/init.d/syslog就能够简单的管理自己的程序啰。
super daemon 所管理的服务的状态//很有意思,不过与ubuntu不同。
...
see also jlevy/the-art-of-command-line (multi-language)
Organised 2017 March.
Notes from 2012 April.
多年前(2012)写的“鸟哥的 Linux 私房菜”学习笔记。- Chapters 14 & 17 -ing
原网站: 繁体 linux.vbird.org or 简体 cn.linux.vbird.org 。
第十四章、Linux 账号管理与 ACL 权限配置
#
Linux 的账号与群组
#
使用者标识符: UID 与 GID
#
UID是0时,代表这个账号是『系统管理员』! 所以当你要让其他的账号名称也具有 root 的权限时,将该账号的 UID 改为 0 即可。
1~499 (系统账号).除了 0 之外,其他的 UID 权限与特性并没有不一样。默认 500 以下的数字让给系统作为保留账号只是一个习惯。
我们希望启动的服务使用较小的权限去运行,所以这些系统账号通常是不可登陆的, 所以才会有 /bin/false ; /usr/sbin/nologin. 比如用来作为pop邮件使用者的shell
1~99:由 distributions 自行创建的系统账号.
100~499:若用户有系统账号需求时,可以使用的账号 UID。
500~65535 (可登陆账号). linux 核心 (2.6.x 版)已经可以支持到 4294967295 (2^32-1).
使用者账号:/etc/passwd 文件结构, /etc/shadow 文件结构
#
/etc/passwd 第5部分,见finger: chfn
/etc/shadow
userName:pass:
lastChange:minAvailable:maxAvailable:
alertBeforeOutOfDate:extentionAfterOutOfDate:
accountExpireDate:reserved
忘记root密码:
*重新启动进入单人维护模式, 自动获得root权限
*LiveCD 中挂载 / , 手动修改 shadow
关于群组: /etc/group 文件结构, 有效与初始群组, groups, newgrp, /etc/gshadow
#
有效群组(effective group)与初始群组(initial group);
通常有效群组的作用是在新建文件.
newgrp: 有效群组的切换. OBS:此命令会进入新的bash
账号管理
#
adduser (suggested, interactive), useradd (ZZZ traditional), passwd, chage, usermod, userdel
#
suggested: adduser
adduser userName (will be ased for fullname, passwords etc.)
[useradd deprecated!]
useradd [-u UID] [-g 初始群组] [-G 次要群组] [-m(普通用户默认)M(root默认)] [-c 说明栏] [-d /home/solo] [-s /bin/bash] 使用者账号名
-d:指定家目录。务必使用绝对路径!
-r:创建一个系统的账号,这个账号的 UID 会有限制 (参考 /etc/login.defs)
-e:Expire date
useradd -D
可以修改 /etc/default/useradd 内容来修改默认shell, 默认home, 默认参考目录等.
SKEL=/etc/skel, 创建用户时候的参考(复制)
userdel [-r(delete the home)] userName
chsh: CHange SHell
chfn: CHange FiNger
id userName
Ex:强制第一次登录修改密码
useradd agetest
echo "agetest" | passwd --stdin agetest #not all distributions support '--stdin'
chage -d 0 agetest
usermod -aG sudo userName # modify a user, add to the group sudo (sudoers)
用户功能:finger, chfn, chsh, id
#
groupadd, groupmod, groupdel, gpasswd
#
账号管理实例
#
主机的细部权限规划:ACL 的使用
#
什么是 ACL
#
Access Control List
如何启动 ACL
#
[root@www ~]# vi /etc/fstab
LABEL=/1 / ext3 defaults,acl 1 1
#need reboot or remount
[root@www ~]# mount
/dev/hda2 on / type ext3 (rw,acl) #测试结果:成功
...
see also jlevy/the-art-of-command-line (multi-language)
Organised 2017 March.
Notes from 2012 April.
多年前(2012)写的“鸟哥的Linux 私房菜”学习笔记。 - chapters 10~13 -ing
基本的命令应该没什么变化吧。
原网站: 繁体 0160startlinux 。
Crtl + Alt + [F1]~[F6]
# 共有六个, tty1 ~ tty6 ,切换的方式为 Crtl + Alt + [F1]~[F6],其中, [F7] [F8] 为图形接口的使用。
man xxx => xxx(number) manual 中的命令级别 number 代表意义:
- 1:一般用户可以使用的命令或可运行文件案;
- 5:一些配置文件的文件内容格式;
- 8:系统管理员能够使用的管理命令。
第十一章、认识与学习BASH
#
认识 BASH 这个 Shell
#
硬件、核心与 Shell
#
// Hardware <=> Kernel <=> Shell,KDE,App
为何要学文字接口的 shell
#
// 通用,效率高
系统的合法 shell 与 /etc/shells 功能
#
/etc/shells #所有 shells
/etc/passwd // 每个用户的默认 shell
Bash shell 的功能
#
// history, tab, alias, job control, scripts, wildcard
// 当前登录的history在内存,注销时才会写入用户history文件。
Bash shell 的内建命令: type
#
type [-tpa] commandName
[ ] :无参,说明式回显 commandName 类型,还和使用者语言有关
-t :单词式回显:
file :外部命令
alias :别名
builtin :bash内建
-p :如果后面接的 commandName 为外部命令,会显示完整文件名;
-a :会由 PATH 变量定义的路径中,将所有含 commandName 字符串的命令都列出来,包含 alias
命令的下达 “"
#
// \ 仅跳脱『紧接着的下一个字符』
Shell 的变量功能
#
什么是变量
#
变量的取用与配置 (echo, 变量配置守则, unset)
#
// 变量的取用: echo
echo $varName
echo ${varName}
// $varName 是 ${varName} 的简化。
// 变量配置守则
// 赋值等号两边不能有空格
// 不能以数字开头
// 命令嵌套 eg :
ls -l `locate crontab`
// 反单引号 `命令` 或 $(命令) 等价 (推荐后者,因为容易识别,但是不要忘了那个$符号)。
unset varName #注意:此处没有'$'
环境变量的功能: env, export, declare
#
// env 与 export 可观察环境变量,其中 export 可以将自定义变量转成环境变量;
env #查看所有env变量
HOME #cd ~
SHELL
HISTSIZE
MAIL
PATH
LANG #语系
RANDOM #/dev/random ; 0~32767 之间
declare -i number=$RANDOM*10/32768 ; echo $number #0~9 之间
set #查看目前 bash 的所有变量 (环境变量+自定义变量);
// set 还可以配置命令环境,见4.4
echo $$
// PID
echo $?
// 前一个命令回传值
cd - 或 cd $OLDPWD
// 前一个工作目录
PS1='[\u@\h#\#]\W\$'
// 字符界面行首提示符
\d :『星期 月 日』,如:"Mon Feb 2"
\H :完整的主机名『www.vbird.tsai』
\h :主机名在第一个小数点之前的,如『www』
\t :24 小时HH:MM:SS
\T :12 小时HH:MM:SS
\A :24 小时HH:MM
\@ :12 小时 am/pm
\u :当前账号,如『root』;
\v :BASH版本,如 3.2.25(1),仅取『3.2』显示
\w :完整pwd (除了~之外);
\W :当前所在文件夹 #利用 basename 函数取得工作目录名称
\# :命令的顺序编号
\$ :root 为 '#' ,否则 '$'
OSTYPE #linux-gnu
HOSTTYP #i686 #硬件 类型
MACHTYPE #i686-pc-linux-gnu #核心 类型
export varName #<=> declare -x varName
// 将 varName 设置为 env变量 类型 (原来可能只是个 自定义变量 )。
// 对于子程序, varName 在 本行之后才启动的子程序 中有效。(因为子程序会自动继承 自己被invoke时候 在父进程中有效的 env变量)。
影响显示结果的语系变量 (locale)
#
变量的有效范围
#
变量键盘读取、数组与宣告: read, array, declare / typeset
#
read -p "promt string" -t timeOutInSecond varName
// 从键盘读取内容并存入varName;
-p :prompt : 接提示字符
-t :timeout: 接等待的『秒数』
// array:
var[1]='this is the first'
declare [-aixr] variable
-a :将 variable 定义为 数组 (array) 类型
-i :将 variable 定义为 整数 (int) 类型
-x :#<=> export, 将 variable 变成环境变量;
-r :配置成为 readonly 类型,且不能 unset
declare -x varName #export varName
// 将 varName 设置为 env变量 类型 (原来可能只是个 自定义变量 )。
// 如果export后没有varName,则 显示 所有 env变量。(-x 表示“转换为环境变量”参数,“-”不是chomd中的“去掉”)。
declare +x varName
// 将 varName 设置为 自定义变量 类型。(注意 +x 的含义,区别于 chmod)。
declare -p varName
// 显示 varName 变量类型(1.是 int(i) 还是 array(a) 还是 string( ); 2.是否 环境env变量(x); 3.是否只读(r))。
与文件系统及程序的限制关系: ulimit
#
ulimit
// ??? 看不懂,学完操作系统再看。http://is.gd/I6ccfR『限制用户的某些系统资源』的,包括可以开启的文件数量, 可以使用的 CPU 时间,可以使用的内存总量等等。
// hostname 更改主机名 how-to:三部曲
hostname newHostname #执行此命令
/etc/sysconfig/network #edit this file:
NETWORKING=yes
HOSTNAME=newHostname
/etc/hosts #edit this file.
For ubuntu 18+:
...
see also jlevy/the-art-of-command-line (multi-language)
Organised 2017 March.
Notes from 2012 April.
多年前(2012)写的“鸟哥的Linux 私房菜”学习笔记。 - Chapters 6~9 -ing
基本的命令应该没什么变化吧。
第6章、Linux文件权限与目录配置
#
user, group
#
Linux文件权限概念
#
Linux文件属性 (ls -al)
#
*首位类型:
d: Dir
-: 正规文件(regular file )
ASCII/plain text; binary; data(eg: last 才能读 /ar/log/wtmp)
l: Link
b: Block dev, 可供储存的接口设备(可随机存取装置)
c: Character dev, 串行端口设备,例如键盘、鼠标(一次性读取装置)
s: Socket, 常见于 /var/run
p: Pipe, FIFO. see: man fifo. 在解决多程序同时存取一个文件所造成的错误。
*时间: 最后修改时间
Note: 中文时间乱码: 用『LANG=en_US』来修改语系. /etc/sysconfig/i18n
...
see also jlevy/the-art-of-command-line (multi-language)
Organised 2017 March.
Notes from 2012 April.
多年前(2012)写的“鸟哥的Linux 私房菜”学习笔记。
基本的命令应该没什么变化吧。
原网站: 繁体 linux.vbird.org or 简体 cn.linux.vbird.org 。
比较简单,我就不总结了,见原网站地址.
http://en.wikipedia.org/wiki/Magic_SysRq_key#.E2.80.9CREISUB.E2.80.9D_.E2.80.93_safe_reboot
“REISUB” – safe reboot
unRaw (take control of keyboard back from X),
tErminate (send SIGTERM to all processes, allowing them to terminate gracefully),
kIll (send SIGKILL to all processes, forcing them to terminate immediately),
Sync (flush hd write-cache data to disk),
Unmount (remount all filesystems read-only),
reBoot.