- 系统相关
- 常用命令:
- 1.Ssh-server
- 2.vim编译:
- 3.VNC开启端口并设置分辨率:
- 4.强制关闭进程:
- 5.systemd管理工具配置:
- 6.设置开机启动:
- 7.dd
- 8.cpio:
- 9.xargs
- 10.wc:
- 11.split:
- 12.join:
- 13.expand:
- 14.设置进程优先级:
- 15.十六进制显示文件内容:
- 16.fsck:
- 17.修改用户默认的shell:
- 18.设置最大登录次数:
- 19.TCP
- 20.UDP
- 21.ICMP
- 22.IPV6vsIPV4
- 23.网络配置命令
- 24.时间日期设置:
- 25 设置代理
- 26 关机或重启时提示”A stop job is running for …”
- 27 用户不在sudoers中
- 28 tmux编译
系统相关
1.linuxboot过程
2.systemd
3.查看boot阶段log:dmsg命令
4.关闭某个runlevel下自启动进程
5.LVM
6,grub手动设置引导
7.共享库文件
共享文件是多个程序可以共同使用的代码,优点是代码重用和更新简单.
- windows:共享文件命名为*.dll
- linux:共享文件命名为Libname.so.version
Linux上共享文件保存的位置,系统变量LD_LIBRARY_PATH指定共享库的位置:
•/usr/local/lib:最新版本的文件和GUN标准文件
•/usr/lib:文档版本的文件和FHS相关库 •/lib:启动相关的共享库
查看某个程序使用到的共享库:
查看当前加载的共享库:
常用命令:
1.Ssh-server
正确配置方法如下:
/etc/ssh/sshd_config
- 找到
#StrictModesyes
改成StrictModesno
(去掉注释后改成 no) - 找到
#PubkeyAuthenticationyes
改成PubkeyAuthenticationyes
(去掉注释) - 找到
#AuthorizedKeysFile.ssh/authorized_keys
改成AuthorizedKeysFile.ssh/ authorized_keys
(去掉注释) - 保存
Fromhttp://callmepeanut.blog.51cto.com/7756998/1336864
2.vim编译:
./configure --prefix=/home/barretr/tools/vim --enable-cscope --enable-pythoninterp --enable-python3interp
Make & make install
查看vim启动时间
v—startuptimetmp.txt
vim函数着色
VIM默认情况下,函数名是不会高亮的,将下面这段代码添加到/usr/share/vim/vim73/syntax/ c.vim文件的末尾即可:
synmatchcFunctions"\<[a-zA-Z_][a-zA-Z_0-9]*\>[^()]*)("me=e-2
synmatchcFunctions"\<[a-zA-Z_][a-zA-Z_0-9]*\>\s*("me=e-1
hicFunctionsgui=NONEcterm=boldctermfg=blue
ctermfg表示函数名的颜色,可以自行更换。
3.VNC开启端口并设置分辨率:
vncserver-geometry1366x768
4.强制关闭进程:
Kill-9进程号
kill-sstop进程号—————停止进程运行,不关闭
kill-scont进程号—————-继续运行进程
5.systemd管理工具配置:
设置开机模式: GUI/终端模式:
systemctlset-defaultmulti-user.target/graphical.target
系统服务管理:
启动服务systemctlstarthttpd.service
关闭服务systemctlstophttpd.service
重启服务systemctlrestarthttpd.service
重新加载systemctlreloadhttpd.service
查看状态systemctlstatushttpd.service
Fromhttp://www.linuxidc.com/Linux/2015-04/116648.htm
6.设置开机启动:
开机启动unitsystemctlenablepostfix.service
开机不启动unitsystemctldisablehttpd.service
查看开机是否启动systemctlis-enabled.service
Fromhttp://www.linuxidc.com/Linux/2015-04/116648.htm
7.dd
dd是Linux/UNIX下的一个非常有用的命令,作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。 dd的主要选项:指定数字的地方若以下列字符结尾乘以相应的数字:
b=512,c=1,k=1024,w=2,xm=numberm
•if=file:输入文件名,缺省为标准输入。
•of=file:输出文件名,缺省为标准输出。
•ibs=bytes:一次读入bytes个字节(即一个块大小为bytes个字节)。
•obs=bytes:一次写bytes个字节(即一个块大小为bytes个字节)。
•bs=bytes:同时设置读写块的大小为bytes,可代替ibs和obs。
•cbs=bytes:一次转换bytes个字节,即转换缓冲区大小。
•skip=blocks:从输入文件开头跳过blocks个块后再开始复制。
•seek=blocks:从输出文件开头跳过blocks个块后再开始复制。(通常只有当输出文件是磁盘或磁带时才有效)
•count=blocks:仅拷贝blocks个块,块大小等于ibs指定的字节数。
•conv=conversion[,conversion…]:用指定的参数转换文件。
转换参数:
•ascii转换EBCDIC为ASCII。
•ebcdic转换ASCII为EBCDIC。
•ibm转换ASCII为alternateEBCDIC.
•block把每一行转换为长度为cbs的记录,不足部分用空格填充。
•unblock使每一行的长度都为cbs,不足部分用空格填充。
•lcase把大写字符转换为小写字符。
•ucase把小写字符转换为大写字符。
•swab交换输入的每对字节。
•noerror出错时不停止。
•notrunc不截短输出文件。
•sync把每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐。
由于dd命令允许二进制方式读写,所以特别适合在原始物理设备上进行输入/输出。例如可以用下面的命令为软盘建立镜像文件:
ddif=/dev/fd0of=disk.imgbs=1440k
有趣的是,这个镜像文件能被HD-Copy,Winimage等工具软件读出。再如把第一个硬盘的前
512个字节存为一个文件:
ddif=/dev/hdaof=disk.mbrbs=512count=1
8.cpio:
cpio命令主要是用来建立或者还原备份档的工具程序,cpio命令可以复制文件到归档包中,或者从归档包中复制文件。
使用示例:
•将/etc下的所有普通文件都备份到/opt/etc.cpio,使用以下命令: find/etc–typef|cpio–ocvB>/opt/etc.cpio
•将系统上所有资料备份到磁带机内,使用以下命令:
find/-print|cpio-covB>/dev/st0———-这里的/dev/st0是磁带的设备名,代表SCSI磁带机。
•查看上例磁带机上备份的文件,使用以下命令:
cpio-icdvt</dev/st0>/tmp/st_content————有时可能因为备份的文件过多,一个屏幕无法显示完毕,此时我们利用下面命令,让磁带机的文件信息输出到文件。
•将示例1中的备份包还原到相应的位置,如果有相同文件进行覆盖,使用以下命令: cpio–icduv</opt/etc.cpio
注意,cpio恢复的路径,如果cpio在打包备份的时候用的是绝对路径,那么在恢复的时候会自动恢复到这些绝对路径下,本例就会将备份文件全部还原到/etc路径下对应的目录中。同理,如果在打包备份用的是相对路径,还原时也将恢复到相对路径下。
通过上面的示例,可以看出,cpio无法直接读取文件,它需要每个文件或者目录的完整路径名才能识别读取,而find命令的输出刚好做到了这点,因此, 命令配合使用。其实,上面的示例我们已经看到了它们的组合用法。
9.xargs
xargs命令是给其他命令传递参数的一个过滤器,也是组合多个命令的一个工具。它擅长将标准输入数据转换成命令行参数,xargs能够处理管道或者stdin并将其转换成特定命令的命令参数。 xargs也可以将单行或多行文本输入转换为其他格式,例如多行变单行,单行变多行。xargs的默认命令是echo,空格是默认定界符。这意味着通过管道传递给xargs的输入将会包含换行和空白,不过通过xargs的处理,换行和空白将被空格取代。xargs是构建单行命令的重要组件之一。
使用示例:
•多行变单行:
cattest.txt|xargs abcdefghijklmnopqrstuvwxyz
•管道输出转换为命令行参数: find.*.txt|xargsvim————等同于vim1.txt2.txt……
10.wc:
计算文件中单词个数,返回值有三个,分别为文件行数,单词个数,字节数.
•wccities.txt
141695cities.txt
11.split:
分隔文件,默认按照1000行来分隔,生成xaa,xab,xac……多个文件. 常用参数:
•-a,—suffix-length=NgeneratesuffixesoflengthN(default2)
—additional-suffix=SUFFIXappendanadditionalSUFFIXtofilenames
•-b,—bytes=SIZEputSIZEbytesperoutputfile
•-C,—line-bytes=SIZEputatmostSIZEbytesoflinesperoutputfile
•-d,—numeric-suffixes[=FROM]usenumericsuffixesinsteadofalphabetic;
FROMchangesthestartvalue(default0)
•-e,—elide-empty-filesdonotgenerateemptyoutputfileswith’-n’
—filter=COMMANDwritetoshellCOMMAND;filenameis$FILE
•-l,—lines=NUMBERputNUMBERlinesperoutputfile
•-n,—number=CHUNKSgenerateCHUNKSoutputfiles;seeexplanationbelow
•-u,—unbufferedimmediatelycopyinputtooutputwith’-nr/…’
12.join:
将两个行数相同的文件合并成一个文件,文件需要设置好排序,一般可以用行号表示顺序,1.2.3…… 对于么有明显排序,但是行数相同的两个文件,可以使用paste命令完成合并.
13.expand:
将文件中tab改为空格,-t表示转换为几个空格,默认为8
14.设置进程优先级:
nice-n20进程程序命令
—————设置优先级20并启动程序,其取值范围是-20至19。这个值越小,表示进程”优先级”越高,而值越大“优先级”越低
renice-n20进程号
————给正在运行的程序设置优先级,注意这里是进程号显示当前进程优先级:
psl
15.十六进制显示文件内容:
od-h文件名
16.fsck:
检查分区情况
自动挂载分区: 配置文件:/etc/fstab,每列含义如下: options为defaults时,不允许普通用户mount和umount;修改为user之后,普通用户可以mount 和umount. 设置分区配额:
- option中包含usrquotas时,表示此分区支持设置每个用户的最大配额.包含grpquota时,表示对每个用户组的配额管理重新mount(mount-oremount)之后,会显示如下: 同时,该分区下会有两个文件分别记录usr和group的配额:
- 保证quota服务在运行
- quotaon-av,显示当前运行quota的分区
- edquota-u用户名,设置某个用户的配额,格式如下:
- edquota-g用户组名:
- repquota-av,显示当前配额信息
17.修改用户默认的shell:
usermod用户名-szsh
18.设置最大登录次数:
/etc/security/limit.conf
ulimit设置其他限制:
•-aAllcurrentlimitsarereported
•-bThemaximumsocketbuffersize
•-cThemaximumsizeofcorefilescreated
•-dThemaximumsizeofaprocess’sdatasegment
•-eThemaximumschedulingpriority(“nice”)
•-fThemaximumsizeoffileswrittenbytheshellanditschildren
•-iThemaximumnumberofpendingsignals
•-lThemaximumsizethatmaybelockedintomemory
•-mThemaximumresidentsetsize(manysystemsdonothonorthislimit)
•-nThemaximumnumberofopenfiledescriptors(mostsystemsdonotallowthis valuetobeset)
•-pThepipesizein512-byteblocks(thismaynotbeset)
•-qThemaximumnumberofbytesinPOSIXmessagequeues
•-rThemaximumreal-timeschedulingpriority
•-sThemaximumstacksize
•-tThemaximumamountofcputimeinseconds
•-uThemaximumnumberofprocessesavailabletoasingleuser
•-vThemaximumamountofvirtualmemoryavailabletotheshelland,onsome systems,toitschildren
•-xThemaximumnumberoffilelocks
•-TThemaximumnumberofthreads ============================================================
19.TCP
20.UDP
21.ICMP
22.IPV6vsIPV4
23.网络配置命令
•ifdown/ifup网卡名:关闭开启网卡
•ipaddressshow:显示网络配置信息,类似ifconfig
•ipaddressadd1.1.1.1/8dev网卡:添加ip地址到某网卡
•route:显示ip路由表
•routeadddefaultgw192.168.1.1:添加路由项.另一种形式如下:
•traceroute/tracepatchip地址:show跟踪到ip的路由过程信息
•dig网址:显示网址对应的解析ip
/etc/nsswitch.conf中保存了解析网址的顺序,默认是filesdns.即先查找hosts文件,后查询dns服务器.可以修改该文件改变顺序
24.时间日期设置:
•date:显示当前时间,可以添加%*参数,获取指定格式的时间
•date-s“1/1/20183:00pm”:设置当前时间日期
•timedatectl:显示时间,日期,时区等所有信息
•hwclock:显示硬件时间
•hwclock-s:自动设置软件时间,取值于硬件时间
•hwclock-w:自动设置硬件时间,取值于date时间
•hwclock—set—date=”01/01/20183:00pm”:手动设置硬件时间
•ln-s/usr/share/zoneinfo/Asia/Shanghai/etc/localtime:设置当前时区./usr/share/ zoneinfo保存所有时区的信息,添加软连接即可.
•tzselect:设置时区,采用选择方式,比上面软连接方便.
25 设置代理
有些linux服务器处于内网,并且没有公网ip,故要想与外网进行http/https通信只能通过nat或者加proxy的方式。nat服务器有网段的限制,而http/https proxy代理则没有,使用起来也方便。
linux系统设置http/https proxy的方法,在/etc/bashrc或者/etc/profile中添加如下环境变量:
export http_proxy=http://1.1.1.1:8082
export https_proxy=http://1.1.1.1:8082
单独设置apt代理
临时代理:sudo apt -o Acquire::http::proxy="http://barretr:passwd@135.251.3xx.16:80" update
永久代理:
sudo su
vi /etc/apt/apt.conf.d/10proxy #这个文件正常不存在,会新建一个
#编辑内容为:
Acquire::http::Proxy "http://user:pwd@192.168.1.1:8080";
26 关机或重启时提示”A stop job is running for …”
编辑/etc/systemd/system.conf
修改下面两个变量为:
DefaultTimeoutStartSec=10s
DefaultTimeoutStopSec=10s
执行:systemctl daemon-reload
27 用户不在sudoers中
打开/etc/sudoers文件,
在root之后添加对应用户名,并指定权限,例如:barret ALL=(ALL:ALL) ALL
28 tmux编译
sh autogen.sh
./configure --prefix=/home/barretr/tools/tmuxN LIBEVENT_CFLAGS="-I/home/barretr/tools/Libevent/include" LIBEVENT_LIBS="-L/home/barretr/tools/Libevent/lib -levent"
make
make install