Linux中常用命令-笔记--进阶之路
1、查看指定用户下的所有进程
# ps -u oracle
1.1、修改Linux系统打开文件数限制
1、RedHat系统强制设置用户最大进程数为1024,可能会发生不够用的情况,因此需要修改
步骤 1 打开并修改/etc/security/limits.conf文件
打开文件
sudo vim /etc/security/limits.conf
在文件中追加以下内容:
* - core unlimited
* - nofile 65535
步骤 2 打开并修改/etc/security/limits.d/20-nproc.conf文件
sudo vim /etc/security/limits.d/20-nproc.conf
将下列内容注释掉:
* soft nproc 1024
修改成功后,退出重新登录,用ulimit -a来查看是否修改成功
================================================================================
2、coredump 设置
sudo vim /etc/sysctl.conf
增加如下配置
kernel.core_pattern = /corefiles/core.%e.%p.%t
net.core.somaxconn = 4096
最后运行命令使之生效:
sudo sysctl -p
================================================================================
3、信号量设置
1) 输入命令 ipcs -l 查看,要求显示的结果应大于等于下面的数字
------ Semaphore Limits --------
max number of arrays = 1024
max semaphores per array = 250
max semaphores system wide = 32000
max ops per semop call = 100
semaphore max value = 32767
否则,需要在/etc/sysctl.conf下增加如下一条条命令
kernel.sem = 250 32000 100 1024
最后运行命令:sudo sysctl -p使之生效。
2) hosts设置
sudo vim /etc/hosts
增加本机ip主机名
备注:如果涉及主机名修改(主机名不能是纯数字),在其修改后需要重启服务器
2、查看所有进程
# top
3、查找文件
find 命令根据文件名来查找特定文件
# find -name test.file
如果你知道 /var 中存在 test.file
# find /var -name test.file
还可以根据时间、大小、所属人、权限等选项搜索文件
# man find
grep 查找
1、单个字符串进行查找:
1、查找当前目录文件名中的字符串: grep 字符串 文件名
2、查找某个文件中字符串,并输出行号:grep -n 字符串 文件名
3、查找当前目录(包含子目录)的字符串:grep -r 字符串 *
4、查找当前目录(包含子目录)的字符串,并输出行号:grep -rn 字符串 *
* :通配符,表示当前目录所有文件,也可以按照某种模式进行匹配,例如:
grep 字符串 *.txt 匹配所有文件后缀名为txt的字符串
-r :递归查找
-n :显示行号
-R :查找所有文件包含子目录
-i :忽略大小写
2、同时满足多个字符串查找:
grep 字符串1 文件名| grep 字符串2|grep 字符串3|grep ...
3、满足多个关键字之一
grep -E "字符串1|字符串2|字符串3|" 文件名 或者
egrep "字符串1|字符串2|字符串3|" 文件名
4、查看历史操作记录
# history
5、服务器间的文件传送
上传到远端
上传目录:
scp [-r] ./util 用户名@192.168.1.65:/home/dyh/limesurvey_back/scp
上传文件
scp ./util 用户名@192.168.1.65:/home/dyh/limesurvey_back/scp
如果制定了用户名,后面只要输入密码就行了,如果没有写用户名 就要输入用户名 和密码
远端下载:
scp [-r] dyh@211.154.xxx.xxx:/home/dyh/share/webCompileOut.sql ./
即如果是目录拷贝要加“-r”参数
6、磁盘管理
df [-ahikHTm] [目录或文件名]:列出文件系统的整体磁盘使用量
-----------------------------------------------------------------------------------------
-a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;
-k :以 KBytes 的容量显示各文件系统;
-m :以 MBytes 的容量显示各文件系统;
-h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
-H :以 M=1000K 取代 M=1024K 的进位方式;
-T :显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;
-i :不用硬盘容量,而以 inode 的数量来显示
-----------------------------------------------------------------------------------------
du [-ahskm] 文件或目录名称:检查磁盘空间使用量
-----------------------------------------------------------------------------------------
-a :列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已。
-h :以人们较易读的容量格式 (G/M) 显示;
-s :列出总量而已,而不列出每个各别的目录占用容量;
-S :不包括子目录下的总计,与 -s 有点差别。
-k :以 KBytes 列出容量显示;
-m :以 MBytes 列出容量显示;
-----------------------------------------------------------------------------------------
fdisk [-l] 装置名称:用于磁盘分区
-----------------------------------------------------------------------------------------
-l :输出后面接的装置所有的分区内容。若仅有 fdisk -l 时,
则系统将会把整个系统内能够搜寻到的装置的分区均列出来。
-----------------------------------------------------------------------------------------
mkfs [-t 文件系统格式] 装置文件名:磁盘格式化
-----------------------------------------------------------------------------------------
-t :可以接文件系统格式,例如 ext3, ext2, vfat 等(系统有支持才会生效)
-----------------------------------------------------------------------------------------
7、ssh登录
ssh root@172.16.18.204
按提示输入对应的密码
8、Linux中关机,重启,注销命令
关机:
shutdown -h now #立刻关机重启,工作中常用
shutdown -h +1 #1分钟后关机
init 0
halt #立即停止系统,需要人工关闭电源
halt -p
poweroff #立即停止系统,并且关闭电源
重启:
reboot #工作中常用
shutdown -r now #工作中常用
shutdown -r +1 #一分钟后重启
init 6
注销:
logout
exit #工作中常用
ctrl+d #工作中常用
9、查看系统版本信息
# cat /etc/redhat-release
10、创建用户
步骤 1 创建用户
使用root用户登录服务器,创建用户与安装目录,依次执行以下命令:
groupadd iflytek
useradd -g iflytek -d /home/iflytek -m iflytek
groupadd iflytek是新建用户组指令,iflytek是用户组名称
-g:是指定用户组
-m:如果指定的用户$HOME目录不存在,则自动创建之并拷贝启动文件到这个目录。
-d:指定用户的$HOME目录,如:/home/iflytek。
iflytek:用户名称。
步骤 2 设置口令
1)初始化用户密码,根据提示输入两次重复密码。
passwd iflytek
2)给iflytek文件夹赋执行权限
chmod -R +x /home/iflytek
3)使iflytek用户可以执行sudo命令,在下列文件中添加iflytek用户,强制保存即可:
vim /etc/sudoers
iflytek ALL=(ALL) NOPASSWD:ALL
4)退出root用户·,用iflytek用户重新登录服务器,su - iflytek。
11、配置java环境
看系统是否安装java
java -version
配置
jdk版本:
jdk1.8.0_221
位置 /usr/local/java/
系统环境变量配置: /etc/environment
export JAVA_HOME=/usr/local/java/jdk1.8.0_221
export JRE_HOME=/usr/local/java/jdk1.8.0_221/jre
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
用户环境变量 :/etc/profile
export JAVA_HOME=/usr/local/java/jdk1.8.0_221
export JRE_HOME=/usr/local/java/jdk1.8.0_221/jre
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin
或者
export JAVA_HOME=/home/dyh/jdk1.8.0_45
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
-----------------------------------------------------------------------------------------
vim ~/.bash_profile
JAVA_HOME=/home/iflytek/jdk1.8.0_45
JRE_HOME=/home/iflytek/jdk1.8.0_45/jre
PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/jt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH
或
export JAVA_HOME=/home/iflytek/java/jdk1.8.0_151
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
source ~/.bash_profile
-----------------------------------------------------------------------------------------
环境变量生效操作:
source /etc/profile
11.1系统环境配置的差异
/etc/profile: 此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行. 并从/etc/profile.d目录的配置文件中搜集shell的设置。
/etc/bashrc: 为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取。
~/.bash_profile: 每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件。
~/.bashrc: 该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取。
~/.bash_logout:当每次退出系统(退出bash shell)时,执行该文件. 另外,/etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承 /etc/profile中的变量,他们是"父子"关系。
~/.bash_profile 是交互式、login 方式进入 bash 运行的~/.bashrc 是交互式 non-login 方式进入 bash 运行的通常二者设置大致相同,所以通常前者会调用后者。
12、刷新环境变量
方法一:
在/etc/profile文件中添加变量【对所有用户生效(永久的)】
用VI在文件/etc/profile文件中增加变量,该变量将会对Linux下所有用户有效,并且是“永久的”。
要让刚才的修改马上生效,需要执行以下代码
source /etc/profile
方法二:
在用户目录下的.bash_profile文件中增加变量【对单一用户生效(永久的)】
用VI在用户目录下的.bash_profile文件中增加变量,改变量仅会对当前用户有效,并且是“永久的”。
要让刚才的修改马上生效,需要在用户目录下执行以下代码
source .bash_profile
方法三:
直接运行export命令定义变量【只对当前shell(BASH)有效(临时的)】
在shell的命令行下直接使用[export变量名=变量值]定义变量,该变量只在当前的shell(BASH)或其子shell(BASH)下是有效的,shell关闭了,变量也就失效了,再打开新shell时就没有这个变量,需要使用的话还需要重新定义。
例如:export PATH=/usr/local/webserver/php/bin:$PATH
13、新建
mkdir a #新建一个文件夹
touch a.c #新建一个文件
14、查看文件内容
cat a.txt #查看abc的内容
head -5 a.txt #查看a前5行内容。默认是10行
tail [选项] 文件名
各选项的含义如下:
+num:从第num行以后开始显示
-num:从距文件尾num行处开始显示。如果省略num参数,系统默认值为10.
-f: 循环读取,例如查看服务器日志时,可以实时观察
#filename 文件里的最尾部的内容显示在屏幕上,并且不断刷新。
tail -f filename
#查看最后20行
tail -f filename
15、du 命令
[root@localhost zx]# du -h dd.html
32K dd.html
16、删除操作
rm -f aa.txt #强制删除aa.txt
rm -rf fileDir #强制删除fileDir文件夹和里边的所有文件
17、移动操作
移动操作可以理解成复制文件后,删除原文件
mv /zx/soft/* . #复制/zx/soft目录中的所有文件到当前目录
mv a.txt ./test/a.txt #复制当前目录a.txt到当前的test目录下。
mv /zx/soft/ /tmp/soft #复制文件夹到/tmp/下,必须保证tmp是存在的文件夹
18、重命名操作
重命名还是用的移动操作命令
#将目录(文件)A重命名为B
mv A B
#将/a目录(文件)移动到/b下,并重命名为c。要保证b目录存在。
mv /a /b/c
#将当前test1目录移动到当前的test目录并命名为b
mv ./test1 ./test/b
19、解压压缩操作
tar
-c: 建立压缩档案
-x:解压
-t:查看内容
-r:向压缩归档文件末尾追加文件
-u:更新原压缩包中的文件
这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。
-z:有gzip属性的
-j:有bz2属性的
-Z:有compress属性的
-v:显示所有过程
-O:将文件解开到标准输出
下面的参数-f是必须的
-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名
例
tar -cf all.tar *.jpg
这条命令是将所有.jpg的文件打成一个名为all.tar的包。-c是表示产生新的包,-f指定包的文件名。
tar -tf all.tar
这条命令是列出all.tar包中所有文件,-t是列出文件的意思
tar -xf all.tar
这条命令是解出all.tar包中所有文件,-x是解开的意思
压缩
tar –cvf jpg.tar *.jpg //将目录里所有jpg文件打包成jpg.tar
-----------------------------------------------------------------------------------
*.tar 用 tar –xvf 解压
*.gz 用 gzip -d或者gunzip 解压
*.tar.gz和*.tgz 用 tar –xzf 解压
*.bz2 用 bzip2 -d或者用bunzip2 解压
*.tar.bz2用tar –xjf 解压
*.Z 用 uncompress 解压
*.tar.Z 用tar –xZf 解压
*.rar 用 unrar e解压
*.zip 用 unzip 解压
20、校验值验证
md5sum 文件名
注:
和自己已有的校验值对比是否相同
21、修改文件拥有者/所属用户组
使用root用户执行如下命令
格式:chown 账号名称 文件或目录名
chown cpicapp:bea /usr/bin/
格式:chgrp 用户组名称 文件或目录名
22、Linux中备份/恢复MySQL数据库
进入到数据库的目录文件夹MySQL
mysqldump -d -A -uroot -puWXf87plmQGz8zMM -h127.0.0.1 > ddl.sql 结构ddl
mysqldump -t -A -uroot -puWXf87plmQGz8zMM -h127.0.0.1 > dml.sql 数据dml
恢复数据先ddl然后dml,source xx.sql
:g#删除内容行的匹配字符#d 删除所需的行
文件内全部替换(正则表达式)
%s#abc#def#g//(用def替换文件中所有的abc)
文件内局部替换 “abc”全部替换成“def”
10,50s#abc#def#g//(如文件内有#,可用/替换,:%s/abc/def/g)
23、Linux终端复用神器tmux
基本的操作无非就是对会话、窗口、窗格进行管理,包括创建、关闭、重命名、连接、分离、选择等
tmux默认的快捷键前缀是Ctrl+b(下文用prefix指代),按下前缀组合键后松开,再按下命令键进行快捷操作,比如使用prefix d分离会话(应该写作prefix d而不是prefix+d,因为d键不需要与prefix同时按下)。
常用命令
tmux new 创建默认名称的会话
tmux new -s mysession 创建名为mysession的会话
tmux ls 显示会话列表
tmux a 连接上一个会话
tmux a -t mysession 连接指定会话
tmux rename -t s1 s2 重命名会话s1为s2
tmux kill-session 关闭上次打开的会话
tmux kill-session -t s1 关闭会话s1
tmux kill-session -a -t s1 关闭除s1外的所有会话
tmux kill-server 关闭所有会话
常用快捷键
prefix s 列出会话,可进行切换
prefix $ 重命名会话
prefix d 分离当前会话
prefix D 分离指定会话
窗口管理
prefix c 创建一个新窗口
prefix , 重命名当前窗口
prefix w 列出所有窗口,可进行切换
prefix n 进入下一个窗口
prefix p 进入上一个窗口
prefix l 进入之前操作的窗口
prefix 0~9 选择编号0~9对应的窗口
prefix . 修改当前窗口索引编号
prefix ' 切换至指定编号(可大于9)的窗口
prefix f 根据显示的内容搜索窗格
prefix & 关闭当前窗口
窗格管理
prefix % 水平方向创建窗格
prefix " 垂直方向创建窗格
prefix Up|Down|Left|Right 根据箭头方向切换窗格
prefix q 显示窗格编号
prefix o 顺时针切换窗格
prefix } 与下一个窗格交换位置
prefix { 与上一个窗格交换位置
prefix x 关闭当前窗格
prefix space(空格键) 重新排列当前窗口下的所有窗格
prefix ! 将当前窗格置于新窗口
prefix Ctrl+o 逆时针旋转当前窗口的窗格
prefix t 在当前窗格显示时间
prefix z 放大当前窗格(再次按下将还原)
prefix i 显示当前窗格信息
其他命令
tmux list-key 列出所有绑定的键,等同于prefix ?
tmux list-command 列出所有命令
================================================================================
未完待续......
本文来自博客园,作者:JackieDYH,转载请注明原文链接:https://www.cnblogs.com/JackieDYH/p/17634964.html