指定命令别名

alias ..='cd ..'

命令连接符

持续的执行命令,不管错误
[命令1]; [命令2]; [命令3];
 
前一个正确才执行下一个
[命令1] && [命令2] && [命令3];
 
前一个错误,就执行下一个
[命令1] || [命令2] || [命令3];

限制用户进程数

vim /etc/security/limits.conf

     *       hard    nproc   200

给予用户sudo权限

vim /etc/sudoers

...

## Allow root to run any commands anywhere 
## 允许root用户以root权限运行任何命令
root    ALL=(ALL)       ALL

...

## Allows people in group wheel to run all commands
## 让wheel用户组的所有用户默认拥有sudo权限
# %wheel        ALL=(ALL)       ALL
## Same thing without a password
## 让wheel用户组的所有用户,不用输入密码即可拥有sudo权限
# %wheel        ALL=(ALL)       NOPASSWD: ALL

## Allows members of the users group to mount and unmount the
## cdrom as root
## 给予用户指定的权限,命令需要写完整的路径
## 禁止某些命令:%users  ALL=!/user/sbin/useradd
# %users  ALL=/sbin/mount /mnt/cdrom, /sbin/umount /mnt/cdrom
...

切换用户同时进入用户家目录

su zach -

我是谁?

who     谁在线

w     详细在线信息
whoami     当前的有效用户
who am i     当前的实际用户
 

目录与文件高亮

alias ls='ls --color=auto'

 
/etc/bashrc     # 添加后所有用户有效
/home/<user>/.bashrc     # 仅对当前用户有效

文件权限

s表示SUID(Set UID)/SGID
SUID (4755)
ls -l /bin/su
-rwsr-xr-x.
su这个命令,无论任何人执行都将具有root权限,这个权限仅在su命令中有效
chmod u+x file

SGID (2770)
chmod 2770 shop
drwxrws---
在shop目录里创建的文件所属组都是shop,组成员可以互相修改对方创建的文件

t权限的名称是Sticky Bit(SBIT),仅对目录有效
SBIT (1777)
ls -ld /tmp
drwxrwxrwt.
任何人都可以在里面创建目录,只能控制自己的文件,其它可以查看,不能修改

搜索文件

搜索“ls”命令以及它的联机帮助文档所在的位置

whereis ls

yum install -y locate
updatedb
locate -b "\ls"
 
查找命令,确认是否安装
which gcc
 
列出一天内变化的文件的详细信息
find / -mtime -1 -exec ls -l {} \;
“{}”起始是一个站位符,在find命令的执行过程中会不断地被替换成当前找到的文件。
“;”是结束标记

文件压缩打包

tar
压缩率 gz<bz2<xz
 
tar -xvf filename.tar
 
z代表gz
j代表bz2
J代表xz
 
tar -zcvf filename.tar.gz FILES
tar -zxvf filename.tar.gz
tar -jcvf filename.tar.bz2 FILES
tar -jxvf filename.tar.bz2

tar -Jcvf filename.tar.xz FILES
tar -Jxvf filename.tar.xz
cpio
find ... | cpio -ocB > filename
cpio -idc < filename

mkfifo可以创建命名管道
 
find /boot | cpio -ocB > /tmp/boot.img
find /boot | cpio -ocB | gzip -9 > /tmp/boot.img
 
cpio -idc < /tmp/boot.img     //未压缩
gzip -dc /tmp/boot.img | cpio -idc     // 压缩过

文件前后台

tail -f /etc/profile

Ctrl+Z
bg

tail -f /etc/bashrc &
jobs
fg 1
kill -9 %2
jobs
 
任务脱离终端
nohup [命令与参数] &

计划任务

at 10:00 tomorrow

at>/bin/echo 123;
Ctrl+D
at -l
 
crontab -e
crontab -l
crontab -r
crontab -u root
 
 
 

2.4.3 守护进程的启用

vim /etc/xinetd.d/rsync

 
disable=yes 代表该守护进程处于关闭状态
disable=no 代表该守护进程处于开启状态

/etc/init.d/xinetd restart重启super daemon

2.4.4 全面了解程序信息

ps -l

F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
0 S  1000  6210  6209  0  80   0 -  1698 wait   pts/0    00:00:01 bash
0 R  1000  6258  6210  0  80   0 -  1173 -      pts/0    00:00:00 ps

字段 说明
F 程序标志,代表程序的执行权限,常见的取值有:0,普通权限;4,root 权限;1,此程序仅执行了fork二没有执行exec
S 程序状态:R,运行中;S,睡眠状态,可唤醒;D,不可被唤醒状态,一般是在等待I/O;T,停止状态,比如被调试的时候;Z,僵尸状态,程序已经终止但却无法被移除至内存外
UID 此进程拥有者的UID
PID 此进程的进程ID
PPID 此进程的父进程ID
C CPU的使用率,单位为百分比
PRI 运行优先级
NI 运行优先级调整值
ADDR 指出该程序在内存的哪个部分,如果是个 running 的程序,一般就会显示 “-”
SZ 此程序用掉的内存
WCHAN 表示目前程序是否运行中,若为 “-” 表示正在运行中
TTY 登陆者的终端机位置,若为远程登陆则使用动态终端界面
TIME 使用掉的CPU时间,注意,是此程序实际话费CPU运行的时间,而不是系统时间
CMD 就是 command 的缩写,也就是程序名称
 
 
ps aux
USER     PID %CPU %MEM    VSZ   RSS TTY   STAT START   TIME COMMAND
root       1  0.0  0.2  19232  1480 ?     Ss   18:54   0:00 /sbin/init
root       2  0.0  0.0      0     0 ?     S    18:54   0:00 [kthreadd]
root       3  0.0  0.0      0     0 ?     S    18:54   0:00 [migration/0]
root       4  0.0  0.0      0     0 ?     S    18:54   0:02 [ksoftirqd/0]
root       5  0.0  0.0      0     0 ?     S    18:54   0:00 [stopper/0]
......
postfix 1375  0.0  0.6  80936  3352 ?     S    22:15   0:00 pickup -l -t fifo -u
root    1376  0.0  0.2 110232  1148 pts/0 R+   22:20   0:00 ps aux
 
字段 说明
USER 该进程所属的使用者用户
PID 该进程的进程 ID
%CPU 该进程所占 CPU 资源的百分比
%MEM 该进程所占实体内存的百分比
VSZ 该进程用掉的虚拟内存量 (kbytes)
RSS 该进程用掉的固定的内存量 (kbytes)
TTY 该进程所运行的终端机,若与终端机无关则显示 “?”。另外,tty1-tty6 是本机上面的登陆者程序,若为 pts/0 等等的,则表示为由网络连接进主机的程序
STAT 该进程的当前状态,与 “ps-l” 的 S 字段相同 (R/S/T/Z)
START 该进程启动时间
TIME 该进程使用 CPU 运行的时间
COMMAND 该程序的实际命令
top
top - 当前时间 up 系统连续运行时间,已登录系统的用户数(1 user),系统在1、5、15分钟的平均工作负载(load average)
top - 22:39:44 up 2 days, 23:01,  1 user,  load average: 0.00, 0.01, 0.05
进程的总数、正在运行数、睡眠数、停止数和僵尸数
Tasks:  60 total,   1 running,  59 sleeping,   0 stopped,   0 zombie
用户空间占用CPU的百分比(%us)、内核空间占用CPU的百分比(%sy)、改变过优先级的进程占用CPU的百分比(%ni)、空闲CPU百分比(%id)、I/O等待专用CPU的百分比(%wa)、硬中断占用CPU的百分比(%hi)、软中断占用CPU的百分比(%si)、被强制等待虚拟CPU的时间(%st,在虚拟系统中有效)
%Cpu(s):  0.3 us,  0.7 sy,  0.0 ni, 99.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
物理内存总数、已用数、空闲数、缓冲数
KiB Mem:    445740 total,   340756 used,   104984 free,    29148 buffers
交换分区总数、已用数、空闲数、缓存数
KiB Swap:   102396 total,        0 used,   102396 free,   277472 cached
VIRT虚拟内存用量(只是需要的,不是实际使用量)、RES常驻内存量(实际使用量,包含共享部分)、SHR共享内存。第一个进程所占用的真是物理内存:RES-SHR
  PID USER      PR  NI  VIRT  RES  SHR S  %CPU %MEM    TIME+  COMMAND                                          
 6270 pi        20   0  5224 2460 2124 R   1.0  0.6   0:00.12 top                                              
    1 root      20   0  2152 1400 1296 S   0.0  0.3   0:10.18 init                                              
    2 root      20   0     0    0    0 S   0.0  0.0   0:00.00 kthreadd                                          
    3 root      20   0     0    0    0 S   0.0  0.0   0:01.55 ksoftirqd/0                                      
    5 root       0 -20     0    0    0 S   0.0  0.0   0:00.00 kworker/0:0H                                      
    7 root      20   0     0    0    0 S   0.0  0.0   0:01.98 rcu_preempt                                      
    8 root      20   0     0    0    0 S   0.0  0.0   0:00.00 rcu_sched                                        
    9 root      20   0     0    0    0 S   0.0  0.0   0:00.00 rcu_bh                                            
   10 root       0 -20     0    0    0 S   0.0  0.0   0:00.00 khelper                                          
   11 root      20   0     0    0    0 S   0.0  0.0   0:00.01 kdevtmpfs                                        
   12 root       0 -20     0    0    0 S   0.0  0.0   0:00.00 netns                                            
......
 
CPU占比
超过100%的情况属于正常,16核心时,最大占用1600%

工作负载(load average)
0.00,表示目前桥面上没有任何的车流。
1.00,表示刚好在这座桥的承受范围内。
超过1.00,说明这座桥已经超出符合,交通严重的拥堵。2.00的情况说明车流已经超出桥所能承受的一倍,3.00的话说明桥上还有超出桥符合两倍多的车辆正在等待
16核心,负载可以达到16.00
top -d 2 -p 10
表示2秒刷新一次,值监控PID为10的进程
P键,让单个进程信息按照CPU使用率排序;
M键,以内存的使用率排序;
N键,以进程的PID排序..
 
pstree

2.5.2 利用软件管理工具rpm和dpkg

  RPM DPKG
安装 rpm -ivh <rpm软件包名> dpkg -i <deb软件包名>
查询 rpm -qa xxx*
rpm -ql <rpm包名>
dpkg -l xxx*
dpkg --listfiles xxx
卸载 rpm -e <rpm软件名> dpkg -e <deb软件名>
 
 

2.5.3 更酷的线上升级

  yum apt-get
安装 yum install <package_name> apt-get install <package_name>
升级 yum update <package_name> 刷新软件源,建立更新软件包列表
apt-get update
将系统中的所有软件包一次性升级到最新版本
apt-get upgrade
卸载 yum remove <package_name> apt-get remove <package_name>
清除软件包的同时清除配置
apt-get purge remove <package_name>
查询 1.查找软件包:
  yum search <keyword>
2.列出所有已安装的软件包:
  yum list installed
3.获取软件包信息:
  yum info <package_name>
4.列出软件包提供哪些文件:
  yum provides <package_name>
1.查找软件包:
  apt-cache search <keyword> or <regular expression>
2.获取指定软件包的详细信息:
  apt-cache show <package_name>
3.获取软件包版本和软件包的依赖关系:
  apt-cache showpkg <package_name>
清除缓存 下载的软件包和header储存在cache中不会自动删除。使用 yum clean 完成清除磁盘空间的工作
1.清除 header:
  yum clean headers
2.清除下载的 rpm 包:
  yum clean packages
3.清除缓存的软件包及旧 headers:
  yum clean all
1.清理整个软件包缓冲区:
  apt-get clean
2.按照依赖关系清理缓冲区中多余的软件包:
  apt-get autoclean
 
apt的执行效率高于使用Python携程的yum,Python升级注意yum

2.6.1

2.6.2 磁盘的基本操作

dd
语法:
dd if=input_file of=out_file

dd if=/etc/bashrc of=./bashrc

等同于
cp /etc/bashrc ./bashrc
 
dd if=/etc/bashrc
等同于
cat /etc/bashrc
 
制作分区镜像:
dd if=/dev/sda1 of=./sda1.img
dd if=/dev/sda1 | gzip -9 > ./sda1.img
恢复镜像
gzip -dc ./sda.img | dd of=/dev/sda
 
bs指定依次读写的字节数
count指定读写次数
 
备份磁盘主引导记录
dd if=/dev/sda of=./mbr.img bs=512 count=1
 
销毁磁盘数据,urandom代表随机数,每次读入的数据都不会相同
dd if=/dev/urandom of=/dev/sda1
测试磁盘读写速度,zero代表0,每次读入数据都是0;null主要面对写,相当于黑洞。
dd if=/dev/zero of=./test.file bs=1024 count=1000000
dd if=./test.file bs=8k | dd of=/dev/null
修复磁盘
dd if=/dev/sda of=/dev/sda
 
fsck
语法:
fsck -t 文件系统 设备名
系统启动阶段执行,只能对文件系统的损坏进行修复,对磁盘的损坏是没有办法的。

fsck -f -t ext3 /dev/hda3

参数“-f”要求磁盘没有报错时也进行强制检查(非法关机时磁盘报错)。
 
mount
mount [-t 文件系统] 设备名称 挂接点
很多时候“-t”是多余的,Linux会从ExtN类的即inode文件系统的超级块中读取类型,大部分用于windows分区时。(NFS系统等)
 
直接挂载未压缩的镜像
mount -o loop ./sda1.img /mnt/sda1
挂载光盘
mount -o loop ./CentOS-6.6_x86_64-bin-DVD1.iso /mnt/centos
 
ro说明挂接的磁盘是只读的
rw说明挂接的磁盘是可读写的
loop说明要挂接的文件是一个虚拟设备,而且这个虚拟设备是环形的设备
 
umount /dev/sdb1
 
分区fdisk、cfdisk
格式化mkfs.ext3、mkfs

2.6.3 /etc/fstab文件——决定分区的连接

#
# /etc/fstab
# Created by anaconda on Sun Jan 18 20:48:12 2015
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/VolGroup-lv_root /                       ext4    defaults        1 1
UUID=69f95742-a279-4e43-b4c6-926cd5247f96 /boot      ext4    defaults        1 2
/dev/mapper/VolGroup-lv_swap swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
 
  • 设备文件、磁盘卷标或者UUID
  • 挂载点
  • 文件系统类型
  • mount命令的-o选项参数,defaults不给定-o选项时的行为
  • 是否使用dump命令备份,0代表不做,1代表每天备份
  • 是否使用fsck命令检查磁盘;0代表不检查,1代表最早检查(一般只有树根“/”是1),2也是要检查,只是比1晚(除树根之外一般都使用这个)
blkid查看UUID***
swap
fdisk创建,
mkswap格式化
swapon开启
swapoff关闭
 
创建1G的交互文件
dd if=/dev/zero of=/tmp/swap bs=1M count=1024
mkswap /tmp/swap

2.8.1 勤勤恳恳的bash

别名功能(alias):为一个命令简历另一个名称。
历史命令(history):用history工具程序记录了最近你执行过的命令。

工作控制(job contorl):
ps    --列出正在运行的进程
kill  --向一个或多个进程发信号(经常是杀掉进程)
jobs  --列出自己运行的进程
bg    --将进程放到后台
fg    --将进程放到前台
kill -l 查看信号

 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1
11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR
31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3
38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8
43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7
58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
63) SIGRTMAX-1 64) SIGRTMAX

2.8.2 环境变量

set、env和export设置环境变量,

unset命令来清除设置,
readonly来设置只读属性。
 
export ENVTEST="ENV1"
env | grep ENVTEST
unset ENVTEST
env | grep ENVTEST

2.8.3 bash 的配置文件

/etc/profile     系统整体的配置文件。

/etc/inputrc     用来设置bash的热键、[Tab] 是否有声音等信息。
/etc/profile.d/*.sh     这个目录下的文件规定了bash的操作界面、语系以及一些公共的命令别名。
/etc/sysconfig/il8n     这个文件是供/etc/profile.d/lang.sh调用,决定bash默认使用何种语系。
 
个人配置读取:
~/.bash_profile、 ~/.bash_login 和 ~/.profile
如果~/.bashrc文件存在,~/.bash_profile会去读取环境设置等
~/.bash_history     记录历史命令
~/.bash_logout     当用户离开时调用

如果/etc/bashrc存在,会被~/.bashrc调用
主要工作:
(1)依据不同的UID给出umask值
(2)依据不同的UID给出ps1变量
(3)调用/etc/profile.d/*.sh的设置
 
source命令可以将配置文件的内容读入当前shell环境中

2.9.4 排序和去重

统计最常用的十条历史命令及其使用次数:

cut -d ' ' -f1 ~/.bash_history | sort -d | uniq -c | sort -nr | head

 
详解:
cut -d ' ' -f1 ~/.bash_history
从~/.bash_history文件中以空格为分隔符(-d ' ')剪出多列,则为-f1,3等)

sort -d
按字典序(-d)排序剪出来的第一列
uniq -c
对文本去重,并统计次数(-c)。

sort -nr
按数字排序(-n)并降序(-r)排列,没有-r默认是升序排列。
head
输出显示文件前面部分的内容,默认显示前面10行的内容

Linux Stu的更多相关文章

  1. Linux 驱动开发

    linux驱动开发总结(一) 基础性总结 1, linux驱动一般分为3大类: * 字符设备 * 块设备 * 网络设备 2, 开发环境构建: * 交叉工具链构建 * NFS和tftp服务器安装 3, ...

  2. 面向对象(三)——组合、多态、封装、property装饰器

    组合.多态.封装.property装饰器 一.组合 1.什么是组合 组合指的是某一个对象拥有一个属性,该属性的值是另外一个类的对象 class Foo(): pass class Bar(): pas ...

  3. day25 组合和内置函数

    day25 组合和内置函数 一.组合 # 解决类与类之间代码冗余问题: 1. 继承 2. 组合 组合:一个对象拥有一个属性, 属性的值必须是另外一个对象 继承满足的是:什么是什么的关系 # is-a ...

  4. Linux基础介绍【第七篇】

    linux用户分类 超级用户:UID=0,root 普通用户:UID 500起,由超级用户或具有超级用户权限的用户创建的用户. 虚拟用户:UID 1-499,为了满足文件或服务启动的需要而存在,一般都 ...

  5. Linux基础介绍【第四篇】

    Linux文件和目录的属性及权限 命令: [root@oldboy ~]# ls -lhi total 40K 24973 -rw-------. 1 root root 1.1K Dec 10 16 ...

  6. Linux命令【第一篇】

    1.创建一个目录/data 记忆方法:英文make directorys缩写后就是mkdir. 命令: mkdir /data 或 cd /;mkdir data #提示:使用分号可以在一行内分割两个 ...

  7. Linux命令随笔

    Linux命令总结 man ==命令帮助; help ==命令的帮助(bash的内置命令); ls ==list,查看目录列表; -ld:查看目录权限; -l:(long)长格式显示属性; -F:给不 ...

  8. linux学习日记之老男孩

    2016年10月5日企业面试题:cp 命令复制文件是如果有覆盖可能的话如何去除确认步骤,如:将/mnt/text.txt 复制 到/temp/text.txt,去除覆盖确认命令.方法:1.加全路径的c ...

  9. 漫谈Linux内核哈希表(2)

    对照前面介绍过的内核通知链.链表,本章我们将要介绍的哈希表的初始化和定义也是如出一辙的: 点击(此处)折叠或打开 定义并初始化一个名为name的哈希链表表头 #define HLIST_HEAD(na ...

随机推荐

  1. 在Site Settings下找不到Navigation标签

    有时候我们可能找不到Navigation标签, 仅仅在Look and Feel下面看到"Quick launch" 如何才能找到我们想要的"Navigation&quo ...

  2. IOS设计模式之三:MVC模式

    IOS设计模式之三:MVC模式   模型-视图-控制器 这个模式其实应该叫做MCV,用控制器把model与view隔开才对,也就是model与view互相不知道对方的存在,没有任何瓜葛,他们就像一个团 ...

  3. 再来,LVS+KEEPALIVED

    记得常规组合哟. 一般同时实现HA+LB. 如果只需要实现一个,那还不如UCARP?双机绑定一个IP作热备. CENTOS6:PACEMAKER+COROSYNC+HAPROXY. OTHER:HEA ...

  4. Annikken Andee–Arduino与Android间的简易连接

    一个Arduino的兼容板,允许你显示并控制来自Android设备的Arduino应用.无需Anroid APP开发. 点击:观看视频 什么是Annikken Andee? Annikken Ande ...

  5. c# 绘图常用对象和方法

    //BitMap 位图,常用的方法,     Save:主要方式有:(1)保存在图像文件里,可以指定格式[gif,bmp]:(2) 保存在流中,以指定格式[gif,bmp]         //gra ...

  6. weblogic启动报错之WLS_DIAGNOSTICS000000.DAT

    查看控制台日志报错信息如下: <-- 下午04时46分42秒 CST> <Notice> <Log Management> <BEA-> <The ...

  7. POJ 3180 The Cow Prom(强联通)

    题目大意: 约翰的N(2≤N≤10000)只奶牛非常兴奋,因为这是舞会之夜!她们穿上礼服和新鞋子,别上鲜花,她们要表演圆舞.           只有奶牛才能表演这种圆舞.圆舞需要一些绳索和一个圆形的 ...

  8. 2013年6月19日星期三java中函数地址值传递

    今天代码审核时确认了一个问题,理解了java中string和stringbuffer赋值问题,看到一个帖子很好,摘录如下: 理解这两个例子需要分清实参和形参的区别,引用和对象的区别 第一个例子的内部执 ...

  9. (转载)遍历memcache中已缓存的key

    (转载)http://www.cnblogs.com/ainiaa/archive/2011/03/11/1981108.html 最近需要做一个缓存管理的功能.其中有一个需要模糊匹配memcache ...

  10. ACM第六周竞赛题目——B CodeForces 478B

    B - B Time Limit:1000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u Submit Statu ...