LINUX命令学习合集
常用命令
1、ls -a显示所有文件名但不包括隐藏信息
ls -l 显示文件的全部信息,包括文件权限 文件类型 修改日期,大小
绿色:可执行文件 红色:压缩文件 深蓝色:目录 浅蓝色:链接文件 灰色:其它
2、shotdown -h now; init 0; telinit 0关闭文件系统
shutdown -h hours:minutes& 按照预定时间关闭文件系统
shutdown -r now; reboot 重启(2)
logout 注销
3、cd …/… 返回上两级目录
4、mkdir dir1 创建一个叫做 ‘dir1’ 的目录’
mkdir dir1 dir2 同时创建两个目录
mkdir -p /tmp/dir1/dir2 创建一个目录树
rm -f file1 删除一个叫做 ‘file1’ 的文件’
rmdir dir1 删除一个叫做 ‘dir1’ 的目录’
rm -rf dir1 删除一个叫做 ‘dir1’ 的目录并同时删除其内容
rm -rf dir1 dir2 同时删除两个目录及它们的内容
mv dir1 new_dir 重命名/移动 一个目录
5、管道
用于进程间通信,前一个进程的输出作为下一个进程的输入,管道命令使用|作为界定符号。
less more head tail可以接收standard input的命令,所以是管道命令。
这里的more命令是类似cat,cat命令是整个文件的内容从上到下显示在屏幕上。
more会以一页的显示。
例如:
aijian.shi@U-aijian-shi:~/ALM$ cat test.log #显示所有日志内容
aijian.shi@U-aijian-shi:~/ALM$ more +3 test.log #从第三行开始显示日志内容
输出:
aijian.shi@U-aijian-shi:~/ALM$ cat test.log
2 2016-8-1 aijian.shi
3 2016-8-2 yafang.wei
4 2016-8-3 hong.zhan
5 2016-8-4 yuyan.zhang
6 2016-8-5 senlin.zhao
7 2016-8-6 yanbin.liu
8 2016-8-7 hui.liu
9 2016-8-8 yanhua.liu
10 2016-8-9 baoixn.cui
11 2016-8-10 ge.song
12 2016-8-11 zhongjun.zhen
13 2016-8-12 qiu.liao
aijian.shi@U-aijian-shi:~/ALM$ more +3 test.log
2016-8-3 hong.zhan
2016-8-4 yuyan.zhang
2016-8-5 senlin.zhao
2016-8-6 yanbin.liu
2016-8-7 hui.liu
2016-8-8 yanhua.liu
2016-8-9 baoixn.cui
2016-8-10 ge.song
2016-8-11 zhongjun.zhen
2016-8-12 qiu.lia
$ ls -al /etc | less
通过管道将ls -al的输出作为下一个命令less的输入
打印/etc/passwd文件中每一行的前10个字符:
[root@izuf6i29flb2df231kt91hz /]# cat /etc/passwd | cut -c 1-10
此处cut:从某一行信息中截取出某部分我们想要的信息
6、linux特点
免费的,开源;支持多线程,多用户;安全性好;对内存和文件管理优越
7、vi编辑器
输入i,进入到插入模式;输入Esc键,进入命令模式 ;输入冒号:wq 表示退出保存,:q!表示退出不保存
more,显示文件内容带分页
less,显示文件内容带分页
8、|,管道命令,在linux和unix系统,把上一个命令的结果交给|后面的命令处理
find /home -amin -10:十分钟内存取的文件或目录
find / -name man:意思是说从根目录开始搜索名称为man的文件或目录
find /home -size +10k:意思是说查找/home目录下大小为10k的文件
9、在linux中的每个用户必须属于一个组,不能独立于组外。在linux中每个文件有所有者、所在组、其它组的概念 。
1)所有者:一般为文件的创建者,谁创建了该文件,就天然的成为该文件的所有者。用ls ‐ahl命令可以看到文件的所有者。也可以使用chown 用户名 文件名来修改文件的所有者。
2)文件所在组:当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组,用ls ‐ahl命令可以看到文件的所有组,也可以使用chgrp 组名 文件名来修改文件所在的组。
3)其它组:除开文件的所有者和所在组的用户外,系统的其它用户都是文件的其它组。
10、文件权限
ls -l中显示的内容如下:
-rwxrw-r‐-1 root root 1213 Feb 2 09:39 abc
- 10个字符确定不同用户能对文件干什么
- 第一个字符代表文件(-)、目录(d),链接(l)
- 其余字符每3个一组(rwx),读(r)、写(w)、执行(x)
- 第一组rwx:文件所有者的权限是读、写和执行
- 第二组rw-:与文件所有者同一组的用户的权限是读、写但不能执行
- 第三组r–:不与文件所有者同组的其他用户的权限是读不能写和执行
也可用数字表示为:r=4,w=2,x=1 因此rwx=4+2+1=7 - 1 表示连接的文件数
- root 表示用户
- root表示用户所在的组
- 1213 表示文件大小(字节)
- Feb 2 09:39 表示最后修改日期
- abc 表示文件名
改变权限的命令
chmod 改变文件或目录的权限
chmod 755 abc:赋予abc权限rwxr-xr-x
chmod u=rwx,g=rx,o=rx abc:同上u=用户权限,g=组权限,o=不同组其他用户权限
chmod u-x,g+w abc:给abc去除用户执行的权限,增加组写的权限
chmod a+r abc:给所有用户添加读的权限
11、shell脚本文件: - 是一个文本文件
- 命令的集合
- 有执行的权限
- 执行方式(./文件名)
12、单引号:不处理任何变量和命令
【案例】echo ‘Welcome $NAME, the date is date ’ - 双引号:处理变量但不处理命令
【案例】echo “Welcome $NAME, the date is date “ - 反引号:把引号中的每个单词作为一个命令,如果是变量则先求值然后作为一个命令处理
【案例】echo “Welcome $NAME, the date isdate
“
13、如果一台办公室内主机无法上网(打不开网站),请给出你的排查步骤?
①首先确定物理链路是否联通正常。
②查看本机IP,路由,DNS的设置情况是否达标。
③telnet检查服务器的WEB有没有开启以及防火墙是否阻拦。
④ping一下网关,进行最基础的检查,通了,表示能够到达服务器。
⑤测试到网关或路由器的通常情况,先测网关,然后再测路由器一级一级的测试。
⑥测试ping公网ip的通常情况(记住几个外部IP),
⑦测试DNS的通畅。ping出对应IP
14、给出正确的关机和重启服务器的命令
⑴shutdown
[-t] 指定在多长时间之后关闭系统 [-r] 重启系统 [-k] 并不真正关机,只是给每个登录用户发送警告信号 [-h] 关闭系统(halt)
⑵halt
halt是最简单的关机命令,其实际上是调用shutdown -h命令。halt执行时,杀死应用进程,文件系统写操作完成后就会停止内核。
halt命令的部分参数如下:
[-f] 没有调用shutdown而强制关机或重启 [-i] 关机或重新启动之前,关掉所有的网络接口 [-p] 关机时调用poweroff,此选项为缺省选项
⑶reboot
reboot工作过程与halt类似,作用是重新启动,而halt是关机。其参数与halt类似。
⑷init
init是所有进程的祖先,其进程号始终为1。init用于切换系统的运行级别,切换的工作是立即完成的。init 0命令用于立即将系统运行级别切换为0,即关机;init 6命令用于将系统运行级别切换为6,即重新启动。
15、linux文件系统变只读
1)重启系统看是否可以自动修复
2)使用fsck -y /dev/sda1进行自动修复
16、linux下编译并运行.c文件
将源文件保存为hello.c,开始进行编译
$gcc -o hello hello.c
编译成功完成后,在当前路径下,生成一个名为hello的文件,然后执行
. / h e l l o 在 屏 幕 上 , 你 将 会 看 到 打 印 结 果 : H e l l o , L i n u x . 说 明 : 在 默 认 情 况 下 , 编 译 成 功 完 成 后 , 会 在 当 前 路 径 下 , 生 成 一 个 名 为 a . o u t 的 文 件 , 然 后 执 行 ./hello 在屏幕上,你将会看到打印结果:Hello,Linux. 说明:在默认情况下,编译成功完成后,会在当前路径下,生成一个名为a.out的文件,然后执行 ./hello在屏幕上,你将会看到打印结果:Hello,Linux.说明:在默认情况下,编译成功完成后,会在当前路径下,生成一个名为a.out的文件,然后执行./a.out便可打印结果,但通常可以通过选项-o来指定自己的可执行程序名称;
17、查看当前正在运行的所有进程
$ ps -ef | more
18、top命令会显示当前系统中占用资源最多的一些进程(默认以CPU占用率排序)如果你想改变排序方式,可以在结果列表中点击O(大写字母O)会显示所有可用于排序的列,这个时候你就可以选择你想排序的列
19、free 这个命令用于显示系统当前内存的使用情况,包括已用内存、可用内存和交换内存的情况,默认情况下free会以字节为单位输出内存的使用量
20、df显示文件系统的磁盘使用情况,默认情况下df -k 将以字节为单位输出磁盘的使用量
21、使用wget从网上下载软件、音乐、视频
22、su命令用于切换用户账号,超级用户使用这个命令可以切换到任何其他用户而不用输入密码
23、这个命名可以在不加载整个文件的前提下显示文件内容,在查看大型日志文件的时候这个命令会非常有用,当你用less命令打开某个文件时,下面两个按键会给你带来很多帮助,他们用于向前和向后滚屏
CTRL+F – forward one window
CTRL+B – backward one window
以及一些常用命令:
https://blog.csdn.net/jiaonizuoren/article/details/79187444
两台linux系统之间传输文件:
24、scp传输速度较慢,但使用ssh通道保证了传输的安全性(scp就是secure copy,是用来进行远程文件拷贝的。数据传输使用 ssh,并且和ssh 使用相同的认证方式,提供相同的安全保证 )
将本地文件拷贝到远程:scp 文件名-用户名@计算机IP或者计算机名称:远程路径
从远程将文本拷回本地:scp -用户名@计算机IP或者计算机名称:文件名 本地路径
2、rcp目标主机需要事先打开rcp功能,并设置好rcp权限,把源主机加入到可信任主机列表中,否则无法在源主机上使用rcp远程复制文件到目标主机。
3、wget 是一个从网络上自动下载文件的自由工具,支持通过HTTP、HTTPS、FTP三个最常见的TCP/IP协议下载,并可以使用HTTP代理。
4、rsync 功能强大,操作类似scp,支持排除目录,支持限速参数;还支持本地复制。
rsync /home/work/source.txt work@192.168.0.10:/home/work/ #把本地的source.txt文件拷贝到192.168.0.10机器上的/home/work目录下
rsync work@192.168.0.10:/home/work/source.txt /home/work/ #把192.168.0.10机器上的source.txt文件拷贝到本地的/home/work目录下
rsync work@192.168.0.10:/home/work/source.txt work@192.168.0.11:/home/work/ #把192.168.0.10机器上的source.txt文件拷贝到192.168.0.11机器的/home/work目录下
rsync -r /home/work/sourcedir work@192.168.0.10:/home/work/ #拷贝文件夹,加-r参数
rsync -r /home/work/sourcedir work@www.myhost.com:/home/work/ #使用主机名
rsync -r -v /home/work/sourcedir work@www.myhost.com:/home/work/ #显示详情,加-v参数
rsync -r -v --exclude sourcedir/notinclude /home/work/sourcedir work@www.myhost.com:/home/work/ #排除子目录,注意:--exclude后面的路径不能为绝对路径,必须为相对路径才可以,否则匹配不上,就不会被排除掉。
25 先使用ps查找进程pro1,然后用kill杀掉
kill -9 $(ps -ef | grep pro1)
26 free:free命令可以显示Linux系统中空闲的、已用的物理内存及swap内存,及被内核使用的buffer;
27 top:top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。
28 df:Df命令是linux系统以磁盘分区为单位查看文件系统,可以加上参数查看磁盘剩余空间信息
df -hl 查看磁盘剩余空间
29 pwd 全拼print working directory,其功能是显示当前工作目录的绝对路径。
touch 创建新的空文件,改变已有文件的时间戳属性。
tree 功能是以树形结构显示目录下的内容。
chattr 全拼change attribution,改变文件的扩展属性。chattr +a file1 只允许以追加方式读写文件
cat cat /proc/cpuinfo 显示CPU info的信息 cat /proc/meminfo 校验内存使用
tac tac是cat的反向拼写,因此命令的功能为反向显示文件内容。
cut 将文件的每一行按指定分隔符分割并输出。
29 wc 统计文件的行数、单词数或字节数。
30 grep/egrep 过滤字符串
join 按两个文件的相同字段合并。
tr 替换或删除字符。
dmesg 显示开机信息,用于诊断系统故障。
31 ifconfig 查看、配置、启用或禁用网络接口的命令。
ifup 启动网卡。
ifdown 关闭网卡。
ss 查看网络状态。
mutt 邮件管理命令。
tcpdump 命令行的抓包工具。
fsck 检查并修复Linux文件系统。
chmod 改变文件或目录权限。chmod ugo+rwx directory1 设置目录的所有人(u)、群组(g)以及其他人(o)以读(r )、写(w)和执行(x)的权限 chown user1 file1 改变一个文件的所有人属性
umask 显示或设置权限掩码。
pkill 通过进程名终止进程。
ps 显示进程的快照。
crontab 定时任务命令。
jobs 查看当前有多少在后台运行的命令。
建立软链接(快捷方式),以及硬链接的命令。
软链接: ln -s slink source 也称为符号连接,即为文件或目录创建一个快捷方式。
硬链接: ln link source 给一个文件取多于一个名字,放在不同目录中,方便用户使用。
Mesg:允许或拒绝其他用户向自己所用的终端发送信息
Ping:用于查看网络是否连接通畅
Netstat:显示网络连接.路由表和网络接口信息
怎么使一个命令在后台运行? 一般都是使用 & 在命令结尾来让程序自动运行。(命令后可以不追加空格)
把后台任务调到前台执行使用什么命令?把停下的后台任务在后台执行起来用什么命令? 把后台任务调到前台执行 fg 把停下的后台任务在
台执行起来 bg
你的系统目前有许多正在运行的任务,在不重启机器的条件下,有什么方法可以把所有正在运行的进程移除呢? 使用linux命令 ’disown -r ’可以将所有正在运行的进程移除。
Linux字符串截取命令
https://www.cnblogs.com/fetty/p/4857158.html
查看端口号命令
lsof -i:端口号
netstat -nltp | grep 端口号