2018.03.05
LINUX:
切换虚拟终端:CTRL+ALT+F[1-6]
查看当前得终端设备命令:tty
查看内存:
cat /proc/meminfo
free -h
查看分区:
cat /proc/partitions
lsblk
查看CPU:
lscpu
cat /proc/cpuinfo
查看版本
cat /etc/centos-release
lsb_release -a
查看内核:
uname -r
查看主机名:
hostname
绝对路径
一定以 / 开头
相对路径
MBR分区
主分区:1—4,一块硬盘最多四个主分区,对主机必须有,主区可以格式化ntfs,存数据
扩展分区:1—4,一块硬盘最多一个扩展分区,可以没有扩展分区,划分成更小的单元,即逻辑分区
逻辑分区:5—-,可以格式化ntfs,存数据
2018.03.07
测试机与生产机要有所区别
如主机名 bash命令控制台颜色、描述
修改提示符格式
PS1=”\[\e[1;5;41;33m\][\u@\h \W]\\$\[\e[0m\]”
\e \033
|
\u 当前用户
|
\h 主机名简称
|
\H 主机名
|
\w 当前工作目录
|
\W 当前工作目录基名
|
\t 24小时时间格式
|
\T 12小时时间格式
|
\! 命令历史数
|
\# 开机后命令历史数
|
修改centos7的网卡名称
gedit /boot/grub2/grub.cfg
linux16 后加 net.ifnames=0
查看内部命令:
enable
help
内部命令执行效率高于外部命令
如果别名同原命令同名,如果要执行原命令,可使用
\ALIASNAME
“ALIASNAME”
’ALIASNAME’
command ALIASNAME
/path/commmand
多个命令可以用;符号分开
一个命令可以用\分成多行
clock
硬件时间
date
内核时间
修改内核时间
date 月日时分年
clock同步内核时间
clock -w
与其他服务器同步时间
ntpdate IP
固化同步时间设置
修改/etc/ntp.conf
加入
server IP iburst
再执行
service ntpd restart
或
systemctl restart ntpd
时区
/etc/localtime
日历
cal
查看时区
centOS 7
timedatectl status
列出时区
timedatectl list-timezones
修改时区
timedatectl set-timezone 时区名
设置关机时间
shutdown -h +3
3分钟后关机
取消关机
shutdown -c
w:
系统当前所有的登录会话及所做的操作
screen命令:
创建新screen会话
screen –S [SESSION]
加入screen会话
screen –x [SESSION]
退出并关闭screen会话
exit
剥离当前screen会话
Ctrl+a,d
显示所有已经打开的screen会话
screen -ls
恢复某screen会话
screen -r [SESSION]
“” 强引用
‘’ 弱引用
命令行扩展:$( ) 或 “
把一个命令的输出打印给另一个命令的参数
echo “xxx`hostname`xxx”
echo “xxx$(hostname)xxx”
计算器
bc
obase=2 输入十进制转成2进制
ibase=2 输入2进制转成十进制
/0nnn 八进制
/xHH 十六进制
echo -e ‘/x41’
括号扩展:{ }
打印重复字符串的简化形式
echo file{1,3,5}
file1 file3 file5
rm -f file{1,3,5}
echo {1..10}
echo {a..z}
echo {000..20..2}
登录shell时,会读取命令历史文件中记录下的命令~/.bash_history
登录进shell后新执行的命令只会记录在缓存中;这些命令会用户退出时“追加”至命令历史文件中
重复前一个命令,有4种方法
重复前一个命令使用上方向键,并回车执行
按 !! 并回车执行
输入 !-1 并回车执行
按 Ctrl+p 并回车执行
!:0 执行前一条命令(去除参数)
!n 执行history命令输出对应序号n的命令
!-n 执行history历史中倒数第n个命令
!s 执行最近的以s开头的命令
!?iti 执行最近的包含iti的命令
echo $HISTSIZE
默认保留1000个历史命令记录
在/etc/profile中修改
要重新调用前一个命令中最后一个参数:
!$ 表示
Esc, .(点击Esc键后松开,然后点击 . 键)
Alt+ .(按住Alt键的同时点击 . 键)
ctrl-r来在命令历史中搜索命令
• (reverse-i-search)`’:
Ctrl+g:从历史搜索模式退出
history -c
只是清内存,~.bash_history中依然存在
正常操作顺序时先删文件再清内存
man 数字 intro
fhs
文件系统分层标准
颜色配置文件
/etc/DIR_COLORS
CentOS 7目录变化
/bin 和 /usr/bin
/sbin 和 /usr/sbin
/lib 和/usr/lib
/lib64 和 /usr/lib64
pwd: printing working directory
-P 显示真实物理路径
-L 显示链接路径(默认)
绝对路径
以正斜杠开始
完整的文件的位置路径
可用于任何想指定一个文件名的时候
相对路径名
不以斜线开始
指定相对于当前工作目录或某目录的位置
可以作为一个简短的形式指定一个文件名
基名:basename
目录名:dirname
PWD:当前目录路径
OLDPWD:上一次目录路径
查看文件状态
stat
access time:访问时间,atime,读取文件内容
modify time: 修改时间, mtime,改变文件内容(数据)
change time: 改变时间, ctime,元数据发生改变
记录atime会轻微影响服务器效率,一些场景下会禁止记录atime,服务器效率会提高大约%5
方法:修改/etc/fstab
比如在你的系统中,要为/home文件系统设置notime选项,可以修改/etc/fstab文件相应的行如下:
LABEL=/home /home ext2 noatime 1 2
要使该设置立即生效,可运行命令”mount -o remount /home”。这样以后系统读取/home下的文件时将不会再修改atime属性。
或
mount -o remount,noatime /
如果指定某个路径的话:
chattr -R +A /home
cp -p
保留原有权限、所有者、时间戳
cp -a
保留所有,加递归
cp -v
显示详细信息
cp xxxx{,.}bak
默认cp不复制权限与所有者
挂载点删除不了
inode
每个文件占用一个节点编号,
分区内的节点编号有限制,占满之后无法创建新文件
dd 创建大文件
如果删除一个正在使用的文件,其空间并不释放,
需要先执行
> 文件名
因为重定向的默认操作是删除文件后重建再写入,即可让目标文件变成一个空文件
在 CP的 命令:
分配一个空闲的inode号,在inode表中生成新条目
在目录中创建一个目录项,将名称与inode编号关联
拷贝数据生成新的文件
rm 命令:
链接数递减,从而释放的inode号可以被重用
把数据块放在空闲列表中
删除目录项
数据实际上不会马上被删除,但当另一个文件使用数据块时将被覆盖。
如果mv命令的目标和源在相同的文件系统,作为mv 命令
用新的文件名创建对应新的目录项
删除旧目录条目对应的旧的文件名
不影响inode表(除时间戳)或磁盘上的数据位置:没有数据被移动!
如果目标和源在一个不同的文件系统, mv相当于cp和rm
2018.03.09
file
确定文件内容
标准输入
标准输出
标准错误
> 把STDOUT重定向到文件
2> 把STDERR重定向到文件
&> 把所有输出重定向到文件
> 文件内容会被覆盖
set -C
禁止将内容覆盖已有文件,但可追加
>| file 强制覆盖
set +C 允许覆盖
>> 原有内容基础上,追加内容
2> 覆盖重定向错误输出数据流
2>> 追加重定向错误输出数据流
标准输出和错误输出各自定向至不同位置
COMMAND > /path/to/file.out 2> /path/to/error.out
合并标准输出和错误输出为同一个数据流进行重定向
&> 覆盖重定向
&>> 追加重定向
COMMAND > /path/to/file.out 2>&1 (顺序很重要)
COMMAND >> /path/to/file.out 2>&1
():合并多个程序的STDOUT
( cal 2007 ; cal 2008 ) > all.txt
tr 转换和删除字符
使用“<<终止词”命令从键盘把多行重导向给STDIN
管道
STDERR默认不能通过管道转发,可利用2>&1 或 |& 实现
管道中 – 符号
将 /home 里面的文件打包,但打包的数据不是记录到文件,而是传送到 stdout,
经过管道后,将 tar -cvf – /home 传送给后面的 tar -xvf – , 后面的这个 – 则是取
前一个命令的 stdout, 因此,就不需要使用临时file了
tar -cvf – /home | tar -xvf –
命令1 | tee [-a ] 文件名 | 命令2
把命令1的STDOUT保存在文件中,做为命令2的输入
-a 追加
系统只识别用户UID
系统用户 1-499 CentOS6 1-999 CentOS7
对守护进程获取资源进行权限分配
用户和组的配置文件
/etc/passwd:用户及其属性信息(名称、 UID、主组ID等)
/etc/group:组及其属性信息
/etc/shadow:用户密码及其相关属性
/etc/gshadow:组密码及其相关属性
passwd文件格式
login name:登录用名(wang)
passwd:密码 (x) 如果账号被锁则显示!!
UID:用户身份编号 (1000)
GID:登录默认所在组编号 (1000)
GECOS:用户全名或注释
home directory:用户主目录 (/home/wang)
shell:用户默认使用shell (/bin/bash)
用户管理命令
useradd
usermod
userdel
组帐号维护命令
groupadd
groupmod
groupdel
用户创建:useradd
useradd [options] LOGIN
-u UID
-o 配合-u 选项,不检查UID的唯一性
-g GID:指明用户所属基本组,可为组名,也可以GID
-c “COMMENT”:用户的注释信息
-d HOME_DIR: 以指定的路径(不存在)为家目录
-s SHELL: 指明用户的默认shell程序
可用列表在/etc/shells文件中
-G GROUP1[,GROUP2,…]:为用户指明附加组,组须事先存在
-N 不创建私用组做主组,使用users组做主组
-r: 创建系统用户 CentOS 6: ID<500,CentOS 7: ID<1000
-m 创建家目录,用于系统用户
-M 不创建家目录,用于非系统用户
默认值设定:/etc/default/useradd文件中
显示或更改默认设置
useradd -D
useradd –D -s SHELL
useradd –D –b BASE_DIR
useradd –D –g GROUP
查看用户相关的ID信息
id [OPTION]… [USER]
-u: 显示UID
-g: 显示GID
-G: 显示用户所属的组的ID
-n: 显示名称,需配合ugG使用
/etc/login.defs
换个身份执行命令:
su [-] UserName -c ‘COMMAND
umask
如果所得结果某位存在执行(奇数)权限,则将其权限+1
umask –S 模式方式显示
umask –p 输出可被调用
可执行文件上SUID权限
任何一个可执行程序文件能不能启动为进程:取决发起者对程序文件是否拥有
执行权限
启动为进程之后,其进程的属主为原程序文件的属主
SUID只对二进制可执行程序有效
SUID设置在目录上无意义
权限设定:
chmod u+s FILE…
chmod u-s FILE…
可执行文件上SGID权限
任何一个可执行程序文件能不能启动为进程:取决发起者对程序文件是否拥有
执行权限
启动为进程之后,其进程的属组为原程序文件的属组
权限设定:
chmod g+s FILE…
chmod g-s FILE…
目录上的SGID权限
默认情况下,用户创建文件时,其属组为此用户所属的主组
一旦某目录被设定了SGID,则对此目录有写权限的用户在此目录中创建的文件
所属的组为此目录的属组
通常用于创建一个协作目录
权限设定:
chmod g+s DIR…
chmod g-s DIR…
Sticky 位
具有写权限的目录通常用户可以删除该目录中的任何文件,无论该
文件的权限或拥有权
在目录设置Sticky 位,只有文件的所有者或root可以删除该文件
sticky 设置在文件上无意义
权限设定:
chmod o+t DIR…
chmod o-t DIR…
例如:
ls -ld /tmp drwxrwxrwt 12 root root 4096 Nov 2 15:44 /tmp
ACL:Access Control List,实现灵活的权限管理
除了文件的所有者,所属组和其它人,可以对更多的用户设置权限
CentOS7 默认创建的xfs和ext4文件系统具有ACL功能
CentOS7 之前版本,默认手工创建的ext4文件系统无ACL功能,需手动增加
tune2fs –o acl /dev/sdb1
mount –o acl /dev/sdb1 /mnt/test
ACL生效顺序:所有者,自定义用户,自定义组,其他人
为多用户或者组的文件和目录赋予访问权限rwx
• mount -o acl /directory
• getfacl file |directory
• setfacl -m u:wang:rwx file|directory
• setfacl -Rm g:sales:rwX directory
• setfacl -M file.acl file|directory
• setfacl -m g:salesgroup:rw file| directory
• setfacl -m d:u:wang:rx directory
• setfacl -x u:wang file |directory
• setfacl -X file.acl directory
本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/92450