linux常用命令

cut -d '/' -f 1    如:echo "a/b/c" |cut -d '/' -f 1,执行结果是a。执行过程:先按/分段,分段后结果是:第一个字段是a,第2个字段是b,第3个字段是c,-f就是取第几个字段。


cat 显示一个文件的内容,more为分页显示一个文件的内容。

cat /etc/issue  查看linux发行版本。
cat /etc/redhat-release

cat /proc/cpuinfo   查看CPU信息。
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l  #查看物理CPU个数
cat /proc/cpuinfo| grep "cpu cores"| uniq  # 查看每个物理CPU中core的个数(即核数)
cat /proc/cpuinfo| grep "processor"| wc -l   # 查看逻辑CPU的个数
cat /etc/redhat-release    查看centos版本号

# 总核数 = 物理CPU个数 X 每颗物理CPU的核数
# 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数

chown chgrp 改变文件的拥有者

将档案 file1.txt 的拥有者设为 users 群体的使用者 jessie :
chown jessie:users file1.txt

cp file_from file_to 拷贝文件 

cp -r    a    b   //拷贝文件夹,将A拷到B。

cp会先清空文件后往里写入新文件,而install则会先删除掉原先的文件然后写入新文件。

chmod  777 file 给file文件修改777的权限(用户,组,其他)。

crontab 创建周期性任务

  -u:指定某一用户
-e:执行文字编辑器来设定用户(当前用户或指定用户)时程表,内定的文字编辑器是vi.
-r:删除用户时程表.
-l:列出用户时程表.

例如:

使用crontab -e进行编辑,内容为:
*/2 * * * * echo "i am crontab" >> /home/zhang/hello
这样隔两分钟就会往hello这个文件里写i am crontab

也可以执行脚本,如:

* * * * *  /task.sh   //脚本里要用绝对路径。

chkconfig命令可以用来检查、设置系统的各种服务
使用语法:
chkconfig [--add][--del][--list][系统服务] 或 chkconfig [--level <等级代号>][系统服务][on/off/reset]
参数用法:
--addà增加所指定的系统服务,让chkconfig指令得以管理它,并同时在系统启动的叙述文件内增加相关数据。
--delà删除所指定的系统服务,不再由chkconfig指令管理,并同时在系统启动的叙述文件内删除相关数据。
--level<等级代号>à指定读系统服务要在哪一个执行等级中开启或关毕。
使用范例:
chkconfig --list      列出所有的系统服务
chkconfig --add httpd 增加httpd服务       //在默认情况下,chkconfig会自启动2345这四个级别,如果想自定义可以加上--level选项
chkconfig --del httpd 删除httpd服务
chkconfig --level httpd 2345 on 把httpd在运行级别为2、3、4、5的情况下都是on(开启)的状态。
chkconfig命令提供了一种简单的方式来设置一个服务的运行级别。例如,为了设置MySQL服务器在运行级别3和4上运行,你必须首先将MySQL添加为受chkconfig管理的服务:
chkconfig --add mysql
现在,我们在级别3和5上设定服务为“on”
chkconfig --level 35 mysql on
在其他级别上设为off
chkconfig --level 01246 mysql off
为了确认你的配置被正确的修改了,我们可以列出服务将会运行的运行级别,如下所示:
#chkconfig --list mysql

mysql           0:off       1:off       2:off       3:on 4:off       5:on 6:off

curl  -C

Continue/Resume a previous file transfer at the given offset. The given offset is the exact number of bytes that will be skipped, counting from the beginning of the source file before it is transferred to the destination. If used with uploads, the FTP server command SIZE will not be used by curl.

dirname 
用于取指定路径所在的目录 ,如 dirname /home/ikidou   结果为 /home

date  查看时间

用shell将时间字符串与时间戳互转:

修改系统日期与时间date -s "2012-11-03 10:25:25"

      date -d "2010-10-18 00:00:00" +%s         输出形如:1287331200
而时间戳转换为字符串可以这样做:
      date -d @1287331200  "+%Y-%m-%d"    输出形如:2010-10-18

dd 复制磁盘或文件系统

dnf /dnf remove    fedora上的安装与卸载。

df    df命令是linux系统以磁盘分区为单位查看文件系统,可以加上参数查看磁盘剩余空间信息,下面是

相关命令的解释:
df -hl 查看磁盘剩余空间
df -h 查看每个根路径的分区大小

fdisk -l  查看硬盘的分区 

find    实际搜寻硬盘查询文件名称 (find也可以根据文件大小-size 时间-atime 正则表达式-regex)

find . -name "*.o"  | xargs rm -f    //删除目录下所有的.o文件。

 fuser

find files or sockets' user
    格式:fuser [选项] fname
    -k 如果找到打开文件的进程,则发送SIGKILL杀死此进程,通过-i选项,可以为用户提供交互选择
    -signal 用户可以指定使用何种信号去kill进程,如果-k参数指定,则忽略此参数
    -m 如果指定一个文件,则所有访问那个文件所在文件系统的进程都会被列出来
    -n  type 指定不同的文件类型,默认类型为file,此外还支持tcp和udp类型,此时可以简写作port/tcp
    -u  显示进程属主
    -v  显示详细进程与打开文件信息
    -4/-6 只搜索IPv4/IPv6套接字
    例如,我们想查看端口TCP端口9000由哪个进程打开 fuser -v -u 9000/tcp
             查看哪些进程在访问/home挂载分区              fuser -mv /homefuser 可以显示出当前哪个程序在使用磁盘上的某个文件、挂载点、甚至网络端口,并给出程序进程的详细信息。
fuser显示使用指定文件或者文件系统的进程ID.默认情况下每个文件名后面跟一个字母表示访问类型。

常用选项
-a 显示所有命令行中指定的文件,默认情况下被访问的文件才会被显示。 
-c 和-m一样,用于POSIX兼容。 
-k 杀掉访问文件的进程。如果没有指定-signal就会发送SIGKILL信号。 
-i 杀掉进程之前询问用户,如果没有-k这个选项会被忽略。 
-l 列出所有已知的信号名称。 
-m name 指定一个挂载文件系统上的文件或者被挂载的块设备(名称name)。这样所有访问这个文件或者文件系统的进程都会被列出来。如果指定的是一个目录会自动转换成"name/",并使用所有挂载在那个目录下面的文件系统。 
-n space 指定一个不同的命名空间(space).这里支持不同的空间文件(文件名,此处默认)、tcp(本地tcp端口)、udp(本地udp端口)。对于端口, 可以指定端口号或者名称,如果不会引起歧义那么可以使用简单表示的形式,例如:name/space (即形如:80/tcp之类的表示)。 
-s 静默模式,这时候-u,-v会被忽略。-a不能和-s一起使用。 
-signal 使用指定的信号,而不是用SIGKILL来杀掉进程。可以通过名称或者号码来表示信号(例如-HUP,-1),这个选项要和-k一起使用,否则会被忽略。 
-u 在每个PID后面添加进程拥有者的用户名称。 
-v 详细模式。输出似ps命令的输出,包含PID,USER,COMMAND等许多域,如果是内核访问的那么PID为kernel.  -V 输出版本号。 
如:fuser -k 80/tcp  //删除占用TCP80端口的进程。

grep

Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。

iconv -f gb2312 -t utf-8 gb1.txt > gb2.txt

ifconfig eth0 down    关掉eth0

ifconfig eth0 up  启用eth0

ifconfig eth0 192.168.1.99 broadcast 192.168.1.255 netmask 255.255.255.0 up     启用eth0新地址

ip rout show    查看网关,default via 后面的 IP 即是网关IP。

kill 杀掉一个进程
killall 杀掉进程

ln -s a b

创建a的快捷方式

ls -l [directory] 查看指定目录下文件的详细

ls -a [directory] 查看指定目录下的所有文件

删除软连接  

rm -rf symbolic_name 注意不是rm -rf symbolic_name/

lsof -i:22         查看22端口的占用情况。

    lsof list open file
    格式:lsof  [选项] [names]
    单独执行lsof将输出系统中所有打开的文件,我们可以grep过滤出我们关心的内容,不过lsof提供了相应的参数帮助我们精确查找
    lsof name 将输出所有使用文件name的进程
    -p pid 列出进程pid所打开的所有文件
    -d FD_pattern 列出所有已经打开的FD值为FD_pattern的文件FD的值有整数,TXT,MEM等等
    -a lsof后可以加多个匹配条件,默认为or连接,此参数将多个条件变成and关系
    -i [46] [proto] [@hostname|ip][:service|port] 用来选择占用某个端口的进程
    +d/+D dir 非递归或递归的显示打开dir下文件的进程
    -c string   显示进程的command中包含string的进程所打开的文件
    -u username 显示属于user的进程所打开的文件
    -g gid

lsof -n|awk '{print $2}'|sort|uniq -c|sort -nr|more           //查看句柄占用

lsof -n|awk '{print $2}'|sort|uniq -c|sort -nr|grep 3322           //查看句柄占用

lsof +p 19455   查看句柄占用情况。

ldconfig是一个动态链接库管理命令,ldconfig通常在系统启动时运行,而当用户安装了一个新的动态链接库时,就需要手工运行这个命令。

password root

 更改root密码

ps ax 查询当前进程

ps -ef的意思是以长格式显示所有进程,“|”是管道,意思是前面ps的输出做为后面的输入,然后grep tomcat是在所有进程里查找与字符tomcat有关的进程,并显示出来。
ps命令就是最根本相应情况下也是相当强大地进程查看命令
ps[选项]
-e显示所有进程,环境变量
-f全格式
-h不显示标题
-l长格式
-w宽输出
a显示终端上地所有进程,包括其他用户地进程
r只显示正在运行地进程

Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。

mkdir new_directory 建一个新目录

rm -rf  a   强制删除文件夹a。

rpm  //redhat包管理,rpm  q查询,rpm  qa查询所有。rpm -i your-package.rpm 装rpm文件。

1.安装一个包 # rpm -ivh 
2.升级一个包 # rpm -Uvh
3.卸载一个包 # rpm -e

4 --force为强制。

systemctl 是系统服务管理器命令,它实际上将 service 和 chkconfig 这两个命令组合到一起。

useradd 选项 用户名
-c comment 指定一段注释性描述。
-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
-g 用户组 指定用户所属的用户组。
-G 用户组,用户组 指定用户所属的附加组。
-s Shell文件 指定用户的登录Shell。
-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
例:# useradd –d /usr/sam -m sam 此命令创建了一个用户sam,其中-d和-m选项用来为登录名sam产生一个主目录/usr/sam(/usr为默认的用户主目录所在的父目录)。

split

1)将文件splitTest.txt分割成多个文件,分割后的每个文件大小为10M。命令:

$ split -b 20m splitTest.txt
$ ls
splitTest.txt  xaa  xab  xac
2)将文件splitTest.txt分割成多个文件,分割后的每个文件大小为10M。指定分割后的文件前缀位split,命令:
$ split -b 20m splitTest.txt  split
$ ls
splitaa  splitab  splitac  splitTest.txt
3)将文件splitTest.txt分割成多个文件,每个文件50万行。命令:
$ wc -l splitTest.txt
1502216 splitTest.txt
$ split -l 500000 splitTest.txt  split
$ ls
splitaa  splitab  splitac  splitad  splitTest.txt
4)将文件splitTest.txt分割成多个文件,每个文件50万行。指定分割后的文件后缀为数字,数字位数为3位,命令:
$ wc -l splitTest.txt
1502216 splitTest.txt
$ split -l 500000 -d -a 3 splitTest.txt  split
$ ls
split000  split001  split002  split003  splitTest.txt

防火墙

1) 重启后生效
开启: chkconfig iptables on
关闭: chkconfig iptables off
2) 即时生效,重启后失效
开启: service iptables start
关闭: service iptables stop

time

命令行执行结束时在标准输出中打印执行该命令行的时间统计结果,其统计结果包含以下数据:

    real时间是指挂钟时间,也就是命令开始执行到结束的时间。这个短时间包括其他进程所占用的时间片,和进程被阻塞时所花费的时间。
    user时间是指进程花费在用户模式中的CPU时间,这是唯一真正用于执行进程所花费的时间,其他进程和花费阻塞状态中的时间没有计算在内。
    sys时间是指花费在内核模式中的CPU时间,代表在内核中执系统调用所花费的时间,这也是真正由进程使用的CPU时间。

        其中,用户CPU时间和系统CPU时间之和为CPU时间,即命令占用CPU执行的时间总和。实际时间要大于CPU时间,因为Linux是多任务操作系统,往往在执行一条命令时,系统还要处理其它任务;如果real小于CPU时间,一般是因为用了多CPU,user是各个cpu时间之和,而real和cpu个数没关系。

        另一个需要注意的问题是即使每次执行相同命令,但所花费的时间也是不一样,其花费时间是与系统运行相关的。

tail

tail -f 当文件变了,不会再输出

tail -F当文件变了,还会再输出 

用在日志切分的场景。如每天1个日志,如果用tail -f的话,过了0点在控制台就看不到打印的日志了。(因为原来的日志文件会变味finle.20151022之类的格式)如果用tail -F的话,过了0点在控制台还是可以看到打印的日志。


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

山西茄子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值